配置ModSecurity防火牆與OWASP規則

wyzsk發表於2020-08-19
作者: 等TA回來 · 2014/07/22 11:01

from: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使用者身份登入到您的伺服器,登入之後我們在安裝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  

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-src目錄下儲存。可以透過ls命令如下進行檢視。

2014072015315319889.jpg

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

mv owasp-modsecurity-crs modsecurity-crs

2014072015322577770.jpg

 我們可以透過執行ls命令驗證。

第5步

我們必須將工作目錄更改為mod security-crs。這可以透過cd命令來完成。

cd modsecurity-crs  

2014072015331514069.jpg

Modsecurity_crs_10_setup.conf是ModSecurity工作的主配置檔案。預設情況下,它帶有.example副檔名。要初始化ModSecurity,我們要重新命名此檔案。我們可以用mv命令重新命名。

mv modsecurity_crs_10_setup.conf.example modsecurity_crs_10_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/modsecurity_crs_10_config.conf

Include modsecurity-crs/base_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/logs/httpd/error_logs
我們可以透過下面的命令來檢查檔案的最後更新的行。

tail –f /var/logs/httpd/error_logs 

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

 

 

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章