夏文英,翟偉芳,卞雪梅
(1. 河北科技學(xué)院,河北 保定 071000;2. 保定理工學(xué)院,河北 保定 071000;3. 河北大學(xué),河北 保定 071000)
跨站腳本攻擊會出現(xiàn)在目標(biāo)網(wǎng)站的瀏覽界面上,在用戶瀏覽器瀏覽文檔時(shí),會依靠腳本指令對用戶瀏覽器進(jìn)行控制,以此達(dá)到攻擊某一程序的目的。通常來說,依靠跨站腳本的攻擊手段與模式具有多種形式,跨站腳本攻擊共存在三種較為典型的攻擊種類即:反射型跨站腳本攻擊、DOM型跨站腳本攻擊以及儲存型跨站腳本攻擊。
反射型跨站腳本攻擊的輸入點(diǎn)大多會出現(xiàn)在網(wǎng)頁的URL里,主要的攻擊模式就是依靠修改URL地址參數(shù),將攻擊腳本輸送到服務(wù)端內(nèi)進(jìn)行攻擊。由于服務(wù)端沒有對跨站腳本攻擊進(jìn)行比較完整的過濾,就會直接傳回客戶端內(nèi),在瀏覽器對瀏覽的會話或檔案內(nèi)容作出響應(yīng)之后,就會激活這段跨站腳本攻擊數(shù)據(jù),同時(shí)使其在瀏覽器內(nèi)運(yùn)行。反射型跨站腳本攻擊具有攻擊及時(shí)與操作方便等特性,因此大多數(shù)跨站腳本的攻擊案例,都是反射型跨站腳本攻擊。
儲存型跨站腳本攻擊與反射型跨站腳本攻擊的攻擊模式,存在較為顯著的差異,即攻擊者會精心構(gòu)建跨站腳本,隨后直接儲存在服務(wù)端內(nèi),攻擊者想要再次申請?jiān)擁撁鏁r(shí),就不需要再上傳跨站腳本。反射型跨站腳本攻擊的輸入點(diǎn)大多會在URL中,而儲存型跨站腳本攻擊的輸入點(diǎn)會出現(xiàn)在所有可能產(chǎn)生交互性行為的軟件內(nèi),比如網(wǎng)站的個(gè)人信息、留言板或評論區(qū)內(nèi)。跨站腳本攻擊被上傳到服務(wù)端,在其他用戶或管理人員在瀏覽信息的同時(shí),瀏覽器會從服務(wù)端中直接讀取跨站腳本,并在通信軟件中運(yùn)行。
而DOM型跨站腳本攻擊與上述兩種腳本攻擊不同,DOM型跨站腳本即從JavaScript內(nèi)傳輸數(shù)據(jù)至HTML頁面中。所以DOM型跨站腳本攻擊可能是反射型腳本攻擊,也可能是儲存型腳本攻擊,這就導(dǎo)致對DOM型跨站腳本攻擊的防御困難最大。
針對上述問題,本文提出一種DOM型跨站腳本網(wǎng)絡(luò)攻擊防御有效路徑模擬,通過可信度算法對DOM跨站腳本攻擊進(jìn)行計(jì)算,得到即時(shí)攻擊特性與數(shù)量,隨后根據(jù)結(jié)果構(gòu)建針對該類攻擊的防御有效路徑模擬平臺,依靠平臺對多種不同的防御方法進(jìn)行模擬,最終得到能夠有效防御該類攻擊的防御方法。
DOM型跨站腳本攻擊與反射型、儲存型腳本攻擊不同,DOM跨站腳本攻擊的輸入點(diǎn)[1],其取決于輸出的位置,其輸出點(diǎn)大多在DOM中,DOM跨站腳本攻擊即從Java Script里輸送數(shù)據(jù)到HTML頁面內(nèi)。因此DOM跨站腳本攻擊存在兩種可能,其有可能是反射型腳本攻擊,也有可能是儲存型腳本攻擊。DOM型跨站腳本攻擊在服務(wù)端上傳代碼之后傳回頁面內(nèi),可能還會通過客戶端腳本處理之后進(jìn)行輸出,因此只在服務(wù)端放置防御算法,不能完整地過濾DOM跨站腳本攻擊。
模塊運(yùn)行的性能如下所示:
1)計(jì)算出DOM跨站腳本攻擊時(shí)服務(wù)器[2]請求速率可信度Cr;
2)運(yùn)算出服務(wù)請求的負(fù)載可信度Cw;
3)運(yùn)算出日志的可信度Cs;
4)向可信度調(diào)度模塊供給所需的日志可信度Cs。
2.1.1Cr值的計(jì)算
在沒有攻擊的條件下,統(tǒng)計(jì)大量正常用戶日志或會話向服務(wù)器傳輸服務(wù)請求的時(shí)間間隔分布[3],以此來確定會話的請求速率可信度Cr。合法用戶會話在開始時(shí)可能與統(tǒng)計(jì)分布存在誤差,那么其在開始會話時(shí),有可能被分配成可信度較低的狀態(tài),因?yàn)榉植家?guī)律的穩(wěn)定性,其可信度會慢慢恢復(fù)到較高的狀態(tài)。Cr的運(yùn)算如下所示:
步驟1:統(tǒng)計(jì)當(dāng)前所有會話所存在的請求總量;
步驟2:把服務(wù)請求數(shù)量沒超過或等于n的會話統(tǒng)一處理成一類,這樣就能夠獲得若干種會話類別;
步驟3:在所有會話類別內(nèi),統(tǒng)計(jì)出所有傳輸請求的時(shí)間間隔,同時(shí)統(tǒng)計(jì)所有時(shí)間間隔內(nèi)的請求總量,擬定出其在本類會話內(nèi)請求總量所占據(jù)的百分比p。
在DOM跨站腳本攻擊出現(xiàn)的時(shí)候,可信度運(yùn)算模塊就會運(yùn)算出當(dāng)前會話的重負(fù)載比例n,同時(shí)從步驟3的分布內(nèi)搜索出這類會話所占據(jù)的百分比p,p代表服務(wù)請求的負(fù)載可信度Cr。
2.1.2Cw值的計(jì)算
步驟1:首先進(jìn)行請求分類[4],分類的依據(jù)即應(yīng)用層的URL可用信息。把服務(wù)請求劃分成輕負(fù)載請求與重負(fù)載請求。
步驟2:統(tǒng)計(jì)所有會話內(nèi)重負(fù)載所占據(jù)的百分比q;
步驟3:統(tǒng)計(jì)出q的分布。擬定重負(fù)載百分比生成q的每一個(gè)會話在所有會話總量內(nèi)所占據(jù)的百分比擬定成b。
在出現(xiàn)攻擊時(shí),可信度計(jì)算模塊就會運(yùn)算出當(dāng)前會話的重負(fù)載比例q,同時(shí)從步驟3的分布內(nèi)搜索出這類會話占據(jù)的百分比b,σ代表服務(wù)請求的負(fù)載可信度Cw。
2.1.3Cs值的計(jì)算
DOM跨站腳本攻擊的目標(biāo)即耗盡服務(wù)器資源[5],使服務(wù)器不能向用戶供給正常的服務(wù)。這種攻擊方式即直接通過存在高比例重負(fù)載服務(wù)請求的會話向服務(wù)器發(fā)動(dòng)攻擊,這就會加速服務(wù)器資源的消耗。有研究表明,在輕負(fù)載時(shí)用戶系統(tǒng)的吞吐量與負(fù)載是正比,而在超載時(shí),網(wǎng)絡(luò)數(shù)據(jù)的吞吐量[6]會出現(xiàn)快速下滑,這就會導(dǎo)致服務(wù)器的服務(wù)性能嚴(yán)重下降。因?yàn)橹刎?fù)載服務(wù)請求對服務(wù)器產(chǎn)生的破壞比泛洪攻擊所產(chǎn)生的破壞更大,因此分給Cw較大權(quán)重,使可信度檢測模塊在檢測時(shí),不會被攻擊手段干擾。
Cs=αCr+βCw(0<α<1)
(1)
本文的α取0.8,β取1。α與β能夠憑借當(dāng)時(shí)狀況擬定,以達(dá)到最佳的檢測效果。
DOM跨站腳本攻擊檢測,主要依靠可信度調(diào)度模塊所使用的調(diào)度策略對惡意會話訪問速率進(jìn)行監(jiān)控[7],使惡意用戶的會話在進(jìn)行訪問時(shí),能夠及時(shí)地獲取其訪問速率,而合法用戶的會話速率不會受到干擾。
2.2.1 調(diào)度策略
假設(shè)遵照優(yōu)先服務(wù)高可信度會話的方式進(jìn)行,雖然能夠檢測出攻擊者的攻擊,但是一些可信度較低的會話也可能會被檢測評定成惡意攻擊,導(dǎo)致這些正常用戶的訪問速率被防御手段限制。為了避免這種狀況的產(chǎn)生,本文使用了以下方法:擬定最高可信度會話的訪問速率擬定成Rh,定義分配給目前會話的訪問速率擬定成Rc,最高可信度會話的可信度擬定成Ch,目前會話的可信度擬定成Cc。

