ModSecurity規則

中文譯文參考:http://netsecurity.51cto.com/art/201407/446264.htm

英文原文參考:http://resources.infosecinstitute.com/configuring-modsecurity-firewall-owasp-rules/

根據最新實踐調整裏面的細節內容,圖片內容未調整:

 

0x00 背景

ModSecurity是一個免費、開源的Apache模塊,可以充當Web應用防火牆(WAF)。ModSecurity是一個入侵探測與阻止的引擎.它主要是用於Web應用程序所以也可以叫做Web應用程序防火牆.ModSecurity的目的是爲增強Web應用程序的安全性和保護Web應用程序避免遭受來自已知與未知的攻擊.

OWASP是一個安全社區,開發和維護着一套免費的應用程序保護規則,這就是所謂OWASP的ModSecurity的核心規則集(即CRS)。我們可以通過ModSecurity手工創建安全過濾器、定義攻擊並實現主動的安全輸入驗證.

所以,在這篇文章中,我們將配置ModSecurity防火牆與OWASP的核心規則集。我們也將學習如何可以根據我們的需要自定義OWASP的核心規則集或創建自己的定製規則。

0x01 安裝過程

本文是在Centos環境中安裝和配置的,步驟如下:

第1步

以root用戶身份(或者sudo方式)登錄到您的服務器,登錄之後我們在安裝ModSecurity之前需要安裝一些依賴包,可以通過以下的命令安裝:

yum install gcc make libxml2 libxml2-devel httpd-devel pcre-devel curl-devel –y

2014072015283665193.jpg

第2步

安裝依賴包後,我們將安裝ModSecurity。我們可以通過運行以下命令進行安裝:

yum install mod_security –y

2014072015285788999.png

現在ModSecurity已經成功地安裝在系統中。

第3步

ModSecurity安裝後,我們需要重新啓動Apache服務器。我們可以通過下面的命令重啓Apache服務器:

Services httpd restart

在/etc/init.d/httpd restart

或者 apachectl方式

2014072015294663934.png

現在,我們已經成功地在服務器中安裝了ModSecurity,下一個步驟是下載和配置OWASP的ModSecurity規則。所以,我們必須將當前工作目錄切換到/etc/httpd的。這可以通過cd命令來完成。

cd /etc/httpd.

2014072015300972448.jpg

第4步

正如我們在文章的前面所提到的,我們的ModSecurity安裝是不完美的,但我們需要增加我們的規則集。這可以通過Github的網站來完成。Github上是一個開源的平臺,讓許多開發人員分享他們的項目和應用程序。通過git命令使用clone選項,可以下載Github服務器上的任何內容。因此,我們將導入預定義的OWASP的ModSecurity規則到我們的服務器。我們可以通過下面的命令做到這一點。

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

("https://github.com/SpiderLabs/owasp-modsecurity-crs.git")

2014072015312341613.jpg

執行該命令後,OWASP的ModSecurity規則將在owasp-modsecurity-crs目錄下保存。可以通過ls命令如下進行查看。

2014072015315319889.jpg

現在,我們必須重新命名OWASP-MODSecurity-src文件夾到ModScurity-CRS。這可以通過mv命令來完成。

mv owasp-modsecurity-crs modsecurity-crs

2014072015322577770.jpg

我們可以通過運行ls命令驗證。

第5步

我們必須將工作目錄更改爲modsecurity-crs。這可以通過cd命令來完成。

cd modsecurity-crs

2014072015331514069.jpg

crs-setup.conf.example是ModSecurity工作的主配置文件。默認情況下,它帶有.example擴展名。要初始化ModSecurity,我們要重命名此文件。我們可以用mv命令重命名。

mv crs-setup.conf.example crs-setup.conf

2014072015335461342.jpg

之後,我們要在Apache的配置文件中添加模塊。要裝入新的ModSecurity模塊,編輯Apache的配置文件/etc/httpd/conf/httpd.conf。我們需要在終端中輸入以下命令。

