馬月 侯雪城 吳佳帥 奚啟森 徐嬴穎



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