Web應用防火牆(WAF)解析

簡單介紹

Web應用防火牆(WAF)是專門對web應用提供保護的產品,相較於傳統防火牆,WAF工作在應用層,通過執行一系列針對HTTP/HTTPS的安全策略來爲專門的web應用提供保護。WAF通過對請求的內容通過進行規則匹配,行爲分析等相關動作來判斷是否存在威脅,並採取相應的阻斷,記錄,警告等動作。

基於規則構建的WAF

基於規則構建的WAF主要通過一個規則數據庫的抵禦外來入侵,WAF廠商維護一個安全數據庫,WAF對每一個到來的請求通過數據庫中的規則進行檢測,如果測試通過,則認爲是安全請求,否則拒絕請求,這種方式可以有效的防範已知的安全問題,但是對於0day則沒有防禦能力。

基於異常保護的WAF

基於異常保護的WAF根據檢測合法的應用數據建立一個統計模型,以這個模型爲依據判斷通信數據是否存在惡意行爲,但是基於異常保護的系統難以構建,同時對用戶的體驗來說沒有基於規則的WAF更加直觀,使得其應用並不廣泛。

ModSecurity

ModSecurity作爲WAF的事實標準,其是一個開源並跨平臺的WAF,被稱爲WAF界的瑞士軍刀(另一款瑞士軍刀爲netcat),早期的ModSecurity被開發爲Apache的一個模塊,隨着發展,並提高獨立性,ModSecurity團隊開發了ModeSecurity v3版本,同時起了一個新名字叫Libmodsecrity。V3版本可以不依賴WEB服務進行獨立安全,但是與Web服務聯動工作時,需要安裝對應的連接器。作爲業界的實施標準ModSecurity的功能亦是大部分WAF的功能。如圖是ModSecurity功能介紹

在這裏插入圖片描述

ModSecurity處理事件階段

  1. 請求頭階段: 該階段是ModSecurity的第一個入口點,處在該階段的ModSecurity規則會在Apache完成請求頭後立即執行。主要是允許規則編寫器在執行代價高昂的請求正文處理之前做一個評估。這個評估將會影響modsecurity如何處理請求主體,到這個時候還沒有讀取(或解析)到請求體。默認情況下,ModSecurity不會解析XML或JSON請求體,但是可以通過將適當的規則放到第一階段來構建他。
  2. 請求體階段: 該階段是主要的請求分析階段,在接收和處理完完整的請求正文之後立即執行,這個階段的規則擁有所有可用的請求數據,之後web服務器將生成響應本身(在嵌入模式下),或者將事務轉發到後端web服務器(反向代理模式下)。請求體階段Modsecurity支持Application/x-www-form-urldecode、Multipart/from-data、Text/xml。
  3. 響應頭階段: 響應投階段發生在響應頭可用之後(響應頭被髮送到客戶端之前),但在讀取響應體之前,需要決定是否檢查響應主體的規則應被在這個階段運行。此時的響應狀態碼在請求的早期被Apache服務器管理着,所以沒法觸發預期結果。
  4. 響應體階段: 到此階段時,響應體已經被讀取,並且所有的數據都可以供規做出決定,可以運行規則階段響應體。
  5. 日誌記錄階段: 此時事務已經完成,已不能對事務施加影響,但是可以進行記錄。

我的個人博客,歡迎大家訪問 ~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章