Aug 31, 2018

[Apache] Đôi nét về ModSecurity (Phần 1)

I. Giới thiệu:
Mod_Security là một module mở rộng cho các web server như Apache, Nginx, IIS và hoạt động như một firewall tại lớp ứng dụng web.
Cùng với sự gia tăng về cách thức tấn công web thì mod_security cũng đã cập nhật những rule và đưa ra nhiều
phương pháp phòng chống mã nguồn của chương trình.
Nó cũng có thể được dùng nuhw một Web Application Firewall.
II.Tính năng
1. Parsing:
ModSecurity sẽ phân tách các dữ liệu luân chuyển qua hệ thống thành cấu trúc dữ liệu mà ModSecurity đã định nghĩa sẵn bằng cơ chế so trùng mẫu trong tập rule.
2. Buffering
Tính năng này đóng vai trò khá quan trọng trong cơ chế hoạt động của ModSec. ModSec trong vai trò này giống như một cầu nối giữa client và ứng dụng web.
Các request và response sẽ được phân tích và xử lí thông qua ModSec.
Dữ liệu mà ModSec nhận và phân tích sẽ được lưu trữ trong RAM (bao gồm request body và response data)
3. Logging
ModSec hỗ trợ cơ chế ghi log các gói tin HTTP: request headers, request body, response header, response body.  
4. Rule Engine
ModSec cùng phát triển với dự án OWASP xây dựng các mẫu để phân tích và phòng chống ác tấn công hệ thống web
III. Qui trình hoạt động của ModSec


1.Request Header
Đây là bước đầu tiên trong quá trình thực hiện phân tích gói tin. Mục đích của bước này
nhằm cho phép người viết rule tương tác với các request trước khi thực hiện các yêu cầu trong
phần HTTP body. Phần này khá quan trọng để phân tích các khai thác dựa vào HTTP method
cũng như dựa vào URL như SQL Injection, Reflect XSS, Local file include …
2. Request body
Bước 2 là quá trình kiểm tra chính trong quá trình client gởi request đến server, phần này sẽ
có hiệu quả khi người dùng cố sử dụng phương thức POST hoặc PUT để upload tập tin lên phía
server. Việc kiểm tra này bảo đảm dữ liệu đưa lên server là an toàn, tránh tình trạng upload mã
độc hoặc các dạng tấn công nhưng Stored XSS, Ajax Injection …
3. Response headers
Những request đã được xử lý tại server sẽ được trả về cho ModSecurity kiểm tra trạng thái
trong phần respone header. Trước khi phần response body được đọc thì ModSecurity sẽ dựa vào
tập rule để xác định có cần kiểm tra nội dung dữ liệu trong phần body hay không.
Ví dụ: mã trạng thái trả về là 404 (Not found) thì lúc này sẽ không cần kiểm tra nội dung gói
tin trả về.
4. Response body
Sau khi ModSecurity đã hoàn thành việc kiểm tra tại respone header thì nội dung trong phần
body sẽ được kiểm tra so trùng với mẫu trong tập lệnh.Việc này là khá hiệu quả để phát hiện và
phòng chống xâm nhập trong trường hợp bước 1 và 2 không phát hiện được tấn công.
Ví dụ: trong khai thác SQL injection, nếu hacker cố gắng sử dụng một số công nghệ evasion
thì việc phát hiện khi request là khó khăn. Khi khai thác thành công, ModSecurity sẽ phân tích
kết quả trong gói tin trả về để phát hiện nếu như câu truy vấn thành công.
5. Logging
Việc ghi log sẽ ghi nhận các cảnh báo cũng như quy trình làm việc của ModSecurity.

Còn tiếp Phần 2 - Cách thiết lập một rule trong ModSecurity ...

No comments:

Post a Comment