(2)
這樣既能夠確保高可信度會話的訪問速率,還能維護(hù)可信度較低的合法會話。
2.2.2 調(diào)度模塊實(shí)現(xiàn)


圖1 服務(wù)器體系架構(gòu)
基于可信度調(diào)度模塊對會話速率的檢測時(shí)動(dòng)態(tài)的,其會每隔一段時(shí)間更新會話可信度Cs,然后依靠上述方法對會話的速率進(jìn)行動(dòng)態(tài)監(jiān)控。由于DOM跨站腳本攻擊的惡意會話[8]負(fù)載度與請求速率不符合正常用戶的分布規(guī)律,故經(jīng)過一段時(shí)間,其不合理性就會格外明顯,通過每個(gè)不合理性所處的位置,確定DOM跨站腳本攻擊的路徑與大致過程。
基于上文的DOM跨站腳本可信度調(diào)度結(jié)果,構(gòu)建防御有效路徑模擬平臺。本文通過虛擬密網(wǎng)技術(shù),組建DOM型跨站腳本攻擊防御有效路徑模擬平臺,網(wǎng)絡(luò)安全人員隨機(jī)挑選攻擊對象即可獲得相應(yīng)的有效防御路徑模擬結(jié)果,在模擬真實(shí)環(huán)境的情況下,同時(shí)明確DOM跨站腳本的防御過程和防御特性,以此掌控最優(yōu)網(wǎng)絡(luò)信息安全防御手段[9-11]。
依靠現(xiàn)存的網(wǎng)絡(luò)安全攻防模擬裝置,本文構(gòu)建的模擬平臺架構(gòu)如圖2所示。

