吳亞玲 張震 李婷妤 劉芳 李智勇
(1.湖南開放大學(xué) 湖南 長沙 410004; 2.湖南工商大學(xué) 湖南 長沙410205)
網(wǎng)絡(luò)安全威脅中,XSS 攻擊是一種常見的威脅之一。盡管近年來XSS攻擊的檢測技術(shù)得到了很大的改進和發(fā)展,但其仍然存在著技術(shù)性挑戰(zhàn)。傳統(tǒng)的入侵檢測方法是通過已有的大量標記數(shù)據(jù)集進行檢測,然而大多數(shù)網(wǎng)站在開發(fā)初期并沒有這樣的數(shù)據(jù)集。為了解決此類問題,可以借助其他項目的數(shù)據(jù)集進行檢測。遷移學(xué)習(xí)是一種有效的機器學(xué)習(xí)技術(shù),具有解決數(shù)據(jù)不平衡性和知識缺失性的能力。因此,本文采用遷移學(xué)習(xí)來解決沒有標記數(shù)據(jù)集的問題。
針對XSS(Cross-Site Scripting)的檢測方法目前面臨著嚴峻的挑戰(zhàn)。SONEWAR P A 等人[1]提出建立靜態(tài)和動態(tài)映射模型檢測XSS 攻擊中的異常; SEYYAR M B 等人[2]提出規(guī)則集來檢測XSS 攻擊; DWIVEDI B[3]提出適配算法;范禹辰[4]提出基于BERT的Web攻擊檢測方法;盧明星等人[5]提出非監(jiān)督學(xué)習(xí)的深度自編碼器并實現(xiàn)檢測;林雍博[6]提出字符級卷積預(yù)處理方法;李釗等人[7]使用模式匹配Sunday 算法實現(xiàn)檢測;張哲銘[8]提出基于誤用的無監(jiān)督自適應(yīng)IDS 模型。以上文獻提出多種不同方法檢測XSS 入侵,雖然在一定程度上提高了XSS 檢測率,但都沒有考慮數(shù)據(jù)樣本集不足的問題;馬櫻[9]提出了TNB算法,該方法考慮了數(shù)據(jù)樣本不足的問題,但該模型只考慮了目標樣本集屬性里的最大值和最小值,反映的目標數(shù)據(jù)集沒有包含其所有的特征,只在屬性特征的差異不大時才可以取得比較好的檢測效果。
本文結(jié)合前述研究成果,采用遷移學(xué)習(xí)技術(shù),提出了一種基于遷移學(xué)習(xí)的跨站點腳本攻擊檢測方法。該方法適用于目標公司的數(shù)據(jù)不足的情況,避免了過去必須在相同分布的數(shù)據(jù)集上建立模型的問題。
遷移學(xué)習(xí)是指將A 任務(wù)開發(fā)的模型作為起點,在B任務(wù)開發(fā)模型的過程中重新利用機器學(xué)習(xí)方法的一種技術(shù)。基于遷移學(xué)習(xí)的樸素貝葉斯檢測算法(MLWNB)是一種建立入侵檢測模型的方法,它使用不同公司的Web應(yīng)用程序的XSS入侵數(shù)據(jù)作為目標公司W(wǎng)eb應(yīng)用程序項目的數(shù)據(jù)集。可以在開發(fā)環(huán)境和數(shù)據(jù)集分布不同的情況下進行檢測,該算法極大地提高了檢測的實時性、魯棒性和準確性。
為了實現(xiàn)遷移學(xué)習(xí),該研究引入了數(shù)據(jù)度量的概念來獲取目標數(shù)據(jù)集的相關(guān)信息。在分類過程中,通常需要估計非同類樣本之間的相似度,此時會計算樣本之間的“距離”。本文使用歐式距離來度量屬性之間的相似度。
在二維空間中,向量A(x1,y1)與向量B(x2,y2)之間的歐式距離可以表示為式(1)。
同理,將歐氏距離推廣到n維空間,距離可以表示為式(2)。
本文為了遷移目標數(shù)據(jù)的信息,首先獲取測試集的信息,然后計算每個訓(xùn)練樣本與測試集的相似度,基于萬有引力計算各訓(xùn)練數(shù)據(jù)的權(quán)重,最終建立基于遷移學(xué)習(xí)改進的MLWNB算法預(yù)測模型。
為了獲取目標集的數(shù)據(jù)信息,先計算測試集中屬性的中間值mid向量。假設(shè)每個屬性對目標分類預(yù)測的貢獻相同,通過計算樣本屬性值在中間的位置,使用歐氏距離公式計算測試數(shù)據(jù)集和每個訓(xùn)練樣本之間的相似度。求測試數(shù)據(jù)集的所有屬性之和的平均值,并計算訓(xùn)練數(shù)據(jù)集的每個樣本屬性和測試數(shù)據(jù)集的平均屬性值之間的歐式距離。取0.5為分界點值,當(dāng)兩者之間的距離d小于或等于0.5時,視為相似屬性,當(dāng)d大于0.5時,視為非相似屬性。將各個樣本看作zi={ai1,ai2,…,aik},這里,樣本zi中第j個屬性值為aij。對各個訓(xùn)練集的樣本zi,相似屬性個數(shù)如式(3)所示:
假如有3個訓(xùn)練數(shù)據(jù):z1={1,2,3,’false’};z2={3,1,1,’true’};z3={2,3,3,’false’}。2個目標數(shù)據(jù):x1={1,2,3};x2={3,1,1}。通過上述,可以計算得到測試數(shù)據(jù)的Mid向量,Mid={3/2,3/2,3}。其次可以通過式(1)和式(3)來算得各個訓(xùn)練樣本之間的相似度sgli。
同理可得:sl2=1;sl3=2。
權(quán)重wi會隨著測試數(shù)據(jù)集和樣本zi的類似度增加而增加。當(dāng)屬性個數(shù)k等于相似度sli時,所有這些屬性都會和中間值向量之間的距離在(0,0.5]之間,此時相似度等于(k-sli+1),也就是屬性被賦予最大的權(quán)重。
在訓(xùn)練數(shù)據(jù)和測試集數(shù)據(jù)的研究中,模擬萬有引力。通過一個“引力”,兩個物體的質(zhì)量與距離R的平方成反比,和萬有引力大小成正比,具體在式(4)中體現(xiàn)。
根據(jù)公式,得到訓(xùn)練數(shù)據(jù)的權(quán)重式(5)。

