如何打造一款可靠的WAF

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

本片文章包括三個主題git

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

1、WAF實現github

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

1. 配置模塊shell

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

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. 錯誤處理模塊

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

2、WAF規則(策略)維護

WAF須要修煉一圖以蔽之

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

3、WAF支撐信息庫

WAF須要修煉一圖以蔽之

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

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

4、補充知識(包括文章與代碼)

想一想寫了這麼多文章,自我感受萌萌噠!

WAF相關

 

WAF防護能力評測及工具

ssdeep檢測webshell

ModSecurity相關文章(我就是ModSecurity的死忠粉)

[科普文]ubuntu上安裝Apache2+ModSecurity及自定義WAF規則

ModSecurity SecRule cheatsheets

ModSecurity CRS 筆記、WAF防護checklist,及WAF架構的一些想法

ModSecurity 晉級-如何調用lua腳本進行防護快速入門

ModSecurity 白名單設置

指紋識別

 

Web應用指紋識別

FingerPrint

IP相關

 

使用免費的本地IP地理庫來定位IP地理位置-GeoIP lookup

得到IP的地理位置信IP Geolocation及IP位置可視化

IP地理信息離線獲取腳本

IP地理信息在線獲取腳本

識別搜索引擎腳本

判斷使用哪家CDN腳本

代理類型判斷腳本 Proxy探測腳本與HTTP基本認證暴力破解腳本

CDN架構

 

網站負載均衡技術讀書筆記與站長產品的一點想法

正則優化

 

NFA引擎正則優化TIPS、Perl正則技巧及正則性能評測方法

HTTP發包工具

 

HTTP.pl——經過HTTP發包工具瞭解HTTP協議

HTTP發包工具 -HTTPie

WAF實現的思惟導圖

參考:

ModSecurity  Handbook

第8、9、十,十一我是反覆看,每次都有新的靈感,第1四、15章是當成新華字典看的,以避免遺忘。

Web Application Defenders Cookbook Battling Hackers and Protecting Users》 (紅寶書,還在看)

FreeBuf推薦:碳基體MM微博

http://weibo.com/tanjiti

相關文章
相關標籤/搜索