1. 程式人生 > >Web應用防火牆(WAF:Web Application Firewall)簡介

Web應用防火牆(WAF:Web Application Firewall)簡介

瞭解WAF


1.1 什麼是WAF

Web應用防火牆(Web Application Firewall, 簡稱 WAF)基於雲安全大資料能力,用於防禦SQL注入、XSS跨站指令碼、常見Web伺服器外掛漏洞、木馬上傳、非授權核心資源訪問等OWASP常見攻擊,並過濾海量惡意CC攻擊,避免您的網站資產資料洩露,保障網站的安全與可用性。

 

1.2 WAF的功能

  • 支援IP白名單和黑名單功能,直接將黑名單的IP訪問拒絕。
  • 支援URL白名單,將不需要過濾的URL進行定義。
  • 支援User-Agent的過濾,匹配自定義規則中的條目,然後進行處理(返回403)。
  • 支援CC攻擊防護,單個URL指定時間的訪問次數,超過設定值,直接返回403。
  • 支援Cookie過濾,匹配自定義規則中的條目,然後進行處理(返回403)。
  • 支援URL過濾,匹配自定義規則中的條目,如果使用者請求的URL包含這些,返回403。
  • 支援URL引數過濾,原理同上。
  • 支援日誌記錄,將所有拒絕的操作,記錄到日誌中去。

 

WAF與網路防火牆的區別

網路防火牆作為訪問控制裝置,主要工作在OSI模型三、四層,基於IP報文進行檢測。只是對埠做限制,對TCP協議做封堵。其產品設計無需理解HTTP會話,也就決定了無法理解Web應用程式語言如HTML、SQL語言。因此,它不可能對HTTP通訊進行輸入驗證或攻擊規則分析。針對Web網站的惡意攻擊絕大部分都將封裝為HTTP請求,從80或443埠順利通過防火牆檢測。 

一些定位比較綜合、提供豐富功能的防火牆,也具備一定程度的應用層防禦能力,如能根據TCP會話異常性及攻擊特徵阻止網路層的攻擊,通過IP分拆和組合也能判斷是否有攻擊隱藏在多個數據包中,但從根本上說他仍然無法理解HTTP會話,難以應對如SQL注入、跨站指令碼、cookie竊取、網頁篡改等應用層攻擊。 

Web應用防火牆能在應用層理解分析HTTP會話,因此能有效的防止各類應用層攻擊,同時他向下相容,具備網路防火牆的功能。

 

WAF與IPS的區別

兩者的區別在於一個是縱橫度,一個是深度。IPS凸顯的優勢在於縱橫度,也就是對於網路中的所有流量進行監管,它面對的是海量資料,TCP/IP模型中網路流量從物理層到應用層是逐層遞交,IPS主要定位在分析傳輸層和網路層的資料,而再往上則是複雜的各種應用層協議報文,WAF則僅提供對Web應用流量全部層面的監管。

IPS和WAF通常是串聯部署在Web伺服器前端,對於伺服器和客戶端都是透明的。這兩者串聯部署在Web伺服器前端時,市面上的大多數IPS均採用橋模式,而WAF是採用反向代理模式,IPS需要處理網路中所有的流量,而WAF僅處理與Web應用相關的協議。

橋模式和反向代理模式的差異在於:橋模式是基於網路層的包轉發,基本都沒有協議棧,或只能簡單的模擬部分協議棧,分析網路報文流量是基於單包的方式,所以要處理分片報文、資料流重組、亂序報文、報文重傳、丟包都不具備優勢。同時網路流量中包括的協議種類是非常多的,每種應用層協議都有自身獨特的協議特徵和格式要求,比如Ftp、SSH、Telnet、SMTP等,無法把各種應用流量放到應用層協議棧來處理。

WAF系統內嵌的協議棧是經過修改和優化的,能完全支援Http應用協議的處理,這意味著必須遵循RFC標準來處理Http報文,包括如下主要RFC:

  • RFC 2616 HTTP協議語法的定義
  • RFC 2396 URL語法的定義
  • RFC 2109 Cookie是怎樣工作的
  • RFC 1867 HTTP如何POST,以及POST的格式

RFC中對Http的request行長度、URL長度、協議名稱長度、頭部值長度等都是有嚴格要求的,以及傳輸順序和應用格式,比如Html引數的要求、Cookie的版本和格式、檔案上傳的編碼 multipart/form-data encoding等,這些應用層內容只能在具有完整應用層協議棧的前提下才可正確識別和控制,對於不完整的丟包,重傳包以及偽造的畸形包都會通過協議校驗機制來處理。