張海燕,莫 勇(北京林業(yè)大學(xué) 信息學(xué)院,北京 100083)
基于決策樹分類的跨站腳本攻擊檢測方法*
張海燕,莫勇
(北京林業(yè)大學(xué)信息學(xué)院,北京100083)
跨站腳本攻擊是一種特殊的Web客戶端腳本注入攻擊手段,目前對于跨站腳本攻擊缺乏有效的防御措施。針對這一問題,提出一種采用決策樹分類算法檢測跨站腳本攻擊的方法,該方法將Web應(yīng)用程序中容易受到跨站腳本攻擊的元素和對象作為特征屬性,利用決策樹算法對特征屬性的取值進(jìn)行分類,以此對跨站腳本攻擊進(jìn)行檢測。實驗結(jié)果表明,該方法能夠有效解決跨站腳本攻擊的檢測問題。
Web安全;跨站腳本攻擊;決策樹算法;攻擊檢測
跨站腳本攻擊(Cross Site Scripting,XSS)是一種面向Web應(yīng)用程序客戶端,基于腳本代碼漏洞的計算機(jī)攻擊技術(shù)。跨站腳本攻擊是由于Web應(yīng)用程序?qū)τ脩舻妮斎脒^濾和處理不足造成的,攻擊者利用跨站腳本漏洞把惡意的腳本程序注入到網(wǎng)頁中,當(dāng)其他用戶瀏覽被注入的網(wǎng)頁時,就會執(zhí)行其中的惡意腳本,對受害用戶造成Cookie竊取、會話劫持、釣魚欺騙甚至發(fā)起拒絕服務(wù)攻擊等各種危害。
跨站腳本攻擊一般不會影響到Web服務(wù)器的安全。但是如果跨站腳本攻擊與其他攻擊手段同時作用時,則可能對Web服務(wù)器和受害者主機(jī)造成危害。例如,跨站腳本攻擊與SQL注入攻擊結(jié)合會破壞Web服務(wù)器數(shù)據(jù)庫安全;跨站腳本攻擊獲取受害人主機(jī)信息后,攻擊者進(jìn)一步進(jìn)行網(wǎng)絡(luò)入侵攻擊等。
DOM-Based型跨站腳本攻擊是基于DOM結(jié)構(gòu)的一類特殊的跨站腳本攻擊。在Web應(yīng)用程序中,腳本可以通過DOM來操縱網(wǎng)頁的內(nèi)容和屬性,從而實現(xiàn)Web應(yīng)用程序在運行時動態(tài)改變頁面的內(nèi)容和樣式。但是如果腳本代碼中包含惡意腳本時,就可能發(fā)生腳本代碼惡意操縱DOM對象而導(dǎo)致Web應(yīng)用程序發(fā)生跨站腳本攻擊。
由于DOM-Based跨站腳本攻擊的本質(zhì)和攻擊原理與傳統(tǒng)的跨站腳本攻擊不同,因此傳統(tǒng)的跨站腳本攻擊檢測和防御方法不適用于檢測DOM-Based跨站腳本攻擊,導(dǎo)致DOM-Based跨站腳本攻擊成為互聯(lián)網(wǎng)安全的嚴(yán)重威脅。
本文提出一種基于CART決策樹自動檢測DOM-Based跨站腳本攻擊的方法,并基于該方法構(gòu)建了以CART決策分類模塊、攻擊檢測知識庫模塊和攻擊檢測模塊為一體的攻擊檢測模型,該模型結(jié)構(gòu)如圖1所示。

