【雲計算】WAF簡介、功能特性、部署方式等


之前寫了一篇《WAF防御能力評測及工具》,是站在安全運維人員選型WAF產品的角度來考慮的(優先從測試角度考慮是前職業病,畢竟當過3年游戲測試?!)。本篇文章從WAF產品研發的角度來YY如何實現一款可靠的WAF,靈感來自ModSecurity等,感謝開源。

本片文章包括三個主題

(1) WAF實現
WAF包括哪些組件,這些組件如何交互來實現WAF防御功能
(2)WAF規則(策略)維護
規則(策略)如何維護,包括獲取渠道,規則測試方法以及上線效果評測
(3) WAF支撐
WAF產品的完善需要哪些信息庫的支撐

一、WAF實現

WAF一句話描述,就是解析HTTP請求(協議解析模塊),規則檢測(規則模塊),做不同的防御動作(動作模塊),並將防御過程(日志模塊)記錄下來。不管硬件款,軟件款,雲款,核心都是這個,而接下來圍繞這句話來YY WAF的實現。WAF的實現由五個模塊(配置模塊、協議解析模塊、規則模塊、動作模塊、錯誤處理模塊)組成

1. 配置模塊

設置WAF的檢測粒度,按需開啟,如圖所示

WAF的實現 - 碳基體 - 碳基體

2. 協議解析模塊(重點)

協議解析的輸出就是下一個模塊規則檢測時的操作對象,解析的粒度直接影響WAF防御效果。對於將WAF模塊寄生於web 服務器的雲WAF模式,一般依賴於web 服務器的解析能力。

WAF的實現 - 碳基體 - 碳基體

3. 規則模塊(重點)

重點來了,這塊是WAF的核心,我將這塊又細分為三個子模塊。

(1) 規則配置模塊

IP黑白名單配置、 URL黑白名單配置、以及挑選合適的規則套餐。

WAF的實現 - 碳基體 - 碳基體

(2)規則解析模塊

主要作用是解析具體的規則文件,規則最好采用統一的規則描述語言,便於提供給第三方定制規則,ModSecurity這方面做得非常優秀。

規則文件由四部分組成,分為變量部分、操作符部分,事務函數部分與動作部分。

WAF的實現 - 碳基體 - 碳基體

WAF的實現 - 碳基體 - 碳基體

(3)規則檢測模塊

上一步我們設置了各種變量,接下來就是按照一定的邏輯來做加減乘除了。

WAF的實現 - 碳基體 - 碳基體

4. 動作模塊(重點)

通過規則檢測模塊,我們識別了請求的好惡,接下來就是做出響應,量刑處理,不僅僅是攔截。

WAF的實現 - 碳基體 - 碳基體

5. 日志模塊(重點)

日志處理,非常重要,也非常火熱,內容豐富到完全可以從WAF獨立出來形成單獨的安全產品(e.g.日志寶)而采用提供接口的方式來支撐WAF。對於數據量巨大的雲WAF,都會有單獨的大數據團隊來支撐架構這一塊,包括數據存儲(e.g. hdfs) ,數據傳輸(kafka),數據離線分析(hadoop/spark),數據實時分析(storm),數據關聯分析(elasticsearch)等等,以后另開一篇單獨說明。

WAF的實現 - 碳基體 - 碳基體

6. 錯誤處理模塊

以上模塊運行錯誤時的異常處理

二、WAF規則(策略)維護

WAF需要修煉一圖以蔽之

WAF的實現 - 碳基體 - 碳基體

三、WAF支撐信息庫

WAF需要修煉一圖以蔽之

WAF的實現 - 碳基體 - 碳基體

以上支撐庫幾乎所有的安全人員都在重復地做,而資源沒有共享的原因,一是內部不可說;二是沒有采取統一的描述語言無法匯合,唉,安全從業人員的巴別塔。

 

參考資料:

http://blog.163.com/yang_h_h/blog/static/4903699201211254043410/

http://www.freebuf.com/sectool/54221.html

http://www.2cto.com/Article/201307/227948.html

http://security.ctocio.com.cn/224/12994224.shtml

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM