Đối phó với tấn công

Một phần của tài liệu Giáo trình Phát triển ứng dụng web: Phần 2 - Lê Đình Thanh, Nguyễn Việt Anh (Trang 92 - 93)

3. // Chưa cung cấp thông tin xác thực

8.2.3. Đối phó với tấn công

Mọi ứng dụng web đều có khả năng trở th|nh nạn nh}n của những tấn công mạng. Do vậy, các cơ chế đảm bảo an ninh cho ứng dụng cần có khả năng chống lại hay phản ứng lại c{c tấn cơng một c{ch có kiểm so{t. C{c cơ chế n|y sử dụng nhiều kỹ thuật tấn cơng v| phịng thủ nhằm l|m khó cho đối phƣơng, đồng thời cung cấp cho chủ sở hữu của ứng dụng c{c cảnh b{o v| bằng chứng về những gì xảy ra đối với ứng dụng. Một số kỹ thuật đối phó với tấn công bao gồm: Xử lý lỗi, ghi nhật ký, cảnh b{o cho quản trị viên, phản ứng lại c{c tấn công.

Xử lý lỗi

Cho dù ứng dụng đã đƣợc kiểm thử kỹ lƣỡng nhƣ thế n|o trƣớc khi đƣợc đƣa v|o triển khai sử dụng, rất khó để đảm bảo rằng ứng dụng khơng cịn lỗi khi kẻ xấu truy cập v| tƣơng t{c với ứng dụng theo nhiều c{ch kh{c nhau. Do vậy, xử lý những tình huống lỗi chƣa biết trƣớc có thể xảy ra l| yêu cầu cần thiết. Khi gặp lỗi, ứng dụng có thể khơi phục lại trạng th{i trƣớc đó v| gửi thơng b{o lỗi phù hợp cho ngƣời dùng. Ở môi trƣờng sản xuất, ứng dụng tuyệt đối không nên bao h|m trong c{c đ{p ứng HTTP những thông b{o lỗi v| thông tin gỡ lỗi do hệ thống

sinh ra. Những thông tin n|y l| những manh mối cho kẻ xấu khai th{c nhằm thực

hiện c{c tấn công. Thay v|o đó, khi có lỗi hay ngoại lệ xảy ra, ứng dụng chỉ đƣa ra thơng b{o lỗi ít mang tính kỹ thuật nhƣ ‚Khơng đọc đƣợc tệp‛, ‚Bạn khơng có quyền truy cập‛ v.v.

Trong lập trình, việc bắt v| xử lỗi đƣợc thực hiện bằng cấu trúc try-catch. Mã

xử lý nghiệp vụ đƣợc đặt trong khối try, trong khi thông b{o lỗi đƣợc đặt trong

khối catch.

Ghi nhật ký

Nhật ký (log) rất có gi{ trị khi điều tra c{c cuộc đột nhập ứng dụng. Nhật ký giúp cho chủ sở hữu ứng dụng hiểu đƣợc điều gì đã xảy ra với ứng dụng, lỗ hổng n|o đã bị khai th{c v| kẻ tấn công thực hiện đƣợc những truy cập tr{i phép n|o. Với bất kỳ ứng dụng n|o, những sự kiện chính cần đƣợc ghi nhật ký. Tối thiểu, ứng dụng cần ghi nhật ký:

- C{c sự kiện liên quan x{c thực nhƣ đăng nhập, đăng xuất, thay đổi mật khẩu.

- C{c giao dịch chính nhƣ thanh to{n qua t|i khoản, chuyển tiền, trả lời c}u hỏi trên b|i thi, nộp b|i thi, bỏ phiếu, v.v.

- C{c truy cập tr{i phép, hay truy cập v|o những chức năng v| dữ liệu m| ngƣời dùng khơng có quyền.

WebAppDevLê Đình Thanh, Nguyễn Việt Anh

177

Với những ứng dụng đòi hỏi an ninh cao, ví dụ ứng dụng trong ng}n h|ng, mọi yêu cầu đều phải đƣợc ghi nhật ký đầy đủ.

Nhật ký cần phải ghi cả thời gian xảy ra sự kiện, địa chỉ IP gửi yêu cầu, tên t|i khoản ngƣời dùng (nếu đã x{c thực). Dữ liệu nhật ký phải đƣợc bảo vệ để tr{nh c{c truy cập tr{i phép.

Lƣu ý, cần ph}n biệt nhật ký do ứng dụng tạo (đƣợc lập trình) kh{c với nhật

ký do trình phục vụ tạo (do cấu hình). Nếu đƣợc bật, mơđun ghi nhật ký của trình phục vụ sẽ lƣu ra tệp thông tin URL cùng một số tham số v| thuộc tính HTTP kh{c của mọi yêu cầu đƣợc gửi đến trình phục vụ. Ph}n tích nhật ký n|y thƣờng khơng dễ, địi hỏi ngƣời có chun mơn cao, do dữ liệu nhật ký có định dạng mang đậm tính kỹ thuật. Ngƣợc lại, nhật ký do ứng dụng tạo thƣờng ở định dạng m| con ngƣời dễ đọc, có thể đƣợc thể hiện bằng ngôn ngữ tự nhiên, v| có thể đƣợc ph}n tích, tổng hợp, hiển thị ngay trong ứng dụng.

Cảnh báo cho quản trị viên và phản ứng lại các tấn công

Ph{t hiện tấn công, bất thƣờng trong sử dụng hay logic nghiệp vụ l| công việc kh{ phức tạp nên những chức năng cảnh b{o cho quản trị viên hay phản ứng lại c{c tấn công thƣờng đƣợc c|i đặt ở một tầng kh{c, bên ngo|i ứng dụng. Thông thƣờng, tƣờng lửa ứng dụng web (web application firewall – waf) l| nơi phù hợp để thực hiện c{c chức năng n|y. Một số tƣờng lửa ứng dụng web đƣợc dùng phổ biến bao gồm ModSecurity19, OWASP ZAP20, .v.v.

Một phần của tài liệu Giáo trình Phát triển ứng dụng web: Phần 2 - Lê Đình Thanh, Nguyễn Việt Anh (Trang 92 - 93)

Tải bản đầy đủ (PDF)

(126 trang)