【乾貨】ModSecurity - 針對中小站長高效、免費waf元件

來源:互聯網
上載者:User

摘要: ModSecurity p.s. 因發帖規定,所有http前面都加了@哦~ 原創作者:雷息一、關於ModSecurity是一款免費的開源主機waf軟體(@http://www.modsecurity.org/),目前官網最新組建為2.9.1,支援nginx/apache/iis(32、64位)。



ModSecurity

p.s. 因發帖規定,所有http前面都加了@哦~

原創作者:雷息


一、關於


ModSecurity是一款免費的開源主機waf軟體(@http://www.modsecurity.org/),目前官網最新組建為2.9.1,支援nginx/apache/iis(32、64位)。它主要是作為上述web套用的擴充模組形式存在,通過相關的規則檔案,對外部惡意的web惡意探索進行辨識,並作出進一步的丟棄動作。

二、安裝


1.nginx/apache
在Linux作業系統下,web套用為nginx/apache情況下,安裝Modsecurity需要在部署的時候對nginx/apache進行編譯,將ModSecurity源碼作為一個模組編譯進nginx/apache去。

.準備工作

1.nginx @http://nginx.org/

2.modsecurityfor Nginx:@[url]https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz[/url]

3.OWASP規則集:@[url]https://github.com/SpiderLabs/owasp-modsecurity-crs[/url]

相依性屬性:
nginx依賴:pcrezlibopenssl這三個包centos6.5及以上系統源裡都有:

yum install zlib zlib-devel opensslopenssl-develpcrepcre-devel

modsecurty依賴的包:pcre @httpd-devellibxml2 apr

yum install @httpd-devel apr apr-util-develapr-develpcrepcre-devellibxml2 libxml2-devel





.啟用standalone模組並編譯

下載modsecurity fornginx解壓,進入解壓後目錄執行:

./autogen.sh

./configure --enable-standalone-module--disable-mlogc

make





.nginx新增modsecurity模組

在編譯standalone後,nginx編譯時間可以通過"--add-module"新增modsecurity模組:

./configure--add-module=/root/modsecurity-2.9.1/nginx/modsecurity/--prefix=/opt/tengine

make && make install





.新增規則

modsecurity傾向於遮罩和封鎖web危險,之所以強大就在於規則,OWASP提供的規則是於社群志願者維修的,被稱為核心規則CRScorerules,規則可靠強大,當然也可以自訂規則來滿足各種需求。





1.下載OWASP規則:

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

mv owasp-modsecurity-crs /opt/tengine/conf/

cd/opt/tengine/conf/owasp-modsecurity-crs &&mvmodsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf





2.啟用OWASP規則:

複製modsecurity源碼目錄下的modsecurity.conf-recommendedunicode.mappingnginxconf目錄下,並將modsecurity.conf-recommended重新命名為modsecurity.conf

編輯modsecurity.conf檔案,將SecRuleEngine設定為on//預設值為DetectOnly即為觀察圖樣,建議大家在安裝時先預設使用這個圖樣,觀察一段時間,看是否對網站、伺服器有某些不可知的影響

owasp-modsecurity-crs下有很多存放規則的資料夾,例如base_rulesexperimental_rulesoptional_rulesslr_rules,裡面的規則按需要啟用,需要啟用的規則使用Includemodsecurity.conf即可。

Includeowasp-modsecurity-crs/modsecurity_crs_10_setup.conf

Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf

Includeowasp-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

//考慮到可能對主機效能上的損耗,目前建議只上線上述幾個高危弱點的防護規則,可以防禦住目前大部分的高危web惡意探索

整體規則的介紹詳見:@[url]http://www.2cto.com/Article/201409/334251.html[/url],可以針對自己網站的特殊需求,上線相應的規則。

注意:由於nginx@http要求的解析會與apache有所不同,因此這些規則其中某些部份是無法再nginx環境下使用的,有興趣研究的可以參考下

nginxmodule :more_set_headers ( @http://comments.gmane.org/gmane.comp.apache.mod-security.owasp-crs/962)





.設定nginx

在需要啟用modsecurity的主機的location下面上線下面兩行即可:

ModSecurityEnabled on;

ModSecurityConfig modsecurity.conf;

下麵是樣本設定,php虛擬機器主機conf或是vhost檔案:

server {

listen80;

server_name xxx.comwww.xxx.com;

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_indexindex.php;

fastcgi_paramSCRIPT_FILENAME$Document_root$fastcgi_script_name;

includefastcgi_params;

}

}




2.IIS
IIS下官方直接提供了msi安裝檔案,下載了直接安裝即可。




.準備工作

1.ModSecurity V2.9.1 for IIS MSI Install-3264bits@[url]http://www.modsecurity.org/download.html[/url]

2.Microsoft VisualC++ 2013 RedistributablePackage

@[url]https://www.microsoft.com/en-gb/download/details.aspx?id=40784[/url]


.安裝
1.直接將上述2個安裝包安裝即可。

2.C:WindowsSystem32inetsrvconfigapplicationHost.config找到ModSecurity這一行,改為如下

<sectionname="ModSecurity"overrideModeDefault="Allow"allowDefinition="Everywhere"/></sectionGroup>

3.ModSecurrity安裝目錄ModSecurity IIS下找到modsecurity.conf,將其中的SecRuleEngine改為On

4.web根目錄下的web.config檔案中新增如下設定

<?xmlversion="1.0"encoding="UTF-8"?>

<configuration>

<system.webServer>

<ModSecurityenabled="true"configFile=" C:ProgramFilesModSecurity IISmodsecurity_iis.conf "/>

</system.webServer>

</configuration>

5.重啟下網站



三、效果
目前已經測試過的系統包括:centos6windowsserver2008/2012均已測試安裝成功,其他系統安裝程序也與上述的類似,建議大家使用系統組建的時候儘量選穩定的最新組建,某些最新組建系統可能功能屬性方面改動較大,導致安裝程序中存在不可預知錯誤

經過測試指令碼的測試,攔截率達到較高的水準,其中XSSsql注入、檔案包含、指令執行等高危惡意探索攔截率也是比較令人滿意的。

目前市面上免費的waf產品,安全狗還是做的相當不錯的,但是具體使用程序中,還是有某些問題的:windows下相容性還是有些問題,部署後,網站某些功能使用不了;Linux下的防禦效果不如modsecurity



四、用戶維修、動作

1.所有點擊規則的外部惡意探索均會存在Modsecurity_audit.log,用戶可以對這個檔案中記錄進行審計

2.Log檔案置放在modsecurity.confSecAuditLog這個置放,linux預設開啟在/var/log/modsec_audit.logwindows需要自行開啟這個設定,並設定日誌置放。

3.支援自訂規則,modsecurity有自己的一套waf文法規則,新增規則直接新增到modsecurity.conf中即可。





相關產品:

  1. 阿裡聚安全
  2. 伺服器安全(安騎士)
  3. Web套用防火牆
  4. 雲端服務器ECS
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.