《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于決策樹(shù)分類(lèi)的跨站腳本攻擊檢測(cè)方法
基于決策樹(shù)分類(lèi)的跨站腳本攻擊檢測(cè)方法
2015年微型機(jī)與應(yīng)用第16期
張海燕,莫 勇
(北京林業(yè)大學(xué) 信息學(xué)院,北京 100083)
摘要: 跨站腳本攻擊是一種特殊的Web客戶(hù)端腳本注入攻擊手段,目前對(duì)于跨站腳本攻擊缺乏有效的防御措施。針對(duì)這一問(wèn)題,提出一種采用決策樹(shù)分類(lèi)算法檢測(cè)跨站腳本攻擊的方法,該方法將Web應(yīng)用程序中容易受到跨站腳本攻擊的元素和對(duì)象作為特征屬性,利用決策樹(shù)算法對(duì)特征屬性的取值進(jìn)行分類(lèi),以此對(duì)跨站腳本攻擊進(jìn)行檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效解決跨站腳本攻擊的檢測(cè)問(wèn)題。
Abstract:
Key words :

  摘  要跨站腳本攻擊是一種特殊的Web客戶(hù)端腳本注入攻擊手段,目前對(duì)于跨站腳本攻擊缺乏有效的防御措施。針對(duì)這一問(wèn)題,提出一種采用決策樹(shù)分類(lèi)算法檢測(cè)跨站腳本攻擊的方法,該方法將Web應(yīng)用程序中容易受到跨站腳本攻擊的元素和對(duì)象作為特征屬性,利用決策樹(shù)算法對(duì)特征屬性的取值進(jìn)行分類(lèi),以此對(duì)跨站腳本攻擊進(jìn)行檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效解決跨站腳本攻擊的檢測(cè)問(wèn)題。

  關(guān)鍵詞Web安全;跨站腳本攻擊;決策樹(shù)算法;攻擊檢測(cè)

0 引言

  跨站腳本攻擊(Cross Site Scripting,XSS)是一種面向Web應(yīng)用程序客戶(hù)端,基于腳本代碼漏洞的計(jì)算機(jī)攻擊技術(shù)。跨站腳本攻擊是由于Web應(yīng)用程序?qū)τ脩?hù)的輸入過(guò)濾和處理不足造成的,攻擊者利用跨站腳本漏洞把惡意的腳本程序注入到網(wǎng)頁(yè)中,當(dāng)其他用戶(hù)瀏覽被注入的網(wǎng)頁(yè)時(shí),就會(huì)執(zhí)行其中的惡意腳本,對(duì)受害用戶(hù)造成Cookie竊取、會(huì)話(huà)劫持、釣魚(yú)欺騙甚至發(fā)起拒絕服務(wù)攻擊等各種危害。

  跨站腳本攻擊一般不會(huì)影響到Web服務(wù)器的安全。但是如果跨站腳本攻擊與其他攻擊手段同時(shí)作用時(shí),則可能對(duì)Web服務(wù)器和受害者主機(jī)造成危害。例如,跨站腳本攻擊與SQL注入攻擊結(jié)合會(huì)破壞Web服務(wù)器數(shù)據(jù)庫(kù)安全;跨站腳本攻擊獲取受害人主機(jī)信息后,攻擊者進(jìn)一步進(jìn)行網(wǎng)絡(luò)入侵攻擊等。

1 DOM-Based跨站腳本攻擊原理

  DOM-Based型跨站腳本攻擊是基于DOM結(jié)構(gòu)的一類(lèi)特殊的跨站腳本攻擊。在Web應(yīng)用程序中,腳本可以通過(guò)DOM來(lái)操縱網(wǎng)頁(yè)的內(nèi)容和屬性,從而實(shí)現(xiàn)Web應(yīng)用程序在運(yùn)行時(shí)動(dòng)態(tài)改變頁(yè)面的內(nèi)容和樣式。但是如果腳本代碼中包含惡意腳本時(shí),就可能發(fā)生腳本代碼惡意操縱DOM對(duì)象而導(dǎo)致Web應(yīng)用程序發(fā)生跨站腳本攻擊。

  由于DOM-Based跨站腳本攻擊的本質(zhì)和攻擊原理與傳統(tǒng)的跨站腳本攻擊不同,因此傳統(tǒng)的跨站腳本攻擊檢測(cè)和防御方法不適用于檢測(cè)DOM-Based跨站腳本攻擊,導(dǎo)致DOM-Based跨站腳本攻擊成為互聯(lián)網(wǎng)安全的嚴(yán)重威脅。

