吳亞玲 張震 李婷妤 劉芳 李智勇
(1.湖南開(kāi)放大學(xué) 湖南 長(zhǎng)沙 410004; 2.湖南工商大學(xué) 湖南 長(zhǎng)沙410205)
網(wǎng)絡(luò)安全威脅中,XSS 攻擊是一種常見(jiàn)的威脅之一。盡管近年來(lái)XSS攻擊的檢測(cè)技術(shù)得到了很大的改進(jìn)和發(fā)展,但其仍然存在著技術(shù)性挑戰(zhàn)。傳統(tǒng)的入侵檢測(cè)方法是通過(guò)已有的大量標(biāo)記數(shù)據(jù)集進(jìn)行檢測(cè),然而大多數(shù)網(wǎng)站在開(kāi)發(fā)初期并沒(méi)有這樣的數(shù)據(jù)集。為了解決此類問(wèn)題,可以借助其他項(xiàng)目的數(shù)據(jù)集進(jìn)行檢測(cè)。遷移學(xué)習(xí)是一種有效的機(jī)器學(xué)習(xí)技術(shù),具有解決數(shù)據(jù)不平衡性和知識(shí)缺失性的能力。因此,本文采用遷移學(xué)習(xí)來(lái)解決沒(méi)有標(biāo)記數(shù)據(jù)集的問(wèn)題。
針對(duì)XSS(Cross-Site Scripting)的檢測(cè)方法目前面臨著嚴(yán)峻的挑戰(zhàn)。SONEWAR P A 等人[1]提出建立靜態(tài)和動(dòng)態(tài)映射模型檢測(cè)XSS 攻擊中的異常; SEYYAR M B 等人[2]提出規(guī)則集來(lái)檢測(cè)XSS 攻擊; DWIVEDI B[3]提出適配算法;范禹辰[4]提出基于BERT的Web攻擊檢測(cè)方法;盧明星等人[5]提出非監(jiān)督學(xué)習(xí)的深度自編碼器并實(shí)現(xiàn)檢測(cè);林雍博[6]提出字符級(jí)卷積預(yù)處理方法;李釗等人[7]使用模式匹配Sunday 算法實(shí)現(xiàn)檢測(cè);張哲銘[8]提出基于誤用的無(wú)監(jiān)督自適應(yīng)IDS 模型。以上文獻(xiàn)提出多種不同方法檢測(cè)XSS 入侵,雖然在一定程度上提高了XSS 檢測(cè)率,但都沒(méi)有考慮數(shù)據(jù)樣本集不足的問(wèn)題;馬櫻[9]提出了TNB算法,該方法考慮了數(shù)據(jù)樣本不足的問(wèn)題,但該模型只考慮了目標(biāo)樣本集屬性里的最大值和最小值,反映的目標(biāo)數(shù)據(jù)集沒(méi)有包含其所有的特征,只在屬性特征的差異不大時(shí)才可以取得比較好的檢測(cè)效果。
本文結(jié)合前述研究成果,采用遷移學(xué)習(xí)技術(shù),提出了一種基于遷移學(xué)習(xí)的跨站點(diǎn)腳本攻擊檢測(cè)方法。該方法適用于目標(biāo)公司的數(shù)據(jù)不足的情況,避免了過(guò)去必須在相同分布的數(shù)據(jù)集上建立模型的問(wèn)題。
遷移學(xué)習(xí)是指將A 任務(wù)開(kāi)發(fā)的模型作為起點(diǎn),在B任務(wù)開(kāi)發(fā)模型的過(guò)程中重新利用機(jī)器學(xué)習(xí)方法的一種技術(shù)?;谶w移學(xué)習(xí)的樸素貝葉斯檢測(cè)算法(MLWNB)是一種建立入侵檢測(cè)模型的方法,它使用不同公司的Web應(yīng)用程序的XSS入侵?jǐn)?shù)據(jù)作為目標(biāo)公司W(wǎng)eb應(yīng)用程序項(xiàng)目的數(shù)據(jù)集。可以在開(kāi)發(fā)環(huán)境和數(shù)據(jù)集分布不同的情況下進(jìn)行檢測(cè),該算法極大地提高了檢測(cè)的實(shí)時(shí)性、魯棒性和準(zhǔn)確性。
為了實(shí)現(xiàn)遷移學(xué)習(xí),該研究引入了數(shù)據(jù)度量的概念來(lái)獲取目標(biāo)數(shù)據(jù)集的相關(guān)信息。在分類過(guò)程中,通常需要估計(jì)非同類樣本之間的相似度,此時(shí)會(huì)計(jì)算樣本之間的“距離”。本文使用歐式距離來(lái)度量屬性之間的相似度。
在二維空間中,向量A(x1,y1)與向量B(x2,y2)之間的歐式距離可以表示為式(1)。
同理,將歐氏距離推廣到n維空間,距離可以表示為式(2)。
本文為了遷移目標(biāo)數(shù)據(jù)的信息,首先獲取測(cè)試集的信息,然后計(jì)算每個(gè)訓(xùn)練樣本與測(cè)試集的相似度,基于萬(wàn)有引力計(jì)算各訓(xùn)練數(shù)據(jù)的權(quán)重,最終建立基于遷移學(xué)習(xí)改進(jìn)的MLWNB算法預(yù)測(cè)模型。
為了獲取目標(biāo)集的數(shù)據(jù)信息,先計(jì)算測(cè)試集中屬性的中間值mid向量。假設(shè)每個(gè)屬性對(duì)目標(biāo)分類預(yù)測(cè)的貢獻(xiàn)相同,通過(guò)計(jì)算樣本屬性值在中間的位置,使用歐氏距離公式計(jì)算測(cè)試數(shù)據(jù)集和每個(gè)訓(xùn)練樣本之間的相似度。求測(cè)試數(shù)據(jù)集的所有屬性之和的平均值,并計(jì)算訓(xùn)練數(shù)據(jù)集的每個(gè)樣本屬性和測(cè)試數(shù)據(jù)集的平均屬性值之間的歐式距離。取0.5為分界點(diǎn)值,當(dāng)兩者之間的距離d小于或等于0.5時(shí),視為相似屬性,當(dāng)d大于0.5時(shí),視為非相似屬性。將各個(gè)樣本看作zi={ai1,ai2,…,aik},這里,樣本zi中第j個(gè)屬性值為aij。對(duì)各個(gè)訓(xùn)練集的樣本zi,相似屬性個(gè)數(shù)如式(3)所示:
假如有3個(gè)訓(xùn)練數(shù)據(jù):z1={1,2,3,’false’};z2={3,1,1,’true’};z3={2,3,3,’false’}。2個(gè)目標(biāo)數(shù)據(jù):x1={1,2,3};x2={3,1,1}。通過(guò)上述,可以計(jì)算得到測(cè)試數(shù)據(jù)的Mid向量,Mid={3/2,3/2,3}。其次可以通過(guò)式(1)和式(3)來(lái)算得各個(gè)訓(xùn)練樣本之間的相似度sgli。
同理可得:sl2=1;sl3=2。
權(quán)重wi會(huì)隨著測(cè)試數(shù)據(jù)集和樣本zi的類似度增加而增加。當(dāng)屬性個(gè)數(shù)k等于相似度sli時(shí),所有這些屬性都會(huì)和中間值向量之間的距離在(0,0.5]之間,此時(shí)相似度等于(k-sli+1),也就是屬性被賦予最大的權(quán)重。
在訓(xùn)練數(shù)據(jù)和測(cè)試集數(shù)據(jù)的研究中,模擬萬(wàn)有引力。通過(guò)一個(gè)“引力”,兩個(gè)物體的質(zhì)量與距離R的平方成反比,和萬(wàn)有引力大小成正比,具體在式(4)中體現(xiàn)。
根據(jù)公式,得到訓(xùn)練數(shù)據(jù)的權(quán)重式(5)。
圖1 基于遷移學(xué)習(xí)改進(jìn)的樸素貝葉斯分類算法
根據(jù)基于加權(quán)的數(shù)據(jù)計(jì)算得到的先驗(yàn)概率計(jì)算公式,可以看出測(cè)試數(shù)據(jù)集的類分布在先驗(yàn)概率公式的變化中得到反映。如果測(cè)試數(shù)據(jù)集和訓(xùn)練樣本相似,那么就會(huì)給予更大的權(quán)重給訓(xùn)練數(shù)據(jù),同時(shí),因?yàn)闇y(cè)試集中該類的概率更大,所以該訓(xùn)練數(shù)據(jù)所對(duì)應(yīng)的類也會(huì)被給予更大的權(quán)重。因此,我們可以重新表述t類加權(quán)先驗(yàn)概率公式見(jiàn)式(6)。
式(6)中,wi為訓(xùn)練樣本zi的權(quán)重,ti為訓(xùn)練樣本zi類屬值,h為訓(xùn)練樣本總個(gè)數(shù),ht為總類別數(shù)。在預(yù)測(cè)模型中n=2。
指示函數(shù)ε(x,y)中,假若x≠y,那么ε(x,y) =0;x=y,那么ε(x,y) =1。給定測(cè)試樣本zi,運(yùn)用文獻(xiàn)給出的樣本加權(quán)方法,第j個(gè)屬性ai的條件概率如公式(7)所示:
式(7)中,aij為第i個(gè)訓(xùn)練數(shù)據(jù)集第j個(gè)屬性的值,hj為第j個(gè)屬性不同值的數(shù)量則。如果訓(xùn)練數(shù)據(jù)中有和z相同類屬性值的情況,那么可以計(jì)算出條件概率P(aj|t)。
對(duì)屬性都為數(shù)字型的軟件入侵?jǐn)?shù)據(jù)進(jìn)行離散化。結(jié)合上述公式,可以使用預(yù)測(cè)模型對(duì)測(cè)試數(shù)據(jù)進(jìn)行分類。根據(jù)上述例子,利用式(5)將測(cè)試數(shù)據(jù)x1=(1,2,3,?)計(jì)算相應(yīng)權(quán)重。
依據(jù)式(6),可以求得P(t),由以上可知,n=3(包含3個(gè)訓(xùn)練樣本),ht=2(包含兩個(gè)類別),所以:
依據(jù)公式(7),可以求得P(aj|t),由以上可知,h1=2,h2=3,h3=3,所以:
同理有
其中,u1可以依據(jù)公式(7)得
因0.888>0.112,可得u1通過(guò)以上預(yù)測(cè)是類'false'。
為驗(yàn)證算法可行性,定義所有訓(xùn)練數(shù)據(jù)直接建立的檢測(cè)模型為ATD(All Training Data);而相似訓(xùn)練數(shù)據(jù)建立的檢測(cè)模型則為STD(Similar Training Data)。本實(shí)驗(yàn)用kc1和NSL-KDD數(shù)據(jù)集進(jìn)行訓(xùn)練,使用StatLib 數(shù)據(jù)集進(jìn)行檢測(cè),評(píng)估指標(biāo)為ACC 和F-measure,可通過(guò)查全率、查準(zhǔn)率、調(diào)和平均值和精確率公式求得。分類結(jié)果詳見(jiàn)表1。
表1 MLWNB分類結(jié)果(χˉ±s)
據(jù)表1所示,MLWNB 算法在3個(gè)不同的數(shù)據(jù)集中表現(xiàn)出了卓越的精確率,甚至在跨站模型上,其ACC也接近或超過(guò)了入侵?jǐn)?shù)據(jù)集的訓(xùn)練模型。這就表明該算法具有可行性。此外,表中的標(biāo)準(zhǔn)差數(shù)值較小,表明MLWNB具有較好的穩(wěn)定性。
圖2展示了同一算法在不同比例的數(shù)據(jù)集中使用時(shí),數(shù)據(jù)指標(biāo)F-measure的值。該值反映了MLWNB檢測(cè)XSS攻擊的綜合準(zhǔn)確性。
圖2 MLWNB分類的F-measure結(jié)果圖
由圖2可知,MLWNB算法在兩個(gè)站內(nèi)數(shù)據(jù)集和一個(gè)站外數(shù)據(jù)集上具有良好的適應(yīng)性。隨著數(shù)據(jù)集百分比的增加,站外數(shù)據(jù)StatLib 的F-measure 值也在穩(wěn)定增長(zhǎng)。
本文首先分析了遷移學(xué)習(xí)技術(shù),結(jié)合貝葉斯分析方法的優(yōu)點(diǎn)和不足,提出了一種基于遷移學(xué)習(xí)的XSS入侵檢測(cè)分類算法。該算法能夠最大限度地利用跨項(xiàng)目數(shù)據(jù)信息,避免現(xiàn)有數(shù)據(jù)集不夠以及現(xiàn)有模型丟棄大量訓(xùn)練數(shù)據(jù)的問(wèn)題。文章對(duì)提出的方法進(jìn)行詳細(xì)分析,并通過(guò)關(guān)鍵代碼或偽代碼輔助說(shuō)明各個(gè)模塊的核心技術(shù)。實(shí)驗(yàn)結(jié)果表明:采用遷移學(xué)習(xí)改進(jìn)的MLWNB算法,訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)具有相似的分布,MLWNB算法能顯著提高跨項(xiàng)目入侵檢測(cè)性能。