Mod_Security là một module mở rộng cho các chương trình 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ề phương pháp tấn công web thì mod_security cũng đã cập nhật những rule và đưa ra nhiều cách phòng chống trong mã nguồn của chương trình. Một số tính chất mà mod_security có thể dùng làm Web Application Firewall:
Tính linh động (Flexibility)
Việc phân tích luồng HTTP theo một tiêu chí nhất định trong thực tế thường gặp vấn đề là làm sao để có thể so trùng mẫu mà bạn muốn. Ngoài ra, do nhu cầu của từng hệ thống web là khác nhau dẫn đến việc phân tích trên từng loại ứng dụng cũng khác nhau. Mod_security đã kết hợp với OWASP phát triển các tập rule mẫu (Core Rule Set) nhằm tạo ra tính linh động cho từng mô hình web khác nhau, hỗ trợ người quản trị phân tích theo nhu cầu thực tế của hệ thống đang quản trị.
Tính thụ động (Passivity)
ModSecurity sẽ không thực thi các tác vụ nếu như người quản trị viên không chỉ định công việc cụ thể cho chương trình, việc này là khá quan trọng trong một ứng dụng có nhiệm vụ phân tích nguy cơ như ModSecurity. Mọi cảnh báo sẽ được thực hiện thông qua cơ chế phân tích và quyết định tương tác với hệ thống sẽ do người quản trị thực hiện.
Chức Năng ModSecurity
ModSecurity hoạt động với chương trình web server (ví dụ: Apache) sẽ thực hiện các tác vụ như sau:
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. Cấu trúc này sẽ được chuyển qua cơ chế so trùng mẫu trong tập rule để phân tích nguy cơ.
Buffering
Chức năng buffer (đệm) đóng vai trò khá quan trọng trong cơ chế hoạt động của ModSec. Việc này có ý nghĩa khi các request gởi đến ứng dụng web thì phải thông qua ModSecurity trước khi đến ứng dụng xử lý và những response cũng sẽ được phân tích trước khi trả về phía client. Cơ chế này là cách duy nhất để có thể ngăn chặn các cuộc tấn công thời gian thực, các dữ liệu mà ModSecurity nhận được và phân tích sẽ được lưu trữ trong RAM (bao gồm request body và response data)
Logging
ModSecurity hỗ trợ ghi nhật ký các gói tin HTTP: request headers, request body, response header, response body nhằm hỗ trợ người quản trị phân tích nguy cơ mà hệ thống đang gặp phải để có thể ra quyết định kiểm soát.
Rule Engine
Các tập mẫu trong ModSecurity đóng vai trò quan trọng trong việc phát hiện các dạng tấn công và thực hiện phòng chống. ModSecurity cùng phát triển với dự án OWASP phát triển các mẫu để phân tích và phòng chống các tấn công hệ thống web (Tham khảo https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project)
Cài Đặt Modsecurity
Cài các thư viện cần thiết cho mosecurity
yum install @httpd-devel apr apr-util-develapr-devel pcre pcre-devel libxml2 libxml2-devel
Tải về bộ cài đặt Modsecurity
root@localhost# wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz
root@localhost# tar -czvf modsecurity-2.8.0.tar.gz
root@localhost# cd modsecurity-2.8.0
Cài Đăt Modsecurity
root@localhost modsecurity-2.8.0# ./autogen.sh
root@localhost modsecurity-2.8.0# ./configure --enable-standalone-module--disable-mlogc
root@localhost modsecurity-2.8.0# make
Thêm ModSecurity module Cho nginx
Sau khi biên dịch Standalone, thêm ModSecurity module thông qua "--add-module" trong quá trình biên dịch nginx:
root@localhost modsecurity-2.8.0# ./configure--add-module=/root/modsecurity-2.9.1/nginx/modsecurity/ --prefix=/opt/tengine
root@localhost modsecurity-2.8.0# make
root@localhost modsecurity-2.8.0# make install
ModSecurity được thiết kế để lọc và ngăn chặn các mối nguy hiểm trên web. Sức mạnh của nó xuất phát từ các quy tắc của nó. Các quy tắc do OWASP cung cấp được duy trì bởi các tình nguyện viên và được gọi là các quy tắc cốt lõi (CRS). Họ là đáng tin cậy và mạnh mẽ, nhưng họ cũng có thể được tùy chỉnh để đáp ứng các yêu cầu khác nhau.
Thêm Bộ Lọc
root@localhost# git clone ~@https://github.com/SpiderLabs/owasp-modsecurity-crs
root@localhost# mv owasp-modsecurity-crs /opt/tengine/conf/
root@localhost# cd/opt/tengine/conf/owasp-modsecurity-crs && mvmodsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf
Kích Hoạt OWASP rules
Sao chép modsecurity.conf-recommended và unicode.mapping dưới thư mục mã nguồn ModSecurity vào thư mục con nginx conf và đổi tên modsecurity.conf thành modsecurity.conf.
Chỉnh sửa tệp modsecurity.conf và đặt SecRuleEngine thành Bật. Giá trị mặc định DetectOnly là chế độ quan sát. Chúng tôi khuyên bạn nên sử dụng chế độ này theo mặc định trong khi cài đặt và quan sát xem nó có ảnh hưởng không mong muốn trên trang web và máy chủ hay không.
Có rất nhiều thư mục để lưu trữ các quy tắc trong owasp-modsecurity-crs chẳng hạn như base_rules, experiment_rules, optional_rules và slr_rules. Bạn có thể kích hoạt các quy tắc bạn cần bằng cách bao gồm chúng trong modsecurity.conf
Includeowasp-modsecurity-crs/modsecurity_crs_10_setup.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf
Include owasp-modsecurity-crs/base_rules/modsecurity_crs_41_xss_attacks.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_40_generic_attacks.conf
Include owasp-modsecurity-crs/base_rules /modsecurity_crs_45_trojans.confwebshell
Xem xét tác động có thể xảy ra đối với hiệu suất của máy chủ, bạn nên chỉ thêm quy tắc phòng thủ cho các lỗ hổng nghiêm trọng để bảo vệ chống lại các cuộc tấn công web quan trọng nhất hiện tại.
Cấu Hình Nginx
Thêm các dòng sau vào vị trí của máy chủ ModSecurity cần được kích hoạt:
ModSecurityEnabled ON;
ModSecurityConfig modsecurity.conf;
Sau đây là các ví dụ về cấu hình của máy chủ ảo ảo conf hoặc tệp vhost:
server {
listen 80;
server_name vouu-blog.site www.vouu-blog.site;
location ~ \.php$ {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
root /web/webroot;
index index.php index.html index.htm;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $Document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Không có nhận xét nào:
Đăng nhận xét