2 基于決策樹(shù)分類(lèi)的攻擊檢測(cè)方法

  本文提出一種基于CART決策樹(shù)自動(dòng)檢測(cè)DOM-Based跨站腳本攻擊的方法,并基于該方法構(gòu)建了以CART決策分類(lèi)模塊、攻擊檢測(cè)知識(shí)庫(kù)模塊和攻擊檢測(cè)模塊為一體的攻擊檢測(cè)模型,該模型結(jié)構(gòu)如圖1所示。

001.jpg

  模型以標(biāo)準(zhǔn)DOM樹(shù)作為原型,構(gòu)建一棵CART決策樹(shù)。該決策樹(shù)的主要功能是在程序運(yùn)行時(shí)檢測(cè)敏感位置的腳本代碼是否對(duì)程序造成DOM-Based跨站腳本攻擊。

2.1 特征屬性選取

  2.1.1 Web地址特征屬性

  用戶(hù)向Web服務(wù)器發(fā)出信息請(qǐng)求,一般通過(guò)統(tǒng)一資源定位地址進(jìn)行交互,即鏈接。用戶(hù)可以在鏈接中添加參數(shù),當(dāng)服務(wù)器得到用戶(hù)請(qǐng)求后,首先獲取所請(qǐng)求的資源,然后將參數(shù)傳給服務(wù)器進(jìn)行處理。攻擊者利用這種機(jī)制,構(gòu)造具有攻擊性的URL地址向服務(wù)器進(jìn)行提交,就可能發(fā)生跨站腳本攻擊。所以,攻擊檢測(cè)系統(tǒng)需要URL中的參數(shù)對(duì)進(jìn)行分析,獲取參數(shù)以及其取值作為攻擊檢測(cè)的特征屬性。

  其次,Web應(yīng)用程序中,部分HTML元素具有可請(qǐng)求服務(wù)器資源的屬性,如<a href=URL>、<img src=URL>、<link src=URL>、<script src=URL>、<action src=URL>等。如果攻擊者構(gòu)造出具有惡意的URL并發(fā)送到Web服務(wù)器請(qǐng)求執(zhí)行,也可能發(fā)生跨站腳本攻擊。所以,攻擊檢測(cè)系統(tǒng)需要將此類(lèi)屬性作為特征屬性。

  2.1.2 表單元素特征屬性

  表單是用戶(hù)與服務(wù)器進(jìn)行交互的基本窗口。表單將用戶(hù)輸入的信息提交給服務(wù)器,由服務(wù)器對(duì)這些信息進(jìn)行處理。這樣的交互機(jī)制也給攻擊者帶來(lái)了可乘之機(jī)。攻擊者可以通過(guò)表單構(gòu)造具有惡意功能的腳本代碼并提交到服務(wù)器執(zhí)行,從而發(fā)生跨站腳本攻擊。本文將表單中用戶(hù)輸入的值作為特征屬性進(jìn)行檢測(cè)。

  2.1.3 DOM渲染特征屬性

  腳本程序可以通過(guò)操縱DOM節(jié)點(diǎn)來(lái)實(shí)現(xiàn)對(duì)Web頁(yè)面的動(dòng)態(tài)改變。如果攻擊者利用惡意腳本對(duì)DOM結(jié)構(gòu)進(jìn)行破壞,注入相應(yīng)的惡意代碼,則可能發(fā)生跨站腳本攻擊。在特征提取時(shí),需要將待檢測(cè)的頁(yè)面中的腳本代碼和DOM對(duì)象及其取值進(jìn)行解析。

  2.2 決策樹(shù)分類(lèi)模塊

  模型中決策分類(lèi)算法是基于二分遞歸分類(lèi)的CART決策樹(shù)算法。算法將待測(cè)樣本集分為兩個(gè)子集,使生成的每個(gè)非葉子節(jié)點(diǎn)都有兩個(gè)分支,從而得到結(jié)構(gòu)簡(jiǎn)潔的二叉樹(shù)[1]。CART決策算法選擇具有最小gini系數(shù)值的屬性作為測(cè)試屬性,gini值越小劃分的效果越好[2-3]。

  設(shè)樣本集T中包含n個(gè)類(lèi),則:

  1.png

  其中,pj是T中包含類(lèi)j的概率。若將T劃分為兩個(gè)子集T1和T2,則:

  2.png

  根據(jù)式(2)得知,使得gini(T1,T2)值最小的分類(lèi)就是最優(yōu)的分類(lèi)。

  本研究采用CART決策算法對(duì)特征屬性和其取值進(jìn)行決策分類(lèi)。如一個(gè)特征屬性取值符合標(biāo)準(zhǔn)DOM樹(shù)的取值,則將該取值標(biāo)記為正常取值,劃分為左分支;否則標(biāo)記為惡意取值,劃分為右分支,最終形成一棵二叉樹(shù)[4-5]。圖2所示為利用CART二叉決策樹(shù)對(duì)特征屬性進(jìn)行分類(lèi)的示意圖。

