Nginx+Modsecurity實現WAF

一.軟件介紹php

ModSecurity是一個免費、開源的Web(apache、nginx、IIS)模塊,能夠充當Web應用防火牆(WAF)。ModSecurity是一個***探測與阻止的引擎.它主要是用於Web應用程序因此也能夠叫作Web應用程序防火牆.ModSecurity的目的是爲加強Web應用程序的安全性和保護Web應用程序避免遭受來自已知與未知的***nginx

OWASP是一個安全社區,開發和維護着一套免費的應用程序保護規則,這就是所謂OWASP的ModSecurity的核心規則集(即CRS)。ModSecurity之因此強大就在於OWASP提供的規則,能夠根據本身的需求選擇不一樣的規則,固然ModSecurity還有商用的規則git

目前ModSecurity正在測試環境測試使用,如下操做是在nginx下添加modsecurity模塊來實現WAF的安裝配置步驟, github

二.準備工做web

系統版本:Centos6sql

Nginx/1.10.0 最新穩定版本:http://nginx.org/download/nginx-1.10.0.tar.gzshell

ModSecurity/2.9.1最新穩定版本:https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gzapache

OWASP規則集: https://github.com/SpiderLabs/owasp-modsecurity-crsvim

三.安裝配置安全

3.1安裝依賴包

# yum installgcc make libxml2 libxml2-devel httpd-devel pcre-devel curl-devel libtool –y


3.2編譯modsecurity

# tar xfmodsecurity-2.9.1.tar.gz
# cd modsecurity-2.9.1
# ./autogen.sh
# ./configure--enable-standalone-module --disable-mlogc
# make


3.3 編譯nginx並添加modsecurity模塊

# tar xf nginx-1.10.0.tar.gz
# cd nginx-1.10.0
# ./configure --add-module=/root/modsecurity-2.9.1/nginx/modsecurity/  --prefix=/home/data/nginx
# make
# make install


3.4配置規則

3.4.1下載OWASP規則

# git clone https://github.com/SpiderLabs/owasp-modsecurity-crs
# cp -aowasp-modsecurity-crs /home/data/nginx/conf/
# cd/home/data/nginx/conf/owasp-modsecurity-crs/
# mv modsecurity_crs_10_setup.conf.examplemodsecurity_crs_10_setup.conf


 

3.3.2 啓動owasp規則

複製modsecurity源碼目錄下的modsecurity.conf-recommended和unicode.mapping到nginx的conf目錄下

#cpmodsecurity.conf-recommended unicode.mapping  /home/data/nginx/conf/
#cd/home/data/nginx/conf  &&  mv modsecurity.conf-recommended  modsecurity.conf


編輯modsecurity.conf 文件,將SecRuleEngine設置爲 on,並添加規則

# vimmodsecurity.conf
SecRuleEngine On
# personal  rules
Includeowasp-modsecurity-crs/modsecurity_crs_10_setup.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_41_xss_attacks.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_40_generic_attacks.conf


:規則根據本身的需求添加,base_rules中的sql***過濾規則在測試中有問題暫時沒有啓用

3.5 配置nginx

在nginx配置文件中 須要啓用的server配置下添加如下兩行,而後重啓nginx服務

ModSecurityEnabledon;  
ModSecurityConfigmodsecurity.conf;


四.測試

4.1 Modsecurity模塊啓用前

wKioL1dL-Y2A8OloAADHLR67-RI829.png-wh_50

4.2 Modsecurity模塊啓用後訪問出現403錯誤

wKiom1dL-KugW_DuAABcgmQhdP4709.png-wh_50


:xss跨站***漏洞測試(此漏洞是阿里雲發現)

 

五.規則集說明

5.1基礎規則集

modsecurity_crs_20_protocol_violations.confHTTP協議規範相關規則

modsecurity_crs_21_protocol_anomalies.confHTTP協議規範相關規則

modsecurity_crs_23_request_limits.confHTTP協議大小長度限制相關規則

modsecurity_crs_30_http_policy.confHTTP協議白名單相關規則

modsecurity_crs_35_bad_robots.conf惡意掃描器與爬蟲規則

modsecurity_crs_40_generic_attacks.conf常見的***例如命令執行,代碼執行,注入,文件包含、敏感信息泄露、會話固定、HTTP響應拆分等相關規則

