馬月 侯雪城 吳佳帥 奚啟森 徐嬴穎
摘 ?要: Web應(yīng)用的廣泛擴(kuò)展,使得傳統(tǒng)的網(wǎng)絡(luò)防護(hù)技術(shù)已經(jīng)不能有效地應(yīng)對來自應(yīng)用層的各種攻擊。隨著服務(wù)提供商對Web應(yīng)用的安全需求不斷提升,Web應(yīng)用防火墻(WAF)作為應(yīng)用層防護(hù)工具開始備受關(guān)注。為了研究Web應(yīng)用防火墻技術(shù)的發(fā)展現(xiàn)狀,通過閱讀大量文獻(xiàn),對Web應(yīng)用防火墻技術(shù)進(jìn)行總結(jié)和分析,提出了Web應(yīng)用防火墻的發(fā)展新趨勢。
關(guān)鍵詞: WAF; 應(yīng)用層防護(hù); Web應(yīng)用防火墻; 防火墻; WAF部署
中圖分類號:TP393 ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A ? ? 文章編號:1006-8228(2020)03-13-03
Research on technologies of Web application firewall
Ma Yue, Hou Xuecheng, Wu Jiashuai, Xi Qisen, Xu Yingying
(Wenzhou University, College of Computer Science and Artificial Intelligence, Wenzhou, Zhejiang 325035, China)
Abstract: With the extensive development of Web applications, traditional protection technologies can no longer cope with the various attacks from application layer. With the increasing requirements of service providers for security of Web application, Web application firewall (WAF), as an application layer protection tool, has attracted more and more attention. In order to study the development of Web application firewall technology, this paper summarizes and analyzes the Web application firewall technology by reading a large number of literatures, and then puts forward the new development trend of Web application firewall.
Key words: application layer protection; Web application firewall; firewall; WAF deployment
0 引言
據(jù)統(tǒng)計表明,近75%的網(wǎng)絡(luò)攻擊發(fā)生在應(yīng)用層[1]。傳統(tǒng)的防火墻一般是通過分組過濾的形式來實現(xiàn),但是這種傳統(tǒng)的方法只能控制和過濾對一些端口或IP地址的非授權(quán)訪問。當(dāng)惡意攻擊者針對Web服務(wù)發(fā)動應(yīng)用層攻擊時,如注入、失效的身份認(rèn)證、敏感數(shù)據(jù)泄露、XML外部實體、失效的訪問控制、安全配置錯誤、跨站腳本、不安全的反序列化等[2],傳統(tǒng)分組過濾防火墻無法檢測到異常流量與提供Web應(yīng)用系統(tǒng)防護(hù)。Web應(yīng)用防火墻(Web Application Firewall,以下簡稱WAF)可以檢測HTTP協(xié)議的請求,解析HTTP請求中的響應(yīng)元素,對存在威脅的請求進(jìn)行攔截,從而實現(xiàn)對Web應(yīng)用實現(xiàn)應(yīng)用層的安全防護(hù)工作[3]。
WAF可以是硬件產(chǎn)品或軟件產(chǎn)品,一般架設(shè)在Web應(yīng)用服務(wù)器的前端。它通過截獲或者復(fù)制得到來自客戶端的HTTP請求,將得到的請求進(jìn)行解析來得到特定的解析實體,然后放入規(guī)則庫來檢測請求的安全性與合法性,通過建立一個可靠的請求準(zhǔn)入機(jī)制實現(xiàn)對各類網(wǎng)站站點的有效防護(hù)。同時,WAF的數(shù)據(jù)中心將依據(jù)新增加的應(yīng)用程序或新的軟件模塊進(jìn)行相應(yīng)的更新、變化[4]。
1 WAF的分類
根據(jù)WAF系統(tǒng)的實現(xiàn)方式,WAF可以分為三類:硬件WAF、軟件WAF和云WAF。
硬件WAF一般由硬件完成防護(hù)工作,通常以串行方式部署在Web服務(wù)器的前端,截獲對Web服務(wù)器的請求進(jìn)行檢測,如華為的WAF5000 Web應(yīng)用防火墻。硬件WAF部署相對簡單,僅需要簡單的網(wǎng)絡(luò)配置即可,并且可以承受較大的數(shù)據(jù)訪問量。由于在物理層面部署在Web服務(wù)器之前,被繞過的可能性較低,能有效保護(hù)后端服務(wù)器的安全。
軟件WAF一般安裝在需要防護(hù)的服務(wù)器上,以WAF監(jiān)聽端口的方式進(jìn)行請求檢測和阻斷,如國內(nèi)的ShareWAF。軟件WAF管理方便,提供可視化的友好的管理界面,但由于只能單臺服務(wù)器部署,一般適合中小型網(wǎng)站使用。
云WAF,也稱WAF的云模式。云WAF一般基于云計算技術(shù)實現(xiàn),在這種模式下用戶可以直接使用服務(wù)商提供的相應(yīng)Web防護(hù)服務(wù),如華訊網(wǎng)絡(luò)云WAF。云WAF利用DNS技術(shù),通過移交域名解析權(quán)將HTTP請求移交到云端進(jìn)行檢測,確認(rèn)其合法性后再轉(zhuǎn)發(fā)到真實服務(wù)器。由于采用移交DNS解析權(quán)的工作方式,使得其存在被輕易繞過的風(fēng)險,可靠性較低[5]。
2 WAF的工作原理
2.1 工作流程
WAF的工作流程可分為三個階段,如圖1所示。
前期是WAF工作搭建的基礎(chǔ),系統(tǒng)將根據(jù)匹配規(guī)則、工作環(huán)境和工作方式的設(shè)定為相關(guān)Web服務(wù)提供特定保護(hù)。匹配規(guī)則包括配置URL黑白名單、配置IP黑白名單、配置策略文件、設(shè)置正則表達(dá)式等。工作環(huán)境配置包括設(shè)置WAF要保護(hù)的Web站點、配置負(fù)載均衡策略、搭建部署平臺環(huán)境等。工作方式配置包括設(shè)置WAF的部署模式,以及配置請求與響應(yīng)行為。
在中期,WAF工作需要經(jīng)過用戶協(xié)議獲取、用戶操作獲取、數(shù)據(jù)清洗、規(guī)則匹配與二次檢驗等五個環(huán)節(jié)[6],實現(xiàn)對客戶端用戶操作的獲取、HTTP/HTTPS請求的解析與錯誤處理的解析,對無用數(shù)據(jù)進(jìn)行清洗,并進(jìn)行二次檢驗。通過規(guī)則匹配與行為分析,系統(tǒng)將進(jìn)行攔截、重定向等響應(yīng)。
在后期,WAF系統(tǒng)將對日志統(tǒng)計整合,并存檔以便于數(shù)據(jù)分析與執(zhí)行基于數(shù)據(jù)的相關(guān)行為。
2.2 部署模式
WAF不同部署方式,對應(yīng)不同的工作原理與工作方式。
⑴ 透明代理模式:也稱為網(wǎng)橋代理模式,WAF在后臺起到類似網(wǎng)橋的作用,因為在客戶端眼中是直接訪問Web服務(wù)器的,WAF對于用戶而言是透明的[7],如圖2所示。WAF在其中起了代理客戶請求的作用,攔截并檢測來自客戶端的請求。
⑵ 反向代理模式:如圖3所示,WAF起到反向代理服務(wù)器的作用。在客戶端眼中,WAF的地址就是真實服務(wù)器的地址,實際上客戶端的請求是直接發(fā)送給WAF服務(wù)器的,而不能直接訪問到真實的Web服務(wù)器。當(dāng)WAF檢測請求合法后,才會將請求轉(zhuǎn)發(fā)到真實服務(wù)器上并返回來自服務(wù)器的響應(yīng)。
⑶ 路由代理模式:如圖4所示,路由代理模式和透明代理模式類似,但透明代理模式是基于網(wǎng)橋模式轉(zhuǎn)發(fā)請求,而路由代理模式則是基于路由器轉(zhuǎn)發(fā)客戶端請求。
⑷ 端口鏡像模式:如圖5所示,WAF通過交換機(jī)鏡像一份來自客戶端的請求。在這種部署模式下,因為WAF沒有直接截取HTTP請求,所以不能對客戶端請求進(jìn)行攔截,一般用于對客戶端請求的流量監(jiān)控及分析工作[8]。
3 傳統(tǒng)WAF的不足
WAF通過檢測訪問服務(wù)器的數(shù)據(jù)流量來實現(xiàn)防護(hù)工作。由此,當(dāng)惡意攻擊者的訪問請求主動繞開WAF(Bypass),直接攻擊Web服務(wù)器時,WAF的防護(hù)功能就失效了。以下介紹幾種常見的WAF繞過策略。
⑴ 從架構(gòu)層Bypass WAF:主要是針對云WAF而言,攻擊者訪問時,獲取真實的服務(wù)器的IP地址,使訪問請求不經(jīng)過云WAF,而直達(dá)應(yīng)用,實現(xiàn)繞過。
⑵ 從資源角度:HTTP請求POST BODY數(shù)據(jù)較多,檢測所有的內(nèi)容將導(dǎo)致WAF消耗太多資源。因此許多WAF只檢測數(shù)據(jù)的部分內(nèi)容。攻擊者通過把攻擊內(nèi)容放在POST BODY尾部的方式,來繞過部分WAF的檢測。
⑶ 從協(xié)議層面:WAF只檢測HTTP協(xié)議相關(guān)的請求。通過構(gòu)造非HTTP協(xié)議或者利用HTTP協(xié)議解析中的不一致進(jìn)行攻擊。HTTP協(xié)議解析不一致是指:某些攻擊數(shù)據(jù)包被WAF認(rèn)為并非HTTP協(xié)議內(nèi)容,不對其進(jìn)行檢測,而后端應(yīng)用對協(xié)議存在一定的容錯性,導(dǎo)致攻擊數(shù)據(jù)包仍被認(rèn)為是HTTP協(xié)議內(nèi)容,在應(yīng)用端被解析后造成攻擊。
⑷ 從規(guī)則缺陷:攻擊者構(gòu)造WAF檢測規(guī)則庫未配置檢測規(guī)則的請求,規(guī)避WAF的檢測[3]。
4 傳統(tǒng)WAF的演變
4.1 WAF1.0
第一代WAF有兩個主要內(nèi)容:HTTP屬性(方法、地址、參數(shù))和分析前的數(shù)據(jù)轉(zhuǎn)換。通過采用了基于簽名的方法,防止服務(wù)器攻擊,如RCE、路徑遍歷和SQL注入等攻擊。
4.2 WAF 2.0
技術(shù)棧和關(guān)鍵Web應(yīng)用程序數(shù)量的爆炸式增長推動了WAF 的發(fā)展。Web應(yīng)用程序的龐大數(shù)量和其復(fù)雜性令傳統(tǒng)的基于簽名的方法發(fā)生誤報檢測的數(shù)量過多。因此,第二代WAF采用了建立一個動態(tài)模型的辦法,即“自學(xué)習(xí)模型”的檢測手段,出現(xiàn)了保護(hù)用戶免受攻擊(XSS和CSRF)的方法。但由于監(jiān)督機(jī)器學(xué)習(xí)優(yōu)化簽名需要廣泛的人工干預(yù),這一過程需耗費大量的時間,降低了用戶的Web體驗。
4.3 WAF3.0
為了逃避特征分析,黑客將注意力轉(zhuǎn)移到“零日漏洞”上。防護(hù)者被迫建立一個正常應(yīng)用程序功能模型,以便在保持低誤報的同時檢測異常情況。由于沒有“干凈”的流量作為自學(xué)習(xí)模型的樣本,完全自動化的方法也出現(xiàn)了短板。后在“隱含馬爾可夫模型”來建立用戶行為模型的幫助下,第三代WAF可以使用這種合法請求中混雜著惡意請求的混合流量進(jìn)行學(xué)習(xí),避免“零日漏洞攻擊”,防止繞過攻擊。
4.4 WAF4.0
第四代WAF采用了基于算法的檢測新技術(shù),根據(jù)攻擊手法進(jìn)行分析,運用應(yīng)對該攻擊手法的新算法,實時地分析網(wǎng)絡(luò)數(shù)據(jù)。WAF內(nèi)部的“輕型虛擬機(jī)”可模擬攻擊,分析攻擊特征,從而預(yù)測和防御相關(guān)Web攻擊。以此來彌補(bǔ)基于自學(xué)習(xí)模型檢測手段的資源耗用問題和基于創(chuàng)新的安全模型的變種檢測準(zhǔn)確率不高的問題。
5 WAF新趨勢
WAF可利用虛擬化技術(shù)來做私人數(shù)據(jù)網(wǎng)絡(luò)與互聯(lián)網(wǎng)的分割,為私人網(wǎng)絡(luò)搭建一座防護(hù)屏障以保護(hù)其網(wǎng)絡(luò)、端點設(shè)備與網(wǎng)絡(luò)內(nèi)用戶的安全,來避免相關(guān)Web攻擊。
Socialbot是一種控制社交媒體帳戶的機(jī)器人,是自動化軟件,可在網(wǎng)絡(luò)社交中模仿人類的行為。它通過欺騙真實用戶來傳播,往往攻擊一個社交圈就可同時影響多個不同受眾群體。對此,部分WAF有考慮檢測與阻止Socialbo來實現(xiàn)社交網(wǎng)絡(luò)僵尸用戶檢測。
SEO(Search Engine Optimization),即搜索引擎優(yōu)化,它容易帶來錯誤的入口頁或是惡意反向鏈接,誘導(dǎo)用戶點擊進(jìn)入惡意網(wǎng)站。為此,WAF還允許配置合適的URL過濾及應(yīng)用保護(hù)以減小用戶不經(jīng)意點擊此等惡意網(wǎng)站的幾率,來抵制利用搜索引擎結(jié)果包裝惡意攻擊連接隱藏不法意圖的攻擊[9]。
6 結(jié)束語
本文圍繞WAF這一主題,介紹了主要實現(xiàn)方式、傳統(tǒng)WAF的不足和發(fā)展趨勢,旨在便于開展后續(xù)相關(guān)WAF研究和設(shè)計工作。隨著科技的不斷革新,網(wǎng)絡(luò)攻擊者的手段也日益高明,WAF防護(hù)技術(shù)將不斷迎接挑戰(zhàn)。新生代的WAF還可以結(jié)合其所防護(hù)的Web的功能,從使用者或運營者的邏輯特征下手,提供靈活多變、適用于更多復(fù)雜環(huán)境的防護(hù)。
參考文獻(xiàn)(References):
[1] 馮芳梅.基于ColdFusion的Web應(yīng)用防火墻引擎[D].電子科技大學(xué),2012.
[2] OWASP Top 10 2017中文版V1.3[EB/OL]http://www.owasp.org.cn/owasp-project/OWASPTop102017v1.3.pdf.
[3] 馬一騰,成辰,金海旻等.淺談WAF技術(shù)在商業(yè)銀行安全領(lǐng)域的應(yīng)用及前景[J].中國金融電腦,2017.8:60-65
[4] 魏濤.Web應(yīng)用防火墻的應(yīng)用與研究[J].現(xiàn)代商貿(mào)工業(yè),2012.24:213-214
[5] 何軍.基于云計算的Web防御系統(tǒng)研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2017.3:81-82
[6] 王亞麗.Web應(yīng)用防火墻繞過技術(shù)[J].電子技術(shù)與軟件工程,2017.18:209
[7] 劉志光.Web應(yīng)用防火墻技術(shù)分析[J].情報探索,2014.3:103-105
[8] 薛鵬飛.Web應(yīng)用防火墻(WAF)在高校中的應(yīng)用與管理[J].電腦迷,2018.97(6):182
[9] 呂明.淺談WAF市場中常見的檢測技術(shù)[J].信息安全與通信保密,2012.5:48-48