Trong bài viết này,các  bạn sẽ được hướng dẫn cách bảo vệ ứng dụng web của mình, như WordPress, Joomla! hoặc Drupal, khỏi những cuộc tấn công bằng cách sử dụng ModSecurity - một loại tường lửa ứng dụng web nguồn mở.

Nội dung sẽ giới thiệu ngắn gọn về cách ModSecurity hoạt động, hướng dẫn cách bật và cấu hình nó. Mục tiêu là giúp bạn hiểu rõ về vai trò của ModSecurity trong việc làm tăng cường bảo mật cho ứng dụng web. Bạn sẽ nắm được cách để kích hoạt và thiết lập ModSecurity sao cho hiệu quả, nhằm bảo vệ ứng dụng web trước các rủi ro có thể xảy ra.

Để phát hiện và ngăn chặn các cuộc tấn công vào ứng dụng web, tường lửa ứng dụng web (ModSecurity) kiểm tra tất cả các yêu cầu đến máy chủ web của bạn và các phản hồi liên quan từ máy chủ so với bộ luật của nó. Nếu kiểm tra thành công, yêu cầu HTTP được chuyển đến trang web để lấy nội dung. Nếu kiểm tra thất bại, các hành động được định nghĩa trước sẽ được thực hiện.

ModSecurity được hỗ trợ cả trên Plesk cho Linux và cho Windows. Nó hoạt động như một module của máy chủ web (Apache, Nginx hoặc IIS).

1. Bật ModSecurity

Để bật ModSecurity (WAF), các bạn làm theo các bước sau:

- Truy cập Tools & Settings > Web Application Firewall (ModSecurity) (dưới mục "Security").

Nếu bạn không thấy liên kết này, hãy cài đặt thành phần ModSecurity tại Tools & Settings > Updates > Add/Remove Components > Web hosting group.

Đặt chế độ tường lửa ứng dụng web thành "Off" hoặc "Detection only". Mỗi yêu cầu HTTP đến và phản hồi liên quan sẽ được kiểm tra theo một bộ luật. Nếu kiểm tra thành công, yêu cầu HTTP sẽ được chuyển đến trang web để lấy nội dung. Nếu kiểm tra thất bại, sự kiện sẽ được đăng nhập. Trong chế độ "Detection only", không có hành động nào khác sẽ được thực hiện. Trong chế độ "On", phản hồi HTTP sẽ được cung cấp với một mã lỗi.

Lưu ý: WAF có thể được thiết lập ở cấp máy chủ và cấp miền. Tuy nhiên, chế độ ở cấp miền không thể cao hơn chế độ được thiết lập cho máy chủ. Ví dụ, nếu WAF đang hoạt động ở chế độ Detection only ở cấp máy chủ, bạn sẽ không thể chuyển đổi sang chế độ On cho các miền. Chỉ có thể hiển thị các chế độ Off và Detection only.

 

2. Các cách thiết lập quy tắc (rules)

Để tắt các quy tắc:

Một trang web có thể ngừng hoạt động như mong đợi sau khi bạn thay đổi chế độ tường lửa ứng dụng web từ Off hoặc Detection only sang On. Trong nhật ký lỗi trang web, bạn có thể thấy các mã lỗi như 403, 404 hoặc 500, và chúng sẽ ngừng xuất hiện sau khi bạn chuyển đổi lại chế độ tường lửa ứng dụng web về Detection only hoặc Off. Trong trường hợp này, phân tích nhật ký kiểm tra ModSecurity để tìm hiểu điều gì đang xảy ra. Bạn có thể tắt các quy tắc bảo mật quá hạn chế hoặc điều chỉnh trang web.

Để tìm hiểu tại sao một yêu cầu HTTP không thể hoàn thành cho một trang web:

Xem tệp nhật ký kiểm tra cho trang web.

Trong Plesk cho Linux, bạn có thể sử dụng giao diện người dùng của Plesk để xem nhật ký: di chuyển đến Tools & Settings > Web Application Firewall (ModSecurity) và nhấp vào liên kết ModSecurity Log File để tải xuống nhật ký kiểm tra và mở nó trong một cửa sổ trình duyệt mới.

Sử dụng Tìm kiếm (Ctrl + F trong hầu hết các trình duyệt web) để tìm sự kiện cho trang web (tên miền) đã gây ra vấn đề. Ví dụ, your_domain.tld. Trình duyệt sẽ làm nổi bật các mục như HOST: your_domain.tld. Trong ba dòng phía trên mục được làm nổi bật, tìm chuỗi giống như --eece5138-B--. Tám ký tự giữa hai dấu gạch ngang (trong ví dụ của chúng tôi là eece5138) là ID của sự kiện được kích hoạt bởi yêu cầu HTTP.

Tìm kiếm tiếp các mục khác có cùng ID sự kiện. Tìm một mục với chữ H sau ID sự kiện (trong ví dụ của chúng tôi, eece5138-H--). Mục này chứa ID và mô tả của quy tắc bảo mật được kích hoạt trong quá trình kiểm tra yêu cầu HTTP. ID quy tắc bảo mật là một số nguyên nằm trong dấu ngoặc vuông có tiền tố "id" trong dấu ngoặc vuông (ví dụ: [id "340003"] hoặc [id "913102"]).

Tìm ID quy tắc bảo mật trong sự kiện bằng cách sử dụng chuỗi con (ví dụ, [id "3). ID này có thể được sử dụng khi bạn tắt các quy tắc.

Để tắt một rule:

Di chuyển đến Tools & Settings > Web Application Firewall (ModSecurity).
Trong phần Tắt các quy tắc bảo mật, chọn quy tắc bảo mật bằng ID của nó (ví dụ, 340003), bằng một thẻ (ví dụ, CVE-2011-4898), hoặc bằng một biểu thức chính quy (ví dụ, XSS) và nhấp vào OK.

 

Lưu ý: iNET không khuyến nghị các bạn tìm hiểu và thao tác quá sâu vào mục này vì có thể gây ảnh hưởng đến không chỉ website mà còn đến hosting.

Vì vậy các bạn chỉ nên quan tâm đến việc nắm được cách tắt, bật và chế độ phát hiện của WAF để có thể chủ động xử lý được lỗi truy cập website.

 

 

Chúc các bạn thao tác thành công!