modsecurity_crs_41_sql_injection_attacks.confSQL注入相關規則(居然有一條MongoDB注入的規則,很全)

modsecurity_crs_41_xss_attacks.confXSS相關規則

modsecurity_crs_42_tight_security.conf目錄遍歷相關規則

modsecurity_crs_45_trojans.confwebshell相關規則

modsecurity_crs_47_common_exceptions.confApache異常相關規則

modsecurity_crs_49_inbound_blocking.conf協同防護相關規則

modsecurity_crs_50_outbound.conf檢測response_body中的錯誤信息,警告信息,列目錄信息

modsecurity_crs_59_outbound_blocking.conf協同防護相關規則

modsecurity_crs_60_correlation.conf協同防護相關規則

5.2 SLR規則集

來自肯定APP的PoC,不會誤報,檢測方法是先檢查當前請求的文件路徑是否出如今data文件中,若出現再進行下一步測試,不然跳過該規則集的檢測

modsecurity_crs_46_slr_et_joomla_attacks.confJOOMLA應用的各類漏洞規則

modsecurity_crs_46_slr_et_lfi_attacks.conf各類APP的本地文件包含相關規則

modsecurity_crs_46_slr_et_phpbb_attacks.confPHPBB應用的各類漏洞規則

modsecurity_crs_46_slr_et_rfi_attacks.conf各類APP的遠程文件包含相關規則

modsecurity_crs_46_slr_et_sqli_attacks.conf各類APP的SQL注入相關規則

modsecurity_crs_46_slr_et_wordpress_attacks.confWORDPRESS應用的各類漏洞規則

modsecurity_crs_46_slr_et_xss_attacks.conf各類APP的XSS相關規則

 

5.3可選規則集

modsecurity_crs_10_ignore_static.conf靜態文件不過WAF檢測的相關規則

modsecurity_crs_11_avs_traffic.confAVS(受權的漏洞掃描器)的IP白名單規則

modsecurity_crs_13_xml_enabler.conf請求體啓用XML解析處理

modsecurity_crs_16_authentication_tracking.conf記錄登錄成功與失敗的請求

modsecurity_crs_16_session_hijacking.conf會話劫持檢測

modsecurity_crs_16_username_tracking.conf密碼複雜度檢測

modsecurity_crs_25_cc_known.confCreditCard驗證

modsecurity_crs_42_comment_spam.conf垃圾評論檢測

modsecurity_crs_43_csrf_protection.conf與modsecurity_crs_16_session_hijacking.conf聯合檢測,使用內容注入動做append注入CSRF Token

modsecurity_crs_46_av_scanning.conf使用外部腳本掃描病毒

modsecurity_crs_47_skip_outbound_checks.confmodsecurity_crs_10_ignore_static.conf的補充

modsecurity_crs_49_header_tagging.conf將WAF規則命中狀況配合Apache RequestHeader指令注入到請求頭中,以供後續應用進一步處理

modsecurity_crs_55_marketing.conf記錄MSN/Google/Yahoorobot狀況

 

5.4實驗性規則集

modsecurity_crs_11_brute_force.conf防護暴力破解相關規則

modsecurity_crs_11_dos_protection.conf防DoS***相關規則

modsecurity_crs_11_proxy_abuse.conf檢測X-Forwarded-For是不是惡意代理IP,IP黑名單

modsecurity_crs_11_slow_dos_protection.confSlow HTTP DoS***規則

modsecurity_crs_25_cc_track_pan.conf檢測響應體credit card信息

modsecurity_crs_40_http_parameter_pollution.conf檢測參數污染

modsecurity_crs_42_csp_enforcement.confCSP安全策略設置

modsecurity_crs_48_bayes_analysis.conf使用外部腳本採起貝葉斯分析方法分析HTTP請求,區分正常與惡意請求

modsecurity_crs_55_response_profiling.conf使用外部腳本將響應體中的惡意內容替換爲空

modsecurity_crs_56_pvi_checks.conf使用外部腳本檢測REQUEST_FILENAME是否在osvdb漏洞庫中

modsecurity_crs_61_ip_forensics.conf使用外部腳本收集IP的域名、GEO等信息

modsecurity_crs_40_appsensor_detection_point_2.0_setup.confAPPSENSOR檢測設置文件

相關文章
相關標籤/搜索