vi /etc/httpd/conf/httpd.conf

2014072015344238445.jpg

複製/粘貼以下內容到文件的末尾並保存文件。

<IfModule security2_module>
 Include modsecurity-crs/crs-setup.conf
 Include modsecurity-crs/rules/*.conf
</IfModule>

2014072015353128920.jpg

我們將重新啓動Apache服務器。

第7步

現在的ModSecurity已經成功配置了OWASP的規則,但能夠按照我們的選擇讓它工作,我們將不得不作出一個新的配置文件與我們自己的規則,這就是所謂的白名單文件。通過這個文件,我們就可以控制整個防火牆,創建自己的ModSecurity規則。我們將在modsecurity.d目錄中創建的。打開/通過下面的命令來創建這個文件。

vi /etc/httpd/modsecuirty.d/whitelist.conf

2014072015360510449.png

複製下面的規則並保存到該文件中。

#Whitelist file to control ModSec 
<IfModule mod_security2.c> 
SecRuleEngine On 
SecRequestBodyAccess On  
SecResponseBodyAccess On 
SecDataDir /tmp 
</IfModule>

2014072015372027406.jpg

現在,我們保存文件並重新啓動Apache服務器。下面對各行的意義進行說明。

0x02 配置說明

1.SecRuleEngine

是接受來自ModSecurity-CRS目錄下的所有規則的安全規則引擎。因此,我們可以根據需求設置不同的規則。要設置不同的規則有以下幾種。

SecRuleEngine On: 將在服務器上激活ModSecurity防火牆。它會檢測並阻止該服務器上的任何惡意攻擊。

SecRuleEngine Detection Only: 如果這個規則是在whitelist.conf文件中設置的,它只會檢測到所有的攻擊,並根據攻擊產生錯誤,但它不會在服務器上阻止任何東西。

SecRuleEngine Off:: 這將在服務器上上停用ModSecurity的防火牆。

2.SecRequestBodyAccess: 它會告訴ModSecurity是否會檢查請求。它起着非常重要的作用,當一個Web應用程序配置方式中,所有的數據在POST請求中。它只有兩個參數,ON或OFF。我們可以根據需求設置。

3.SecResponseBodyAccess: 在whiltelist.conf文件,如果此參數設置爲ON,然後ModeSecurity可以分析服務器響應,並做適當處理。它也有隻有兩個參數,ON和Off。我們可以根據求要進行設置。

4.SetDataDirectory: 在本文中,我們定義的ModSecurity的工作目錄。該目錄將作爲ModSecurity的臨時目錄使用。

ModSecurity現在已經成功配置了OWASP的規則。現在,我們將測試對一些最常見的Web應用攻擊。將測試ModSecurity是否擋住了攻擊。

爲了做到這一點,我們將嘗試在一個存在存儲性xss漏洞的網站上進行測試,我們已經配置ModSecurity。在一個網站中最常見的XSS漏洞的位置將是搜索框,用戶可以在網站上搜索任何東西。如果惡意用戶試圖在搜索框中注入Java腳本或HTML腳本,它會在瀏覽器中執行。我們可以在搜索框中輸入 。在正常情況下(當我們的服務器上的沒有任何類型的應用程序防火牆),它會在網站顯示一個彈窗上本。

如果在服務器上已經平配置ModSecurity,服務器會根據配置阻止XSS攻擊,以及生成錯誤日誌。

我們可以檢查ModSecurity的錯誤日誌文件。

在/var/log/httpd/error_log

我們可以通過下面的命令來檢查文件的最後更新的行。

tail –f /var/log/httpd/error_log

2014072015384576018.jpg

ModSecurity核心規則集(CRS)提供以下類別的保戶來防止攻擊。

◆HTTP Protection (HTTP防禦) - HTTP協議和本地定義使用的detectsviolations策略。 
◆Real-time Blacklist Lookups(實時黑名單查詢) -利用第三方IP信譽。 
◆HTTP Denial of Service Protections(HTTP的拒絕服務保護) -防禦HTTP的洪水攻擊和HTTP  Dos 攻擊。  
◆Common Web Attacks Protection(常見的Web攻擊防護) -檢測常見的Web應用程序的安全攻擊。  
◆Automation Detection(自動化檢測) -檢測機器人,爬蟲,掃描儀和其他表面惡意活動。  
◆Integration with AV Scanning for File Uploads(文件上傳防病毒掃描) -檢測通過Web應用程序上傳的惡意文件。  
◆Tracking Sensitive Data(跟蹤敏感數據) -信用卡通道的使用,並阻止泄漏。  
◆Trojan Protection(木馬防護) -檢測訪問木馬。  
◆Identification of Application Defects (應用程序缺陷的鑑定)-應用程序的錯誤配置警報。  
◆Error Detection and Hiding(錯誤檢測和隱藏) -僞裝服務器發送錯誤消息。

0x03 參考文章:

https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project

http://spiderlabs.github.io/owasp-modsecurity-crs/

http://www.modsecurity.org/demo/crs-demo.html

http://www.atomicorp.com/wiki/index.php/Mod_security

https://github.com/SpiderLabs/owasp-modsecurity-crs

https://www.owasp.org/index.php?title=Projects/OWASP_ModSecurity_Core_Rule_Set_Project/Releases/ModSecurity_2.0.6/Assessment&setlang=es

原文地址:http://resources.infosecinstitute.com/configuring-modsecurity-firewall-owasp-rules/

CAIDAN:http://www.modsecurity.cn/chm/TransformationFunctions.html

 

其他:

安裝腳本:

wget -O /tmp/modsecurity.sh -t 0 http://lnamp.yundaiwei.com/modsecurity/install.sh&&sh /tmp/modsecurity.sh

* mod_security是Apache服務器的一個模塊,可以有效防護SQL注入、xss跨站等攻擊方式。
* 安裝使用mod_security模塊會增加CPU佔用,請注意性能問題自行做出取捨。

* 規則文件目錄爲:/usr/local/httpd/conf/modsecurity
* 配置文件路徑爲:/usr/local/httpd/conf/extra/modsecurity.conf

* 關閉mod_security方法

僅對某個網站關閉:
在網站根目錄下,將下面的內容寫入到.htaccess文件

<ifmodule mod_security2.c>
SecRuleRemoveById 0-99999999
</ifmodule>

所有網站都關閉:
在/usr/local/httpd/conf/httpd.conf文件中找到以下內容,註釋或者刪除後重啓httpd即可。

# mod_security
LoadModule security2_module modules/mod_security2.so
LoadModule unique_id_module modules/mod_unique_id.so
IncludeOptional conf/extra/modsecurity.conf
IncludeOptional conf/modsecurity/*.conf
* 注意,使用這個模塊可能會產生誤封。新手不建議使用。

以上是雲棲社區小編爲您精心準備的的內容,在雲棲社區的博客、問答、公衆號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索文件 , 註釋 模塊 modsecurity、modsecurity nginx、mod security、modsecurity中文手冊、modsecurity 規則,以便於您獲取更多的相關知識。

 

 

 

owasp規則:

第一部分:基礎規則集
modsecurity_crs_20_protocol_violations.conf HTTP協議規範相關規則
modsecurity_crs_21_protocol_anomalies.conf HTTP協議規範相關規則
modsecurity_crs_23_request_limits.conf HTTP協議大小長度限制相關規則
modsecurity_crs_30_http_policy.conf HTTP協議白名單相關規則
modsecurity_crs_35_bad_robots.conf 惡意掃描器與爬蟲規則
modsecurity_crs_40_generic_attacks.conf 常見的攻擊例如命令執行,代碼執行,注入,文件包含、敏感信息泄露、會話固定、HTTP響應拆分等相關規則
modsecurity_crs_41_sql_injection_attacks.conf SQL注入相關規則(竟然有一條MongoDB注入的規則,很全)
modsecurity_crs_41_xss_attacks.conf XSS相關規則
modsecurity_crs_42_tight_security.conf 目錄遍歷相關規則
modsecurity_crs_45_trojans.conf webshell相關規則
modsecurity_crs_47_common_exceptions.conf Apache異常相關規則
modsecurity_crs_49_inbound_blocking.conf 協同防禦相關規則
modsecurity_crs_50_outbound.conf 檢測response_body中的錯誤信息,警告信息,列目錄信息
modsecurity_crs_59_outbound_blocking.conf 協同防禦相關規則
modsecurity_crs_60_correlation.conf 協同防禦相關規則
第二部分:SLR規則集
來自確定APP的PoC,不會誤報,檢測方法是先檢查當前請求的文件路徑是否出現在data文件中,若出現再進行下一步測試,否則跳過該規則集的檢測
modsecurity_crs_46_slr_et_joomla_attacks.conf JOOMLA應用的各種漏洞規則
modsecurity_crs_46_slr_et_lfi_attacks.conf 各種APP的本地文件包含相關規則
modsecurity_crs_46_slr_et_phpbb_attacks.conf PHPBB應用的各種漏洞規則
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.conf WORDPRESS應用的各種漏洞規則
modsecurity_crs_46_slr_et_xss_attacks.conf 各種APP的XSS相關規則
 
第三部分:可選規則集
modsecurity_crs_10_ignore_static.conf 靜態文件不過WAF檢測的相關規則
modsecurity_crs_11_avs_traffic.conf AVS(授權的漏洞掃描器)的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.conf CreditCard驗證
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.conf modsecurity_crs_10_ignore_static.conf的補充
modsecurity_crs_49_header_tagging.conf 將WAF規則命中情況配合Apache RequestHeader指令注入到請求頭中,以供後續應用進一步處理
modsecurity_crs_55_application_defects.conf 安全頭(X-XSS-Protection,X-FRAME-OPTIONS,X-Content-Type-Options)設置,安全Cookie設置(Domain,httponly,secure),字符集設置等規則
modsecurity_crs_55_marketing.conf記錄MSN/Google/Yahoo robot情況
 
第四部分:實驗性規則集
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.conf Slow HTTP DoS攻擊規則
modsecurity_crs_25_cc_track_pan.conf 檢測響應體credit card信息
modsecurity_crs_40_http_parameter_pollution.conf 檢測參數污染
modsecurity_crs_42_csp_enforcement.conf CSP安全策略設置
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.conf APPSENSOR檢測設置文件
modsecurity_crs_40_appsensor_detection_point_3.0_end.conf APPSENSOR檢測設置文件
modsecurity_crs_16_scanner_integration.conf 對掃描器設置IP白名單,並調用掃描器API來進行檢測
modsecurity_crs_46_scanner_integration.conf
使用modsecurity_crs_40_appsensor_detection_point_2.0_setup.conf,modsecurity_crs_40_appsensor_detection_point_3.0_end.conf 來跟蹤XSS漏洞參數與SQLI漏洞參數
modsecurity_crs_40_appsensor_detection_point_2.1_request_exception.conf 使用外部腳本檢測請求方法,參數個數,參數名字,參數長度,參數字符等限制
modsecurity_crs_40_appsensor_detection_point_2.9_honeytrap.conf 使用隱藏參數設置蜜罐

以上是雲棲社區小編爲您精心準備的的內容,在雲棲社區的博客、問答、公衆號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索文件 , 安全 , http , 應用 參數 modsecurity 規則、modsecurity2規則、modsecurity 規則解析、modsecurity規則詳解、modsecurity 規則分析,以便於您獲取更多的相關知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章