002.jpg

  CART算法在分類(lèi)時(shí)每個(gè)屬性都被詳細(xì)考慮,樣本中的錯(cuò)誤數(shù)據(jù)也會(huì)被決策樹(shù)學(xué)習(xí),造成過(guò)擬合問(wèn)題[6]。為解決決策樹(shù)的過(guò)擬合,需對(duì)決策樹(shù)進(jìn)行剪枝。

  本研究采用基于代價(jià)復(fù)雜性的后剪枝方法[7]對(duì)生成的二叉決策樹(shù)進(jìn)行剪枝。該方法將決策樹(shù)上的每個(gè)非葉子節(jié)點(diǎn)作為修剪的候選對(duì)象,計(jì)算其表面誤差率增益值α:

  ZZP~W]$6FHIS__7Q2FGZUEP.png

  其中,)XKC$KKX)Z3U[NOC]]W79N7.png是子樹(shù)中包含的葉子節(jié)點(diǎn)個(gè)數(shù);R(Tt)是子樹(shù)Tt如果不被剪枝的誤差代價(jià),它等于子樹(shù)Tt上所有葉子節(jié)點(diǎn)的誤差代價(jià)之和;R(t)是節(jié)點(diǎn)t如果被剪枝的誤差代價(jià),其計(jì)算方法如式(4)所示。

  R(t)=r(t)*p(t)(4)

  其中,r(t)是節(jié)點(diǎn)t的誤差率;p(t)是節(jié)點(diǎn)t上的樣本占所有樣本數(shù)的比例。

  剪枝時(shí),找到α值最小的非葉子節(jié)點(diǎn),刪除其左右孩子即可完成剪枝。當(dāng)有多個(gè)非葉子節(jié)點(diǎn)的α值同時(shí)達(dá)到最小值時(shí),取)XKC$KKX)Z3U[NOC]]W79N7.png最大的節(jié)點(diǎn)進(jìn)行剪枝。

  2.3 攻擊檢測(cè)模塊

  在攻擊檢測(cè)階段,系統(tǒng)利用決策樹(shù)分類(lèi)得到的知識(shí)庫(kù)對(duì)待測(cè)頁(yè)面中提取的DOM節(jié)點(diǎn)取值進(jìn)行分析檢測(cè),判斷頁(yè)面上每一個(gè)DOM節(jié)點(diǎn)的屬性值是否存在攻擊或者潛在攻擊行為。如知識(shí)庫(kù)中不存在待測(cè)數(shù)據(jù),表明該數(shù)據(jù)需要通過(guò)決策樹(shù)進(jìn)行決策分類(lèi),并將決策的結(jié)果填充到知識(shí)庫(kù)中,使得知識(shí)庫(kù)隨著系統(tǒng)的不斷運(yùn)行而得到補(bǔ)充。檢測(cè)流程如圖3所示。

