張海燕,莫 勇(北京林業(yè)大學(xué) 信息學(xué)院,北京 100083)
基于決策樹分類的跨站腳本攻擊檢測(cè)方法*
張海燕,莫勇
(北京林業(yè)大學(xué)信息學(xué)院,北京100083)
跨站腳本攻擊是一種特殊的Web客戶端腳本注入攻擊手段,目前對(duì)于跨站腳本攻擊缺乏有效的防御措施。針對(duì)這一問題,提出一種采用決策樹分類算法檢測(cè)跨站腳本攻擊的方法,該方法將Web應(yīng)用程序中容易受到跨站腳本攻擊的元素和對(duì)象作為特征屬性,利用決策樹算法對(duì)特征屬性的取值進(jìn)行分類,以此對(duì)跨站腳本攻擊進(jìn)行檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效解決跨站腳本攻擊的檢測(cè)問題。
Web安全;跨站腳本攻擊;決策樹算法;攻擊檢測(cè)
跨站腳本攻擊(Cross Site Scripting,XSS)是一種面向Web應(yīng)用程序客戶端,基于腳本代碼漏洞的計(jì)算機(jī)攻擊技術(shù)??缯灸_本攻擊是由于Web應(yīng)用程序?qū)τ脩舻妮斎脒^濾和處理不足造成的,攻擊者利用跨站腳本漏洞把惡意的腳本程序注入到網(wǎng)頁中,當(dāng)其他用戶瀏覽被注入的網(wǎng)頁時(shí),就會(huì)執(zhí)行其中的惡意腳本,對(duì)受害用戶造成Cookie竊取、會(huì)話劫持、釣魚欺騙甚至發(fā)起拒絕服務(wù)攻擊等各種危害。
跨站腳本攻擊一般不會(huì)影響到Web服務(wù)器的安全。但是如果跨站腳本攻擊與其他攻擊手段同時(shí)作用時(shí),則可能對(duì)Web服務(wù)器和受害者主機(jī)造成危害。例如,跨站腳本攻擊與SQL注入攻擊結(jié)合會(huì)破壞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)容和屬性,從而實(shí)現(xiàn)Web應(yīng)用程序在運(yùn)行時(shí)動(dòng)態(tài)改變頁面的內(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)重威脅。
本文提出一種基于CART決策樹自動(dòng)檢測(cè)DOM-Based跨站腳本攻擊的方法,并基于該方法構(gòu)建了以CART決策分類模塊、攻擊檢測(cè)知識(shí)庫模塊和攻擊檢測(cè)模塊為一體的攻擊檢測(cè)模型,該模型結(jié)構(gòu)如圖1所示。
圖1 基于CART決策樹的攻擊檢測(cè)模型
模型以標(biāo)準(zhǔn)DOM樹作為原型,構(gòu)建一棵CART決策樹。該決策樹的主要功能是在程序運(yùn)行時(shí)檢測(cè)敏感位置的腳本代碼是否對(duì)程序造成DOM-Based跨站腳本攻擊。
2.1特征屬性選取
2.1.1Web地址特征屬性
用戶向Web服務(wù)器發(fā)出信息請(qǐng)求,一般通過統(tǒng)一資源定位地址進(jìn)行交互,即鏈接。用戶可以在鏈接中添加參數(shù),當(dāng)服務(wù)器得到用戶請(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)需要將此類屬性作為特征屬性。
2.1.2表單元素特征屬性
表單是用戶與服務(wù)器進(jìn)行交互的基本窗口。表單將用戶輸入的信息提交給服務(wù)器,由服務(wù)器對(duì)這些信息進(jìn)行處理。這樣的交互機(jī)制也給攻擊者帶來了可乘之機(jī)。攻擊者可以通過表單構(gòu)造具有惡意功能的腳本代碼并提交到服務(wù)器執(zhí)行,從而發(fā)生跨站腳本攻擊。本文將表單中用戶輸入的值作為特征屬性進(jìn)行檢測(cè)。
2.1.3DOM渲染特征屬性
腳本程序可以通過操縱DOM節(jié)點(diǎn)來實(shí)現(xiàn)對(duì)Web頁面的動(dòng)態(tài)改變。如果攻擊者利用惡意腳本對(duì)DOM結(jié)構(gòu)進(jìn)行破壞,注入相應(yīng)的惡意代碼,則可能發(fā)生跨站腳本攻擊。在特征提取時(shí),需要將待檢測(cè)的頁面中的腳本代碼和DOM對(duì)象及其取值進(jìn)行解析。
2.2決策樹分類模塊
模型中決策分類算法是基于二分遞歸分類的CART決策樹算法。算法將待測(cè)樣本集分為兩個(gè)子集,使生成的每個(gè)非葉子節(jié)點(diǎn)都有兩個(gè)分支,從而得到結(jié)構(gòu)簡(jiǎn)潔的二叉樹[1]。CART決策算法選擇具有最小gini系數(shù)值的屬性作為測(cè)試屬性,gini值越小劃分的效果越好[2-3]。
設(shè)樣本集T中包含n個(gè)類,則:
其中,pj是T中包含類j的概率。若將T劃分為兩個(gè)子集T1和T2,則:
根據(jù)式(2)得知,使得gini(T1,T2)值最小的分類就是最優(yōu)的分類。
本研究采用CART決策算法對(duì)特征屬性和其取值進(jìn)行決策分類。如一個(gè)特征屬性取值符合標(biāo)準(zhǔn)DOM樹的取值,則將該取值標(biāo)記為正常取值,劃分為左分支;否則標(biāo)記為惡意取值,劃分為右分支,最終形成一棵二叉樹[4-5]。圖2所示為利用CART二叉決策樹對(duì)特征屬性進(jìn)行分類的示意圖。
圖2 利用特征屬性進(jìn)行樣本分類示意圖
CART算法在分類時(shí)每個(gè)屬性都被詳細(xì)考慮,樣本中的錯(cuò)誤數(shù)據(jù)也會(huì)被決策樹學(xué)習(xí),造成過擬合問題[6]。為解決決策樹的過擬合,需對(duì)決策樹進(jìn)行剪枝。
本研究采用基于代價(jià)復(fù)雜性的后剪枝方法[7]對(duì)生成的二叉決策樹進(jìn)行剪枝。該方法將決策樹上的每個(gè)非葉子節(jié)點(diǎn)作為修剪的候選對(duì)象,計(jì)算其表面誤差率增益值α:
其中,|NTt|是子樹中包含的葉子節(jié)點(diǎn)個(gè)數(shù);R(Tt)是子樹Tt如果不被剪枝的誤差代價(jià),它等于子樹Tt上所有葉子節(jié)點(diǎn)的誤差代價(jià)之和;R(t)是節(jié)點(diǎn)t如果被剪枝的誤差代價(jià),其計(jì)算方法如式(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í),取|NTt|最大的節(jié)點(diǎn)進(jìn)行剪枝。
2.3攻擊檢測(cè)模塊
在攻擊檢測(cè)階段,系統(tǒng)利用決策樹分類得到的知識(shí)庫對(duì)待測(cè)頁面中提取的DOM節(jié)點(diǎn)取值進(jìn)行分析檢測(cè),判斷頁面上每一個(gè)DOM節(jié)點(diǎn)的屬性值是否存在攻擊或者潛在攻擊行為。如知識(shí)庫中不存在待測(cè)數(shù)據(jù),表明該數(shù)據(jù)需要通過決策樹進(jìn)行決策分類,并將決策的結(jié)果填充到知識(shí)庫中,使得知識(shí)庫隨著系統(tǒng)的不斷運(yùn)行而得到補(bǔ)充。檢測(cè)流程如圖3所示。
圖3 基于決策樹算法的跨站腳本攻擊檢測(cè)流程
利用該檢測(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所示。
表1 對(duì)已知攻擊行為的檢測(cè)結(jié)果對(duì)比
利用Paros Proxy3.2.13和本研究提出的檢測(cè)方法對(duì)某高校BBS網(wǎng)站和會(huì)議室預(yù)約平臺(tái)進(jìn)行檢測(cè),檢測(cè)結(jié)果如表2所示。
表2 對(duì)已知攻擊行為的檢測(cè)結(jié)果對(duì)比
從表1和表2的實(shí)驗(yàn)結(jié)果可以看出,本研究所提出的檢測(cè)方法對(duì)未知攻擊行為也能有效檢測(cè),但由于在本方法中,判定一個(gè)腳本行為是否為攻擊行為的依據(jù)不夠全面,導(dǎo)致本方法在檢測(cè)時(shí)會(huì)產(chǎn)生部分誤報(bào)和漏報(bào)的情況。
本文分析了基于DOM的跨站腳本攻擊的產(chǎn)生原理和現(xiàn)有檢測(cè)方法的不足,提出了一種新的采用CART決策樹來檢測(cè)DOM-Based跨站腳本攻擊的方法。利用決策樹在決策分類上的優(yōu)勢(shì),在提高檢測(cè)方法的工作效率和檢測(cè)結(jié)果的準(zhǔn)確率方面起到重要的作用,對(duì)未知的攻擊行為也能夠進(jìn)行動(dòng)態(tài)判定并及時(shí)響應(yīng),解決了基于DOM的跨站腳本攻擊的檢測(cè)難的問題。
鑒于DOM的跨站腳本攻擊的產(chǎn)生和其特殊性,判斷一個(gè)行為是否屬于跨站腳本攻擊行為仍然需要更進(jìn)一步地研究。選取最恰當(dāng)?shù)奶卣髦祦砻枋鲆粋€(gè)節(jié)點(diǎn)的屬性值或腳本代碼是否會(huì)產(chǎn)生攻擊,將是下一步的工作重點(diǎn)。
[1]羅可,林睦綱,郝東妹.數(shù)據(jù)挖掘中分類算法綜述[J].計(jì)算機(jī)工程,2005,31(1):3-5,11.
[2]栗麗華,吉根林.決策樹分類技術(shù)研究[J].計(jì)算機(jī)工程,2004,30(9):94-96,105.
[3]肖勇,陳意云.用遺傳算法構(gòu)造決策樹[J].計(jì)算機(jī)研究與發(fā)展,1998(1):49-52.
[4]曲開社,成文麗,王俊紅.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ù)據(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
張海燕,莫勇.基于決策樹分類的跨站腳本攻擊檢測(cè)方法[J].微型機(jī)與應(yīng)用,2015,34(16):55-57,61.
2015-03-27)
張海燕(1976-),女,博士,副教授,碩士生導(dǎo)師,主要研方向:嵌入式系統(tǒng)、模式識(shí)別。
國家自然科學(xué)基金項(xiàng)目(61300180);中央高校基本科研業(yè)務(wù)費(fèi)專項(xiàng)資金資助項(xiàng)目(TD2014-01)
莫勇(1989-),通信作者,男,碩士研究生,主要研究方向:嵌入式系統(tǒng)、網(wǎng)絡(luò)信息安全。E-mail:moyong@bjfu.edu.cn。