張 恬
(無(wú)錫城市職業(yè)技術(shù)學(xué)院,江蘇 無(wú)錫 214153)
Web 技術(shù)具有標(biāo)準(zhǔn)化的特征,高校的很多應(yīng)用都采用Web 應(yīng)用形式,比如:網(wǎng)站群系統(tǒng)、教務(wù)系統(tǒng)、辦公系統(tǒng)等。 隨著智慧校園的建設(shè),對(duì)高校網(wǎng)絡(luò)安全的重視,Web 應(yīng)用的快速發(fā)展,暴露出較多網(wǎng)絡(luò)安全方面的問(wèn)題,網(wǎng)絡(luò)安全等級(jí)保護(hù)2.0 的實(shí)施對(duì)Web 應(yīng)用安全提出了一定要求。 HTTP 協(xié)議的安全機(jī)制缺乏和Web應(yīng)用系統(tǒng)本身的安全漏洞,導(dǎo)致Web 應(yīng)用層面的安全風(fēng)險(xiǎn)逐日增大。 傳統(tǒng)的網(wǎng)絡(luò)安全設(shè)備工作在網(wǎng)絡(luò)層居多,導(dǎo)致應(yīng)用層的防護(hù)與其不匹配,網(wǎng)絡(luò)安全設(shè)備(IDS和IPS)可以通過(guò)包檢測(cè)技術(shù)來(lái)探知流經(jīng)應(yīng)用層的流量,并匹配攜帶的攻擊特征庫(kù),從而辨識(shí)網(wǎng)絡(luò)攻擊,對(duì)應(yīng)用層進(jìn)行防護(hù),但I(xiàn)DS 和IPS 對(duì)靈活編碼和報(bào)文分割實(shí)現(xiàn)的應(yīng)用層攻擊無(wú)法防御。 Web 應(yīng)用防火墻(Web application firewall,WAF)工作在應(yīng)用層[1-2],對(duì)HTTP協(xié)議的請(qǐng)求和應(yīng)答進(jìn)行重組解析,并與攻擊特征庫(kù)進(jìn)行匹配,根據(jù)判斷出的攻擊行為做出報(bào)警或者阻斷等不同處理。 本文首先介紹Web 應(yīng)用相關(guān)的技術(shù),HTTP協(xié)議機(jī)制與基于已知攻擊方式的不足,接著分析WAF的特異性配置的優(yōu)點(diǎn)和日常管理注意事項(xiàng)等,在此基礎(chǔ)上建立WAF 實(shí)際應(yīng)用模型,經(jīng)檢測(cè)可以有效阻斷Web 應(yīng)用層的攻擊。
Web 應(yīng)用服務(wù)具備很強(qiáng)的交互性,客戶(hù)端與服務(wù)器端的交互是通過(guò)HTTP 協(xié)議進(jìn)行的[3],典型的Web應(yīng)用即為客戶(hù)端向Web 服務(wù)器發(fā)送HTTP 或HTTPS請(qǐng)求,服務(wù)器收到請(qǐng)求后進(jìn)行應(yīng)答。 超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)是一個(gè)基于請(qǐng)求與響應(yīng)模式的、無(wú)狀態(tài)的、應(yīng)用層的協(xié)議,基于TCP 的連接方式,給出一種持續(xù)連接的機(jī)制,大多數(shù)的Web 開(kāi)發(fā)都是構(gòu)建在HTTP 協(xié)議之上的 Web 應(yīng)用[4-5]。 故Web 應(yīng)用安全問(wèn)題大部分是忽略了對(duì)用戶(hù)輸入數(shù)據(jù)的審核,從而導(dǎo)致攻擊行為的發(fā)生。 在傳輸過(guò)程中,首先由客戶(hù)端向服務(wù)器端發(fā)送請(qǐng)求,請(qǐng)求頭的內(nèi)容主要有請(qǐng)求的方法、URL、協(xié)議版本等。 服務(wù)器接收到請(qǐng)求,對(duì)請(qǐng)求發(fā)出響應(yīng),響應(yīng)的內(nèi)容主要有消息協(xié)議的版本、成功或者錯(cuò)誤編碼等。 HTTP 協(xié)議的報(bào)文頭有4 部分內(nèi)容:通用頭、請(qǐng)求頭、響應(yīng)頭和實(shí)體頭。 4 部分包括的具體內(nèi)容如表1 所示。 在請(qǐng)求發(fā)出時(shí),消息的首行格式包含對(duì)URL 完成的方法,有 OPTIONS,GET,HEAD,POST,PUT,DELETE 和TRACE。 Web 應(yīng)用安全問(wèn)題的產(chǎn)生因?yàn)橛脩?hù)可以在報(bào)文頭的任意部位進(jìn)行輸入操作,每個(gè)點(diǎn)都會(huì)成為攻擊注入點(diǎn)。 最常見(jiàn)的Web 攻擊注入點(diǎn)有GET,POST,Cookies,Referen,User-Agent,請(qǐng)求頭等。
表1 報(bào)文頭內(nèi)容
WAF 最常見(jiàn)的檢測(cè)方法是模式匹配的方式,但該檢測(cè)方法會(huì)有繞行的風(fēng)險(xiǎn),主要原因有兩點(diǎn),一是模式匹配的固定模式,無(wú)論是采用正則匹配或者添加一些其他匹配方式,會(huì)有被繞行的風(fēng)險(xiǎn);二是HTTP 協(xié)議的解析漏洞,若攻擊者發(fā)起異常數(shù)據(jù)包,正常無(wú)法提取變量,即直接繞過(guò)WAF 檢測(cè)。
目前WAF 為了對(duì)攻擊進(jìn)行快速的識(shí)別,大部分規(guī)則庫(kù)的建立都是基于已知攻擊方式,這種方式的不足之處在于:(1)攻擊方式與形式具備多變性的特點(diǎn),直接導(dǎo)致增加規(guī)則庫(kù)的體量,維護(hù)規(guī)則庫(kù)會(huì)造成較多的消耗。 (2)新型攻擊或未知攻擊發(fā)生時(shí),無(wú)法有效斷定是否為惡意攻擊,而導(dǎo)致防護(hù)能力弱,只能進(jìn)行“事后防護(hù)”。 (3)對(duì)缺乏明顯攻擊特性的數(shù)據(jù)篡改等攻擊形式防護(hù)能力薄弱。
綜合以上不足,具有特異性配置的WAF 可以根據(jù)需要防護(hù)的Web 應(yīng)用合理有效地配置所需的防護(hù)。 這種防護(hù)方式從Web 應(yīng)用本身業(yè)務(wù)作為切入點(diǎn),通過(guò)合法通信,采集數(shù)據(jù)樣本,變成適應(yīng)自身業(yè)務(wù)系統(tǒng)的規(guī)則庫(kù),更有針對(duì)性。
黑白名單檢測(cè)可以增強(qiáng)WAF 系統(tǒng)的網(wǎng)絡(luò)防護(hù),對(duì)于加入黑名單的IP 地址,會(huì)被直接攔截,相反加入白名單的IP 地址,則直接將數(shù)據(jù)包轉(zhuǎn)發(fā)。 如果兩種情況都不滿(mǎn)足,普通的請(qǐng)求報(bào)文,進(jìn)行檢測(cè)流程。
規(guī)則組模塊主要進(jìn)行各類(lèi)匹配規(guī)則的設(shè)置,例如協(xié)議限制類(lèi)、注入攻擊類(lèi)、跨站攻擊等。 這些規(guī)則的設(shè)置都是基于對(duì)發(fā)送報(bào)文的解析,分析HTTP 報(bào)文,通過(guò)獲取到請(qǐng)求字段,將請(qǐng)求字段與規(guī)則組匹配,深度掃描是否含有攻擊類(lèi)型,并判斷是否觸發(fā)響應(yīng)模塊的處理。規(guī)則組會(huì)根據(jù)網(wǎng)絡(luò)中新增的應(yīng)用程序或者模塊等進(jìn)行更新操作,完善規(guī)則庫(kù)。
報(bào)文的解析主要包括對(duì)HTTPS 報(bào)文的加解密處理、將編碼統(tǒng)一化和提取報(bào)文字段3 步操作。 第一,對(duì)HTTPS 報(bào)文的加解密處理,需要通過(guò)HOST 域來(lái)進(jìn)行判定送到的目的Web 服務(wù)器,根據(jù)提供的SSL 證書(shū)和密鑰對(duì)請(qǐng)求報(bào)文進(jìn)行解密操作,翻譯為明文后,轉(zhuǎn)發(fā)到下一個(gè)目的模塊,同時(shí)將服務(wù)器響應(yīng)的應(yīng)答報(bào)文進(jìn)行加密操作并轉(zhuǎn)發(fā)。 第二,將編碼統(tǒng)一化,主要對(duì)HTTP報(bào)文進(jìn)行處理,編碼方式有多種,例如:URL 編碼、Unicode 編碼等。 為了防止有攻擊繞行,將編碼進(jìn)行統(tǒng)一化處理。 第三,提取報(bào)文字段,提取對(duì)HTTP 的請(qǐng)求和發(fā)出的響應(yīng)報(bào)文內(nèi)容,請(qǐng)求報(bào)文中將Host 字段與Post 請(qǐng)求中的主體提取出,響應(yīng)報(bào)文中將SetCookie 字段內(nèi)容進(jìn)行提取。 最終提出的內(nèi)容與規(guī)則庫(kù)進(jìn)行有效匹配,進(jìn)行篩選。
日志記錄是WAF 系統(tǒng)的重要記錄部分,記錄的類(lèi)型可以設(shè)置為基本、詳細(xì)和全部3 種類(lèi)型。 當(dāng)有攻擊行為發(fā)生時(shí),會(huì)記錄下攻擊信息,通過(guò)報(bào)表的方式查看攻擊的類(lèi)型等。
Web 頁(yè)面的參數(shù)主要有固定類(lèi)型參數(shù)、枚舉參數(shù)、用戶(hù)輸入?yún)?shù)3 類(lèi)。 第一種固定類(lèi)型參數(shù),比如輸入出生日期等數(shù)字是固定的,可以為通用配置。 第二種枚舉類(lèi)型的參數(shù),通常在頁(yè)面的表現(xiàn)方式是下拉框或者選擇框,比如性別等,可以在規(guī)則庫(kù)設(shè)置匹配表進(jìn)行通用配置。 第三種用戶(hù)輸入類(lèi)型,容易成為攻擊手段,只配置通用規(guī)則庫(kù)則無(wú)法全面防護(hù),需要進(jìn)行特異性配置。 而自定義規(guī)則則傾向于特異性配置,對(duì)不同的Web 系統(tǒng)可以調(diào)整適用的配置,例如HTTP 請(qǐng)求走私,可以設(shè)置啟動(dòng)或不啟動(dòng)。 對(duì)Web 安全防護(hù)的有效性和可靠性有更高的提升。 具體的優(yōu)點(diǎn)可以總結(jié)為:(1)高效性,通過(guò)初期Web 頁(yè)面參數(shù)的篩選,減少固定類(lèi)型和枚舉類(lèi)型參數(shù)的匹配,大大節(jié)約了計(jì)算時(shí)間。 (2)適用范圍廣,對(duì)于特定的Web 應(yīng)用進(jìn)行特異性配置即可,可以打破固定模式。 (3)安全性更高,有差異的對(duì)待,可以更具備針對(duì)性,安全性等級(jí)加強(qiáng)。
配置Windows Server 2008 系統(tǒng),采用IIS7.0 服務(wù)器,配置Windows10 客戶(hù)機(jī),采用安恒明御防火墻,對(duì)應(yīng)用層進(jìn)行防護(hù)。 結(jié)合學(xué)校本身的網(wǎng)絡(luò)架構(gòu),將WAF配置成透明代理模式串接在核心網(wǎng)絡(luò)中。 在實(shí)際應(yīng)用中,將測(cè)試站點(diǎn)加入保護(hù)站點(diǎn),部分攻擊攔截如圖1 所示。 為增加系統(tǒng)防護(hù)功能,啟動(dòng)黑白名單設(shè)置,配置規(guī)則庫(kù),并對(duì)不同的Web 應(yīng)用啟動(dòng)特異性配置,如圖2 所示,經(jīng)過(guò)檢驗(yàn),可以有效防御惡意攻擊,網(wǎng)絡(luò)整體安全性得到了提升,對(duì)日常維護(hù)具備極大的保障,具有很高的應(yīng)用價(jià)值。
圖1 攻擊攔截
圖2 特異性配置
讓W(xué)AF 有效發(fā)揮作用,對(duì)其日常管理也尤為重要,需要做好的維護(hù)有:系統(tǒng)定期升級(jí),包括規(guī)則庫(kù)的升級(jí),提高系統(tǒng)整體防護(hù)效果;WAF 配置策略定期進(jìn)行備份,當(dāng)異常情況發(fā)生時(shí),可以使用還原配置文件;定期查看WAF 日志,對(duì)攻擊事件分類(lèi)處理,將惡意IP 加入黑名單;更新防護(hù)站點(diǎn)后,及時(shí)配置防護(hù)策略。
Web 應(yīng)用層的攻擊持續(xù)增高,網(wǎng)絡(luò)安全防護(hù)也日益重要,本文詳細(xì)分析了HTTP 協(xié)議,并介紹了幾種基于已知攻擊方式的不足,針對(duì)容易暴露的風(fēng)險(xiǎn),提出了一種特異性Web 應(yīng)用防火墻的配置。 通過(guò)實(shí)際應(yīng)用實(shí)踐表明,此配置方式不僅可以節(jié)約規(guī)則庫(kù)的計(jì)算時(shí)間,還可增強(qiáng)Web 應(yīng)用的安全性,有效提高了WAF 防護(hù)的效率,具有較高的實(shí)用價(jià)值。 另外,Web 應(yīng)用的防御不可松懈,大負(fù)荷的WAF 配置,對(duì)其本身的安全性和整個(gè)網(wǎng)絡(luò)架構(gòu)的安全性也是一大隱患,如何與其他網(wǎng)絡(luò)安全設(shè)備形成有效聯(lián)動(dòng)并形成壓力分擔(dān)是以后的研究方向。