如何打造一款可靠的WAF
之前寫了一篇《WAF防御能力評(píng)測(cè)及工具》 ,是站在安全運(yùn)維人員選型WAF產(chǎn)品的角度來(lái)考慮的(優(yōu)先從測(cè)試角度考慮是前職業(yè)病,畢竟當(dāng)過(guò)3年游戲測(cè)試!)。本篇文章從WAF產(chǎn)品研發(fā)的角度來(lái)YY如何實(shí)現(xiàn)一款可靠的WAF,靈感來(lái)自ModSecurity等,感謝開源。
本片文章包括三個(gè)主題
(1) WAF實(shí)現(xiàn)
WAF包括哪些組件,這些組件如何交互來(lái)實(shí)現(xiàn)WAF防御功能
(2)WAF規(guī)則(策略)維護(hù)
規(guī)則(策略)如何維護(hù),包括獲取渠道,規(guī)則測(cè)試方法以及上線效果評(píng)測(cè)
(3) WAF支撐
WAF產(chǎn)品的完善需要哪些信息庫(kù)的支撐
一、WAF實(shí)現(xiàn)
WAF一句話描述,就是解析HTTP請(qǐng)求(協(xié)議解析模塊),規(guī)則檢測(cè)(規(guī)則模塊),做不同的防御動(dòng)作(動(dòng)作模塊),并將防御過(guò)程(日志模塊)記錄下來(lái)。 不管硬件款,軟件款,云款,核心都是這個(gè),而接下來(lái)圍繞這句話來(lái)YY WAF的實(shí)現(xiàn)。 WAF的實(shí)現(xiàn)由五個(gè)模塊(配置模塊、協(xié)議解析模塊、規(guī)則模塊、動(dòng)作模塊、錯(cuò)誤處理模塊)組成
1. 配置模塊
設(shè)置WAF的檢測(cè)粒度,按需開啟,如圖所示

2. 協(xié)議解析模塊(重點(diǎn))
協(xié)議解析的輸出就是下一個(gè)模塊規(guī)則檢測(cè)時(shí)的操作對(duì)象,解析的粒度直接影響WAF防御效果。對(duì)于將WAF模塊寄生于web 服務(wù)器的云WAF模式,一般依賴于web 服務(wù)器的解析能力。

3. 規(guī)則模塊(重點(diǎn))
重點(diǎn)來(lái)了,這塊是WAF的核心,我將這塊又細(xì)分為三個(gè)子模塊。
(1) 規(guī)則配置模塊
IP黑白名單配置、 URL黑白名單配置、以及挑選合適的規(guī)則套餐。

(2)規(guī)則解析模塊
主要作用是解析具體的規(guī)則文件,規(guī)則***采用統(tǒng)一的規(guī)則描述語(yǔ)言,便于提供給第三方定制規(guī)則,ModSecurity這方面做得非常優(yōu)秀。
規(guī)則文件由四部分組成,分為變量部分、操作符部分,事務(wù)函數(shù)部分與動(dòng)作部分。


(3)規(guī)則檢測(cè)模塊
上一步我們?cè)O(shè)置了各種變量,接下來(lái)就是按照一定的邏輯來(lái)做加減乘除了。

4. 動(dòng)作模塊(重點(diǎn))
通過(guò)規(guī)則檢測(cè)模塊,我們識(shí)別了請(qǐng)求的好惡,接下來(lái)就是做出響應(yīng),量刑處理,不僅僅是攔截。

5. 日志模塊(重點(diǎn))
日志處理,非常重要,也非?;馃?,內(nèi)容豐富到完全可以從WAF獨(dú)立出來(lái)形成單獨(dú)的安全產(chǎn)品(e.g.日志寶)而采用提供接口的方式來(lái)支撐WAF。對(duì)于數(shù)據(jù)量巨大的云WAF,都會(huì)有單獨(dú)的大數(shù)據(jù)團(tuán)隊(duì)來(lái)支撐架構(gòu)這一塊,包括數(shù)據(jù)存儲(chǔ)(e.g. hdfs) ,數(shù)據(jù)傳輸(kafka),數(shù)據(jù)離線分析(hadoop/spark),數(shù)據(jù)實(shí)時(shí)分析(storm),數(shù)據(jù)關(guān)聯(lián)分析(elasticsearch)等等,以后另開一篇單獨(dú)說(shuō)明。

6. 錯(cuò)誤處理模塊
以上模塊運(yùn)行錯(cuò)誤時(shí)的異常處理
二、WAF規(guī)則(策略)維護(hù)

三、WAF支撐信息庫(kù)

以上支撐庫(kù)幾乎所有的安全人員都在重復(fù)地做,而資源沒(méi)有共享的原因,一是內(nèi)部不可說(shuō);二是沒(méi)有采取統(tǒng)一的描述語(yǔ)言無(wú)法匯合,唉,安全從業(yè)人員的巴別塔。
四、補(bǔ)充知識(shí)(包括文章與代碼)
想想寫了這么多文章,自我感覺(jué)萌萌噠!
WAF相關(guān)
ModSecurity相關(guān)文章(我就是ModSecurity的死忠粉)
[科普文]ubuntu上安裝Apache2+ModSecurity及自定義WAF規(guī)則
ModSecurity SecRule cheatsheets
ModSecurity CRS 筆記、WAF防御checklist,及WAF架構(gòu)的一些想法
ModSecurity 晉級(jí)-如何調(diào)用lua腳本進(jìn)行防御快速入門
指紋識(shí)別
IP相關(guān)
使用免費(fèi)的本地IP地理庫(kù)來(lái)定位IP地理位置-GeoIP lookup
獲得IP的地理位置信IP Geolocation及IP位置可視化
代理類型判斷腳本 Proxy探測(cè)腳本與HTTP基本認(rèn)證暴力破解腳本
CDN架構(gòu)
網(wǎng)站負(fù)載均衡技術(shù)讀書筆記與站長(zhǎng)產(chǎn)品的一點(diǎn)想法
正則優(yōu)化
NFA引擎正則優(yōu)化TIPS、Perl正則技巧及正則性能評(píng)測(cè)方法
HTTP發(fā)包工具
HTTP.pl——通過(guò)HTTP發(fā)包工具了解HTTP協(xié)議
參考:
第八、九、十,十一我是反復(fù)看,每次都有新的靈感,第14、15章是當(dāng)成新華字典看的,以免遺忘。
《 Web Application Defenders Cookbook Battling Hackers and Protecting Users 》 (紅寶書,還在看)
原文地址:http://danqingdani.blog.163.com/blog/static/1860941952014101723845500/