圖1 基于CART決策樹的攻擊檢測模型
模型以標(biāo)準(zhǔn)DOM樹作為原型,構(gòu)建一棵CART決策樹。該決策樹的主要功能是在程序運行時檢測敏感位置的腳本代碼是否對程序造成DOM-Based跨站腳本攻擊。
2.1特征屬性選取
2.1.1Web地址特征屬性
用戶向Web服務(wù)器發(fā)出信息請求,一般通過統(tǒng)一資源定位地址進(jìn)行交互,即鏈接。用戶可以在鏈接中添加參數(shù),當(dāng)服務(wù)器得到用戶請求后,首先獲取所請求的資源,然后將參數(shù)傳給服務(wù)器進(jìn)行處理。攻擊者利用這種機(jī)制,構(gòu)造具有攻擊性的URL地址向服務(wù)器進(jìn)行提交,就可能發(fā)生跨站腳本攻擊。所以,攻擊檢測系統(tǒng)需要URL中的參數(shù)對進(jìn)行分析,獲取參數(shù)以及其取值作為攻擊檢測的特征屬性。
其次,Web應(yīng)用程序中,部分HTML元素具有可請求服務(wù)器資源的屬性,如<a href=URL>、<img src=URL>、<link src=URL>、<script src=URL>、<action src=URL>等。如果攻擊者構(gòu)造出具有惡意的URL并發(fā)送到Web服務(wù)器請求執(zhí)行,也可能發(fā)生跨站腳本攻擊。所以,攻擊檢測系統(tǒng)需要將此類屬性作為特征屬性。
2.1.2表單元素特征屬性
表單是用戶與服務(wù)器進(jìn)行交互的基本窗口。表單將用戶輸入的信息提交給服務(wù)器,由服務(wù)器對這些信息進(jìn)行處理。這樣的交互機(jī)制也給攻擊者帶來了可乘之機(jī)。攻擊者可以通過表單構(gòu)造具有惡意功能的腳本代碼并提交到服務(wù)器執(zhí)行,從而發(fā)生跨站腳本攻擊。本文將表單中用戶輸入的值作為特征屬性進(jìn)行檢測。
2.1.3DOM渲染特征屬性
腳本程序可以通過操縱DOM節(jié)點來實現(xiàn)對Web頁面的動態(tài)改變。如果攻擊者利用惡意腳本對DOM結(jié)構(gòu)進(jìn)行破壞,注入相應(yīng)的惡意代碼,則可能發(fā)生跨站腳本攻擊。在特征提取時,需要將待檢測的頁面中的腳本代碼和DOM對象及其取值進(jìn)行解析。
2.2決策樹分類模塊
模型中決策分類算法是基于二分遞歸分類的CART決策樹算法。算法將待測樣本集分為兩個子集,使生成的每個非葉子節(jié)點都有兩個分支,從而得到結(jié)構(gòu)簡潔的二叉樹[1]。CART決策算法選擇具有最小gini系數(shù)值的屬性作為測試屬性,gini值越小劃分的效果越好[2-3]。
設(shè)樣本集T中包含n個類,則:

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

根據(jù)式(2)得知,使得gini(T1,T2)值最小的分類就是最優(yōu)的分類。
本研究采用CART決策算法對特征屬性和其取值進(jìn)行決策分類。如一個特征屬性取值符合標(biāo)準(zhǔn)DOM樹的取值,則將該取值標(biāo)記為正常取值,劃分為左分支;否則標(biāo)記為惡意取值,劃分為右分支,最終形成一棵二叉樹[4-5]。圖2所示為利用CART二叉決策樹對特征屬性進(jìn)行分類的示意圖。

圖2 利用特征屬性進(jìn)行樣本分類示意圖
CART算法在分類時每個屬性都被詳細(xì)考慮,樣本中的錯誤數(shù)據(jù)也會被決策樹學(xué)習(xí),造成過擬合問題[6]。為解決決策樹的過擬合,需對決策樹進(jìn)行剪枝。
本研究采用基于代價復(fù)雜性的后剪枝方法[7]對生成的二叉決策樹進(jìn)行剪枝。該方法將決策樹上的每個非葉子節(jié)點作為修剪的候選對象,計算其表面誤差率增益值α:

其中,|NTt|是子樹中包含的葉子節(jié)點個數(shù);R(Tt)是子樹Tt如果不被剪枝的誤差代價,它等于子樹Tt上所有葉子節(jié)點的誤差代價之和;R(t)是節(jié)點t如果被剪枝的誤差代價,其計算方法如式(4)所示。

其中,r(t)是節(jié)點t的誤差率;p(t)是節(jié)點t上的樣本占所有樣本數(shù)的比例。
剪枝時,找到α值最小的非葉子節(jié)點,刪除其左右孩子即可完成剪枝。當(dāng)有多個非葉子節(jié)點的α值同時達(dá)到最小值時,取|NTt|最大的節(jié)點進(jìn)行剪枝。
2.3攻擊檢測模塊
在攻擊檢測階段,系統(tǒng)利用決策樹分類得到的知識庫對待測頁面中提取的DOM節(jié)點取值進(jìn)行分析檢測,判斷頁面上每一個DOM節(jié)點的屬性值是否存在攻擊或者潛在攻擊行為。如知識庫中不存在待測數(shù)據(jù),表明該數(shù)據(jù)需要通過決策樹進(jìn)行決策分類,并將決策的結(jié)果填充到知識庫中,使得知識庫隨著系統(tǒng)的不斷運行而得到補(bǔ)充。檢測流程如圖3所示。