圖2 模擬平臺結(jié)構(gòu)圖
通過設(shè)計(jì)的目標(biāo),為了模擬平臺能夠達(dá)到真實(shí)的攻擊防御環(huán)境,又不干擾用戶的正常操作,將平臺放置在一個(gè)較為真實(shí)的局域網(wǎng)內(nèi)。同時(shí)除了管理計(jì)算機(jī)與日志外,剩余的軟件裝置大多都放置在虛擬機(jī)中,安裝模擬平臺的宿主計(jì)算機(jī)需要的配置要求較高,CPU需要雙核或四核,內(nèi)存需要達(dá)到16G以上,這樣能夠更為真實(shí)地模擬攻防的過程與具體細(xì)節(jié)。挑選局域網(wǎng)內(nèi)的一部分計(jì)算機(jī),并將其設(shè)定為內(nèi)部服務(wù)器[12],通過該服務(wù)器對網(wǎng)絡(luò)角色進(jìn)行模擬,當(dāng)然,也能夠通過一臺計(jì)算機(jī),憑借計(jì)算來模擬多臺服務(wù)器,局域網(wǎng)中的剩余計(jì)算器作為日常工作的服務(wù)器PC,組成業(yè)務(wù)網(wǎng)絡(luò)。
在模擬平臺的網(wǎng)絡(luò)里,具有三種網(wǎng)絡(luò)接口,業(yè)務(wù)的外部接口擬定成Eth0,模擬平臺的內(nèi)部接口為Eth1,這兩種接口的運(yùn)行模式都為網(wǎng)橋模式,并且其不具有IP地址,數(shù)據(jù)包在上傳的過程中,不會對TTL造成任何影響,同時(shí)也不會向外傳輸自身的Mac地址,所以該網(wǎng)關(guān)相較于入侵者來說是不可見的,入侵者不會識別出其攻擊的網(wǎng)絡(luò)是一種模擬平臺,遠(yuǎn)程管理器擬定成Eth2,這個(gè)管理器中需要放置IP地址,其也代表一種秘密通道,能夠?qū)⒊鋈肽M平臺的數(shù)據(jù)包和日志輸送到另一個(gè)遠(yuǎn)程管理主機(jī)里。
使用POF、Sebek等多種工具融合的方式來捕獲攻防數(shù)據(jù),對防御方法進(jìn)行多層次捕獲,捕獲到的防御數(shù)據(jù)會被端口輸送到不易被破壞的單獨(dú)安全系統(tǒng)匯總,為進(jìn)一步分析攻擊行為并模擬相應(yīng)的有效防御手段供給豐富的先驗(yàn)依據(jù)。
對捕獲的數(shù)據(jù)分析有利于分析入侵者的攻擊模式、特征與意圖等。依靠提取、數(shù)據(jù)預(yù)處理以及跟蹤等方式,對攻防數(shù)據(jù)進(jìn)行實(shí)時(shí)捕獲,得到新攻防特性,有利于對攻擊的預(yù)測,同時(shí)在攻擊出現(xiàn)之前上傳響應(yīng),構(gòu)建攻擊預(yù)警與威脅預(yù)測機(jī)制,并通過服務(wù)端、用戶端過濾明確相應(yīng)攻防內(nèi)聯(lián)函數(shù),模擬靜態(tài)及動(dòng)態(tài)防御路徑。
本文通過擬定的模擬平臺對DOM跨站腳本攻擊防御的有效路徑進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)平臺的架構(gòu)如圖3所示。