圖1 基于遷移學(xué)習(xí)改進的樸素貝葉斯分類算法
根據(jù)基于加權(quán)的數(shù)據(jù)計算得到的先驗概率計算公式,可以看出測試數(shù)據(jù)集的類分布在先驗概率公式的變化中得到反映。如果測試數(shù)據(jù)集和訓(xùn)練樣本相似,那么就會給予更大的權(quán)重給訓(xùn)練數(shù)據(jù),同時,因為測試集中該類的概率更大,所以該訓(xùn)練數(shù)據(jù)所對應(yīng)的類也會被給予更大的權(quán)重。因此,我們可以重新表述t類加權(quán)先驗概率公式見式(6)。
式(6)中,wi為訓(xùn)練樣本zi的權(quán)重,ti為訓(xùn)練樣本zi類屬值,h為訓(xùn)練樣本總個數(shù),ht為總類別數(shù)。在預(yù)測模型中n=2。
指示函數(shù)ε(x,y)中,假若x≠y,那么ε(x,y) =0;x=y,那么ε(x,y) =1。給定測試樣本zi,運用文獻給出的樣本加權(quán)方法,第j個屬性ai的條件概率如公式(7)所示:
式(7)中,aij為第i個訓(xùn)練數(shù)據(jù)集第j個屬性的值,hj為第j個屬性不同值的數(shù)量則。如果訓(xùn)練數(shù)據(jù)中有和z相同類屬性值的情況,那么可以計算出條件概率P(aj|t)。
對屬性都為數(shù)字型的軟件入侵數(shù)據(jù)進行離散化。結(jié)合上述公式,可以使用預(yù)測模型對測試數(shù)據(jù)進行分類。根據(jù)上述例子,利用式(5)將測試數(shù)據(jù)x1=(1,2,3,?)計算相應(yīng)權(quán)重。
依據(jù)式(6),可以求得P(t),由以上可知,n=3(包含3個訓(xùn)練樣本),ht=2(包含兩個類別),所以:
依據(jù)公式(7),可以求得P(aj|t),由以上可知,h1=2,h2=3,h3=3,所以:
同理有
其中,u1可以依據(jù)公式(7)得
因0.888>0.112,可得u1通過以上預(yù)測是類'false'。
為驗證算法可行性,定義所有訓(xùn)練數(shù)據(jù)直接建立的檢測模型為ATD(All Training Data);而相似訓(xùn)練數(shù)據(jù)建立的檢測模型則為STD(Similar Training Data)。本實驗用kc1和NSL-KDD數(shù)據(jù)集進行訓(xùn)練,使用StatLib 數(shù)據(jù)集進行檢測,評估指標為ACC 和F-measure,可通過查全率、查準率、調(diào)和平均值和精確率公式求得。分類結(jié)果詳見表1。

表1 MLWNB分類結(jié)果(χˉ±s)
據(jù)表1所示,MLWNB 算法在3個不同的數(shù)據(jù)集中表現(xiàn)出了卓越的精確率,甚至在跨站模型上,其ACC也接近或超過了入侵數(shù)據(jù)集的訓(xùn)練模型。這就表明該算法具有可行性。此外,表中的標準差數(shù)值較小,表明MLWNB具有較好的穩(wěn)定性。
圖2展示了同一算法在不同比例的數(shù)據(jù)集中使用時,數(shù)據(jù)指標F-measure的值。該值反映了MLWNB檢測XSS攻擊的綜合準確性。

圖2 MLWNB分類的F-measure結(jié)果圖
由圖2可知,MLWNB算法在兩個站內(nèi)數(shù)據(jù)集和一個站外數(shù)據(jù)集上具有良好的適應(yīng)性。隨著數(shù)據(jù)集百分比的增加,站外數(shù)據(jù)StatLib 的F-measure 值也在穩(wěn)定增長。
本文首先分析了遷移學(xué)習(xí)技術(shù),結(jié)合貝葉斯分析方法的優(yōu)點和不足,提出了一種基于遷移學(xué)習(xí)的XSS入侵檢測分類算法。該算法能夠最大限度地利用跨項目數(shù)據(jù)信息,避免現(xiàn)有數(shù)據(jù)集不夠以及現(xiàn)有模型丟棄大量訓(xùn)練數(shù)據(jù)的問題。文章對提出的方法進行詳細分析,并通過關(guān)鍵代碼或偽代碼輔助說明各個模塊的核心技術(shù)。實驗結(jié)果表明:采用遷移學(xué)習(xí)改進的MLWNB算法,訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)具有相似的分布,MLWNB算法能顯著提高跨項目入侵檢測性能。