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
系統版本: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
# yum installgcc make libxml2 libxml2-devel httpd-devel pcre-devel curl-devel libtool –y
# tar xfmodsecurity-2.9.1.tar.gz # cd modsecurity-2.9.1 # ./autogen.sh # ./configure--enable-standalone-module --disable-mlogc # make
# 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.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***過濾規則在測試中有問題暫時沒有啓用
在nginx配置文件中 須要啓用的server配置下添加如下兩行,而後重啓nginx服務
ModSecurityEnabledon; ModSecurityConfigmodsecurity.conf;
注:xss跨站***漏洞測試(此漏洞是阿里雲發現)
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協同防護相關規則
來自肯定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相關規則
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狀況
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檢測設置文件