圖3 基于決策樹算法的跨站腳本攻擊檢測流程
利用該檢測系統(tǒng)對一個已知漏洞的網(wǎng)站進(jìn)行檢測,并將檢測結(jié)果與使用Paros Proxy3.2.13(Paros Proxy3.2.13是Web應(yīng)用程序漏洞挖掘的代表性工具)檢測的結(jié)果進(jìn)行比較檢測結(jié)果如表1所示。

表1 對已知攻擊行為的檢測結(jié)果對比
利用Paros Proxy3.2.13和本研究提出的檢測方法對某高校BBS網(wǎng)站和會議室預(yù)約平臺進(jìn)行檢測,檢測結(jié)果如表2所示。

表2 對已知攻擊行為的檢測結(jié)果對比
從表1和表2的實驗結(jié)果可以看出,本研究所提出的檢測方法對未知攻擊行為也能有效檢測,但由于在本方法中,判定一個腳本行為是否為攻擊行為的依據(jù)不夠全面,導(dǎo)致本方法在檢測時會產(chǎn)生部分誤報和漏報的情況。
本文分析了基于DOM的跨站腳本攻擊的產(chǎn)生原理和現(xiàn)有檢測方法的不足,提出了一種新的采用CART決策樹來檢測DOM-Based跨站腳本攻擊的方法。利用決策樹在決策分類上的優(yōu)勢,在提高檢測方法的工作效率和檢測結(jié)果的準(zhǔn)確率方面起到重要的作用,對未知的攻擊行為也能夠進(jìn)行動態(tài)判定并及時響應(yīng),解決了基于DOM的跨站腳本攻擊的檢測難的問題。
鑒于DOM的跨站腳本攻擊的產(chǎn)生和其特殊性,判斷一個行為是否屬于跨站腳本攻擊行為仍然需要更進(jìn)一步地研究。選取最恰當(dāng)?shù)奶卣髦祦砻枋鲆粋€節(jié)點的屬性值或腳本代碼是否會產(chǎn)生攻擊,將是下一步的工作重點。
[1]羅可,林睦綱,郝東妹.數(shù)據(jù)挖掘中分類算法綜述[J].計算機(jī)工程,2005,31(1):3-5,11.
[2]栗麗華,吉根林.決策樹分類技術(shù)研究[J].計算機(jī)工程,2004,30(9):94-96,105.
[3]肖勇,陳意云.用遺傳算法構(gòu)造決策樹[J].計算機(jī)研究與發(fā)展,1998(1):49-52.
[4]曲開社,成文麗,王俊紅.ID3算法的一種改進(jìn)算法[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ù)據(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 theSociety for Academic Emergency Medicine,San Francisco,Califomia,2000.
A method of cross site scripting detection based on decision tree
Zhang Haiyan,Mo Yong
(School of Information Science and Technology,Beijing Forestry University,Beijing 100083,China)
Cross site scripting(XSS)is a special kind of Web client script injection attacks.Aiming at the lack of effective prevention measures against XSS,a method is proposed by adopting the decision tree to set the detection.It takes the attributes which are vulnerable to cross site scripting attack as feature attributes,and takes decision tree to detect XSS base on feature attribute values.Experimental results show that this method can effectively detect XSS attack.
Web security;XSS;decision tree;attack detection
TP393
A
1674-7720(2015)16-0055-03
張海燕,莫勇.基于決策樹分類的跨站腳本攻擊檢測方法[J].微型機(jī)與應(yīng)用,2015,34(16):55-57,61.
2015-03-27)
張海燕(1976-),女,博士,副教授,碩士生導(dǎo)師,主要研方向:嵌入式系統(tǒng)、模式識別。
國家自然科學(xué)基金項目(61300180);中央高校基本科研業(yè)務(wù)費專項資金資助項目(TD2014-01)
莫勇(1989-),通信作者,男,碩士研究生,主要研究方向:嵌入式系統(tǒng)、網(wǎng)絡(luò)信息安全。E-mail:moyong@bjfu.edu.cn。