003.jpg

  3 實(shí)驗(yàn)及結(jié)果

  利用該檢測(cè)系統(tǒng)對(duì)一個(gè)已知漏洞的網(wǎng)站進(jìn)行檢測(cè),并將檢測(cè)結(jié)果與使用Paros Proxy3.2.13(Paros Proxy3.2.13是Web應(yīng)用程序漏洞挖掘的代表性工具)檢測(cè)的結(jié)果進(jìn)行比較檢測(cè)結(jié)果如表1所示。

  利用Paros Proxy3.2.13和本研究提出的檢測(cè)方法對(duì)某高校BBS網(wǎng)站和會(huì)議室預(yù)約平臺(tái)進(jìn)行檢測(cè),檢測(cè)結(jié)果如表2所示。

004.jpg

  從表1和表2的實(shí)驗(yàn)結(jié)果可以看出,本研究所提出的檢測(cè)方法對(duì)未知攻擊行為也能有效檢測(cè),但由于在本方法中,判定一個(gè)腳本行為是否為攻擊行為的依據(jù)不夠全面,導(dǎo)致本方法在檢測(cè)時(shí)會(huì)產(chǎn)生部分誤報(bào)和漏報(bào)的情況。

4 結(jié)論

  本文分析了基于DOM的跨站腳本攻擊的產(chǎn)生原理和現(xiàn)有檢測(cè)方法的不足,提出了一種新的采用CART決策樹(shù)來(lái)檢測(cè)DOM-Based跨站腳本攻擊的方法。利用決策樹(shù)在決策分類(lèi)上的優(yōu)勢(shì),在提高檢測(cè)方法的工作效率和檢測(cè)結(jié)果的準(zhǔn)確率方面起到重要的作用,對(duì)未知的攻擊行為也能夠進(jìn)行動(dòng)態(tài)判定并及時(shí)響應(yīng),解決了基于DOM的跨站腳本攻擊的檢測(cè)難的問(wèn)題。

  鑒于DOM的跨站腳本攻擊的產(chǎn)生和其特殊性,判斷一個(gè)行為是否屬于跨站腳本攻擊行為仍然需要更進(jìn)一步地研究。選取最恰當(dāng)?shù)奶卣髦祦?lái)描述一個(gè)節(jié)點(diǎn)的屬性值或腳本代碼是否會(huì)產(chǎn)生攻擊,將是下一步的工作重點(diǎn)。

參考文獻(xiàn)

  [1] 羅可,林睦綱,郝東妹.數(shù)據(jù)挖掘中分類(lèi)算法綜述[J].計(jì)算機(jī)工程,2005,31(1):3-5,11.

  [2] 栗麗華,吉根林.決策樹(shù)分類(lèi)技術(shù)研究[J].計(jì)算機(jī)工程,2004,30(9):94-96,105.

  [3] 肖勇,陳意云.用遺傳算法構(gòu)造決策樹(shù)[J].計(jì)算機(jī)研究與發(fā)展,1998(1):49-52.

  [4] 曲開(kāi)社,成文麗,王俊紅.ID3算法的一種改進(jìn)算法[J].計(jì)算機(jī)工程與應(yīng)用,2003(25):104-107.

  [5] NOBEL A. Analysis of a complexity based Pruning scheme for classification trees[C]. IEEE Transactions on Information Theory, 2002,48(s):2362-2368.

  [6] 王威.基于決策樹(shù)的數(shù)據(jù)挖掘算法優(yōu)化研究[D].重慶:西南交通大學(xué),2005.

  [7] LEWIS R J. An introduction to classification and regression tree(CART) analysis[C]. The 2000 Annual Meeting of the Society for Academic Emergency Medicine, San Francisco, Califomia, 2000.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。