圖3 實(shí)驗(yàn)平臺架構(gòu)
圖左側(cè)部分為DOM跨站腳本攻擊所在的主機(jī),攻擊者位于多個(gè)網(wǎng)段中,能夠混合產(chǎn)生tcp、dip與應(yīng)用層http等多種攻擊形式。模擬正常訪問的http流量的主要也存在多種網(wǎng)段;圖右邊部分即網(wǎng)絡(luò)服務(wù)器和路由。圖下方主機(jī)即被攻擊主機(jī),該主機(jī)是一臺能夠進(jìn)行http服務(wù)的主機(jī)。
利用本文構(gòu)建的模擬平臺,對一種較為經(jīng)典的DTM防御模型進(jìn)行DOM跨站腳本攻擊防御模擬,該防御模型的特性即對系統(tǒng)的異常行為存在較高的檢測成功率。以下為本文方法模擬出的防御全過程與有效路徑。
在DOM跨站腳本攻擊的過程中,需要檢測一定次數(shù)來達(dá)到服務(wù)器的申請。所以,需要統(tǒng)計(jì)服務(wù)器內(nèi)申請次數(shù)的統(tǒng)計(jì)值,憑借該統(tǒng)計(jì)值運(yùn)算服務(wù)器內(nèi)正常操作的特征值。
本文所提防御模擬只會檢測服務(wù)器管理員配置的網(wǎng)絡(luò)地址,假如達(dá)到數(shù)據(jù)包的網(wǎng)絡(luò)地址在配置的網(wǎng)絡(luò)中,計(jì)算到達(dá)上限,就檢測所有數(shù)據(jù)包分類,對數(shù)據(jù)包依照不同的類別運(yùn)算其達(dá)到的數(shù)量,從而計(jì)算出異常值。該分類會憑借目的端口與IP得出,對達(dá)到服務(wù)器的所有數(shù)據(jù)包評測是否為跨站腳本,對滿足條件的數(shù)據(jù)包再依靠端口分類、IP地址計(jì)數(shù),訪問該IP地址的申請中跨站腳本數(shù)據(jù)包的數(shù)量占據(jù)比重計(jì)算公式為
p(x)=N/M
(3)
式中,N表示到目的的包總量,M表示端口的包總量。
隨后憑借比例運(yùn)算時(shí)間的操作特征值是
AnomalyScore=lg(1/p(x))
(4)
在該防御模型防御的網(wǎng)絡(luò)中,在一般狀態(tài)下,憑借統(tǒng)計(jì),p(x)的平均值大約在0.157,因此信息熵的閾值擬定成0.842。若特征值沒有超過這個(gè)閾值,就代表該IP地址正在訪問申請中,反之,就證明服務(wù)器內(nèi)存在跨站腳本攻擊行為。由于系統(tǒng)的實(shí)時(shí)情況一直在出現(xiàn)更改,所以操作的特征也在動(dòng)態(tài)地變化。
在檢測到DOM跨站腳本攻擊之后,通過主干網(wǎng)ISP對攻擊源跟蹤,使用防御模型內(nèi)的追蹤算法能夠很快搜索出邊界路由器的IP入口,隨后憑借三元組格式來對攻擊數(shù)據(jù)包進(jìn)行防御,繼而有效防御DOM跨站腳本攻擊。
圖3表明,通過本文模擬得出的防御路徑能夠有效降低拒包率,保證極大多數(shù)真實(shí)會話得以正常運(yùn)行,并且防御曲線70秒趨于平穩(wěn),實(shí)現(xiàn)了DOM跨站腳本攻擊防御。
為證明所提方法的應(yīng)用效果,設(shè)計(jì)對比實(shí)驗(yàn),以文獻(xiàn)[3]提出的基于虛擬機(jī)遷移的DoS攻擊防御方法、文獻(xiàn)[4]提出的基于攻防信號博弈的APT攻擊防御方法為實(shí)驗(yàn)對照方法,與所提方法進(jìn)行對比,具體實(shí)驗(yàn)結(jié)果如圖5所示。

圖5 不同防御方法的測試結(jié)果
分析圖4得知,相比其它兩種方法,采用本文方法構(gòu)建防御有效模擬平臺,能夠?qū)Σ煌姆烙椒ㄟM(jìn)行精確的模擬,同時(shí)平臺還能夠模擬出防御方法的特性與薄弱點(diǎn)。

圖4 防御模型下拒包率
為提升網(wǎng)絡(luò)安全性,匹配不同攻擊手段對應(yīng)的防御方法,提出一種DOM型跨站腳本網(wǎng)絡(luò)攻擊防御有效路徑模擬平臺,通過可信度算法計(jì)算腳本攻擊,獲取其攻擊特點(diǎn),憑借結(jié)果構(gòu)建防御有效模擬平臺,完成對防御路徑的模擬。由于本文方法只針對DOM型跨站腳本攻擊,計(jì)算過程較為繁瑣耗時(shí)長,所以在接下來研究中嘗試添加神經(jīng)網(wǎng)絡(luò)迭代,降低計(jì)算耗時(shí)。