web應用防火墻(WAF)的安全原理與技術分析
防止網頁被篡改是被動的,能阻斷入侵行為才是主動型的,前邊提到的IPS/UTM等產品是安全通用的網關,也有專門針對Web的硬件安全網關,國內的如:綠盟的Web防火墻,啟明的WIPS(web IPS),國外的有imperva的WAF(Web Application Firewall)等。
Web防火墻,主要是對Web特有入侵方式的加強防護,如DDOS防護、SQL注入、XML注入、XSS等。由于是應用層而非網絡層的入侵,從技術角度都應該稱為Web IPS,而不是Web防火墻。這里之所以叫做Web防火墻,是因為大家比較好理解,業界流行的稱呼而已。由于重點是防SQL注入,也有人稱為SQL防火墻。
Web防火墻產品部署在Web服務器的前面,串行接入,不僅在硬件性能上要求高,而且不能影響Web服務,所以HA功能、Bypass功能都是必須的,而且還要與負載均衡、Web Cache等Web服務器前的常見的產品協調部署。
Web防火墻的主要技術的對入侵的檢測能力,尤其是對Web服務入侵的檢測,不同的廠家技術差別很大,不能以廠家特征庫大小來衡量,主要的還是看測試效果,從廠家技術特點來說,有下面幾種方式:
◆代理服務:代理方式本身就是一種安全網關,基于會話的雙向代理,中斷了用戶與服務器的直接連接,適用于各種加密協議,這也是Web的Cache應用中最常用的技術。代理方式防止了入侵者的直接進入,對DDOS攻擊可以抑制,對非預料的“特別”行為也有所抑制。Netcontinuum(梭子魚)公司的WAF就是這種技術的代表。
◆特征識別:識別出入侵者是防護他的前提。特征就是攻擊者的“指紋”,如緩沖區溢出時的Shellcode,SQL注入中常見的“真表達(1=1)”…應用信息沒有“標準”,但每個軟件、行為都有自己的特有屬性,病毒與蠕蟲的識別就采用此方式,麻煩的就是每種攻擊都自己的特征,數量比較龐大,多了也容易相象,誤報的可能性也大。雖然目前惡意代碼的特征指數型地增長,安全界聲言要淘汰此項技術,但目前應用層的識別還沒有特別好的方式。
◆算法識別:特征識別有缺點,人們在尋求新的方式。對攻擊類型進行歸類,相同類的特征進行模式化,不再是單個特征的比較,算法識別有些類似模式識別,但對攻擊方式依賴性很強,如SQL注入、DDOS、XSS等都開發了相應的識別算法。算法識別是進行語義理解,而不是靠“長相”識別。
◆模式匹配:是IDS中“古老”的技術,把攻擊行為歸納成一定模式,匹配后能確定是入侵行為,當然模式的定義有很深的學問,各廠家都隱秘為“專利”。協議模式是其中簡單的,是按標準協議的規程來定義模式;行為模式就復雜一些,
Web防火墻最大的挑戰是識別率,這并不是一個容易測量的指標,因為漏網進去的入侵者,并非都大肆張揚,比如給網頁掛馬,你很難察覺進來的是那一個,不知道當然也無法統計。對于已知的攻擊方式,可以談識別率;對未知的攻擊方式,你也只好等他自己“跳”出來才知道。
“自學習”功能的發展:
Imperva公司的WAF產品在提供入侵防護的同時,還提供了另外一個安全防護技術,就是對Web應用網頁的自動學習功能,由于不同的網站不可能一樣,所以網站自身頁面的特性沒有辦法提前定義,所以imperva采用設備自動預學習方式,從而總結出本網站的頁面的特點。具體的做法是這樣的:
通過一段時間的用戶訪問,WAF記錄了常用網頁的訪問模式,如一個網頁中有幾個輸入點,輸入的是什么類型的內容,通常情況的長度是多少…學習完畢后,定義出一個網頁的正常使用模式,當今后有用戶突破了這個模式,如一般的帳號輸入不應該有特殊字符,而XML注入時需要有“<”之類的語言標記,WAF就會根據你預先定義的方式預警或阻斷;再如密碼長度一般不超過20位,在SQL注入時加入代碼會很長,同樣突破了網頁訪問的模式。
網頁自學習技術,從Web服務自身的業務特定角度入手,不符合我的常規就是異常的,也是入侵檢測技術的一種,比起單純的Web防火墻來,不僅給入侵者“下通緝令”,而且建立進入自家的內部“規矩”,這一種雙向的控制,顯然比單向的要好。
Citrix公司收購了Teros后,推出的應用防火墻通過分析雙向流量來學習Web服務的用戶行為模式,建立了若干用戶行為模型,一但匹配上你是某個行為,就按該模式行為去衡量你的行為做法,有“越軌”企圖立即給予阻斷。這個自適應學習引擎與Imperva公司的網頁自學習有些類似,不過一個重點是學習網頁特點,一個是學習用戶訪問的規律。
從安全角度來說,網業自學習技術與入侵防護結合使用,是理想的選擇。
Web防火墻的未來出路:
有一種說法:因為Web服務器前的負載均衡設備、Web 加速設備是不可缺少的,又是Web服務器群的出口必經之路,所以Web防火墻的功能有可能與這些設備合并。這種發展趨勢有些象網關UTM與單獨的FW、IPS、AV、VPN等設備進化發展一樣,UTM就是這些網關的集合產品。
但我有一個不同的看法:UTM部署于網絡的外連接出口,一般是互聯網出口,其網絡安全隔離作用,這里的帶寬價格昂貴,所以擁有大帶寬的用戶很有限,而Web服務器群是與網絡主交換機連接的,提供的是應用處理能力,要求的參數常是并發用戶的數量與在線用戶的數量,服務器一般都是千兆接口,目前的交換機就可達到幾十個TB的交換能力,在大流量鏈路上做多功能的安全產品,又是應用層的檢測,對產品的硬件壓力是巨大的,能達到“線性”流量的產品一定價格昂貴,因此Web防火墻的這種合并思路是有待商榷的。
【編輯推薦】