WAF => Web Application Firewall ,可以用來屏蔽常見的網站漏洞攻擊,如SQL注入,XML注入、XSS等。一般針對的是應用層而非網絡層的入侵,從技術角度應該稱之為Web IPS。其防護重點是SQL注入。
Web防火牆產品部署在Web服務器的前面,串行接入,不僅在硬件性能上要求高,而且不能影響Web服務,所以HA功能、Bypass功能都是必須的,而且還要與負載均衡、Web Cache等Web服務器前的常見的產品協調部署。
Web應用防火牆的主要技術的對入侵的檢測能力,尤其是對Web服務入侵的檢測,Web防火牆最大的挑戰是識別率,這並不是一個容易測量的指標,因為漏網進去的入侵者,並非都大肆張揚,比如給網頁掛馬,你很難察覺進來的是那一個,不知道當然也無法統計。對於已知的攻擊方式,可以談識別率;對未知的攻擊方式,你也只好等他自己“跳”出來才知道。
現在市場上大多數的產品是基於規則的WAF。其原理是每一個會話都要經過一系列的測試,每一項測試都由一個過多個檢測規則組成,如果測試沒通過,請求就會被認為非法並拒絕。
基於規則的WAFs很容易構建並且能有效的防范已知安全問題。當我們要制定自定義防御策略時使用它會更加便捷。但是因為它們必須要首先確認每一個威脅的特點,所以要由一個強大的規則數據庫支持。WAF生產商維護這個數據庫,並且他們要提供自動更新的工具。
這個方法不能有效保護自己開發的WEB應用或者零日漏洞(攻擊者使用的沒有公開的漏洞),這些威脅使用基於異常的WAF更加有效。
異常保護的基本觀念是建立一個保護層,這個保護層能夠根據檢測合法應用數據建立統計模型,以此模型為依據判別實際通信數據是否是攻擊。理論上,一但構建成功,這個基於異常的系統應該能夠探測出任何的異常情況。擁有了它,我們不再需要規則數據庫而且零日攻擊也不再成問題了。但基於異常保護的系統很難構建,所以並不常見。因為用戶不了解它的工作原理也不相信它,所以它也就不如基於規則的WAF應用廣范。
Imperva公司的WAF產品在提供入侵防護的同時,還提供了另外一個安全防護技術,就是對Web應用網頁的自動學習功能,由於不同的網站不可能一樣,所以網站自身頁面的特性沒有辦法提前定義,所以imperva采用設備自動預學習方式,從而總結出本網站的頁面的特點。具體的做法是這樣的:
通過一段時間的用戶訪問,WAF記錄了常用網頁的訪問模式,如一個網頁中有幾個輸入點,輸入的是什么類型的內容,通常情況的長度是多少…學習完畢后,定義出一個網頁的正常使用模式,當今后有用戶突破了這個模式,如一般的帳號輸入不應該有特殊字符,而XML注入時需要有“<”之類的語言標記,WAF就會根據你預先定義的方式預警或阻斷;再如密碼長度一般不超過20位,在SQL注入時加入代碼會很長,同樣突破了網頁訪問的模式。
網頁自學習技術,從Web服務自身的業務特定角度入手,不符合我的常規就是異常的,也是入侵檢測技術的一種,比起單純的Web防火牆來,不僅給入侵者“下通緝令”,而且建立進入自家的內部“規矩”,這一種雙向的控制,顯然比單向的要好。
原文鏈接:https://zhuanlan.zhihu.com/p/35224591