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