李克資,徐 洋*,張慶玲,張思聰
(1.貴州師范大學(xué) 貴州省信息與計(jì)算科學(xué)重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽 550001;2.貴州省公安廳-貴州師范大學(xué)大數(shù)據(jù)及網(wǎng)絡(luò)安全發(fā)展研究中心,貴州 貴陽 550001)
XSS攻擊是最常見的惡意腳本注入攻擊之一,當(dāng)攻擊者將惡意JavaScript負(fù)載注入到由用戶的瀏覽器執(zhí)行的Web頁面時(shí),就會發(fā)生這種攻擊。
在受害者的瀏覽器上執(zhí)行的惡意腳本可能導(dǎo)致劫持用戶會話、錯(cuò)誤信息、篡改Web頁面、插入惡意內(nèi)容、網(wǎng)絡(luò)釣魚攻擊、控制用戶的瀏覽器和訪問業(yè)務(wù)數(shù)據(jù)[1]。更嚴(yán)重的是,跨站請求偽造(Cross site request forgery,CSRF)、遠(yuǎn)程代碼執(zhí)行(Remote code execution,RCE)等漏洞結(jié)合在一起,可能導(dǎo)致主機(jī)被攻擊,威脅到受害者的內(nèi)網(wǎng)安全。
跨站攻擊傳統(tǒng)上分為3類:反射型XSS攻擊(又稱非持久型 XSS 攻擊)、存儲型 XSS 攻擊(又稱持久型 XSS攻擊)和基于文檔對象模型(Document object model,DOM)的XSS攻擊??缯竟敉ǔ:苋菀讓?shí)現(xiàn),但由于編碼方案的高度靈活性(如URL編碼、base64編碼、HTML等)[2]以及不同瀏覽器之間的差異,采用傳統(tǒng)的檢測方法很難防止跨站攻擊。
傳統(tǒng)的檢測技術(shù)有基于黑盒測試[3]、白盒測試、模糊測試[4]。文獻(xiàn)[5]使用基于正常和惡意URL和JavaScript的特征,使用3種機(jī)器學(xué)習(xí)算法(樸素貝葉斯(naive Bayesian)、支持向量機(jī)(Support vector machine,SVM)和J48決策樹)預(yù)測跨站點(diǎn)腳本攻擊。類似的,文獻(xiàn)[6]首先人工提取XSS攻擊載荷特征將其構(gòu)建為特征向量,然后使用多種機(jī)器學(xué)習(xí)算法對XSS攻擊進(jìn)行檢測。但是,這些基于傳統(tǒng)機(jī)器學(xué)習(xí)的方法的特點(diǎn)是嚴(yán)重依賴特征提取工作,缺少客觀性。并且由于編碼方案的高度靈活性,經(jīng)過編碼混淆的XSS攻擊載荷可讀性差,更不易檢測。針對傳統(tǒng)機(jī)器學(xué)習(xí)檢測方法的不足,近年端到端的深度學(xué)習(xí)檢測方法成為研究熱點(diǎn)。文獻(xiàn)[7]在漏洞檢測中運(yùn)用了長短期記憶網(wǎng)絡(luò)(LSTM),通過使用LSTM的序列分析能力提高了對代碼上下文依賴的分析。文獻(xiàn)[8-9]研究對比了CNN、LSTM、CNN-LSTM在漏洞檢測中的應(yīng)用,其實(shí)驗(yàn)結(jié)果表明深度學(xué)習(xí)的方法在漏洞檢測領(lǐng)域有較好的表現(xiàn)。文獻(xiàn)[10]提出使用CNN進(jìn)行XSS檢測,通過使用多層卷積操作提取數(shù)據(jù)中的關(guān)鍵特征然后輸入到softmax進(jìn)行分類,實(shí)驗(yàn)結(jié)果表明提高了準(zhǔn)確率并減少了誤報(bào)率,論證了CNN在XSS檢測領(lǐng)域的有效性。文獻(xiàn)[11]使用LSTM模型檢測XSS,實(shí)驗(yàn)結(jié)果驗(yàn)證了LSTM在XSS檢測的有效性,但是對于惡意混淆的 XSS檢測還不夠準(zhǔn)確,檢測效果還有待提高。文獻(xiàn)[12]中對BiLSTM在XSS檢測領(lǐng)域進(jìn)行了研究,對比了特征維度和優(yōu)化器等模型參數(shù)的不同對精度和時(shí)間的影響,對BiLSTM在XSS檢測領(lǐng)域檢測做了較為廣泛的對比實(shí)驗(yàn),論證了BiLSTM在XSS檢測領(lǐng)域的有效性。
Bahdanau等[13]采用編碼-解碼RNN做端到端的機(jī)器翻譯,模型可以在預(yù)測下一個(gè)詞的時(shí)候,自動地選擇原句子相關(guān)的部分作為解碼的輸入,后來被提為Attention機(jī)制。注意力機(jī)制被看作是實(shí)現(xiàn)意識的第一步, 意識為人工智能系統(tǒng)進(jìn)行邏輯分析和推理決策的關(guān)鍵, 是人工智能系統(tǒng)下一步的前進(jìn)方向。最初,注意力機(jī)制在圖像領(lǐng)域[14-15]發(fā)展,后來又逐步引入了自然語言處理(NLP)[13,16-17]和語音處理[18]領(lǐng)域。注意力機(jī)制是根據(jù)在序列中每一個(gè)詞或特征對任務(wù)的作用來計(jì)算注意力,注意力越大,表明這個(gè)詞或者特征應(yīng)該受到更多的關(guān)注,增加對關(guān)鍵信息的選取,減少對噪音信息的注意,可以有效地提升準(zhǔn)確率,并減少收斂時(shí)間。Yang等[19]提出一種基于注意力機(jī)制的 GRU 網(wǎng)絡(luò),在文本分類中分別在Word和Sentence級別建立Attention機(jī)制,學(xué)習(xí)Word對Sentence的注意力權(quán)重和Sentence對Document的注意力權(quán)重,有效提高了檢測精度。曾義夫等[20]在情感分類中引入注意力機(jī)制,借助循環(huán)神經(jīng)網(wǎng)絡(luò)的序列學(xué)習(xí)能力得到語句編碼,并構(gòu)造相應(yīng)的注意機(jī)制從編碼中提取給定方面詞的情感表達(dá),實(shí)驗(yàn)效果表明在分類準(zhǔn)確率和泛化能力上均優(yōu)于相關(guān)工作。文獻(xiàn)[21]將注意力機(jī)制、圖網(wǎng)絡(luò)以及雙向LSTM用于漏洞挖掘,提出了一種面向源代碼漏洞挖掘的神經(jīng)網(wǎng)絡(luò)模型,該模型利用BiLSTM抽取源代碼的上下文信息,并利用注意力機(jī)制捕獲關(guān)鍵特征,在實(shí)現(xiàn)漏洞挖掘的同時(shí),有效地避免了漏洞與非漏洞代碼類間差異小所導(dǎo)致的準(zhǔn)確率降低。Attention模型通過計(jì)算概率分布來突出輸入的關(guān)鍵信息對模型輸出結(jié)果的影響,增加對關(guān)鍵信息的選取減少對噪音特征的注意,給重要的特征賦予更高的權(quán)重,從而提高特征抽取的準(zhǔn)確性。
基于上述研究,本文引入Attention機(jī)制,結(jié)合BiLSTM和CNN模型用于XSS攻擊檢測。首先利用 BiLSTM提取XSS數(shù)據(jù)雙向序列特征;然后引入Attention機(jī)制,將較大的權(quán)重賦予給相關(guān)性高的特征,增加對關(guān)鍵信息的選取,減少對噪音特征的注意;最后通過使用CNN模型進(jìn)一步選取相關(guān)性大的特征中有助于XSS檢測的最優(yōu)特征。
本文檢測方法整體框架如圖1所示,首先通過收集相關(guān)的XSS數(shù)據(jù)構(gòu)成原始數(shù)據(jù)集,然后對數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理得到適應(yīng)神經(jīng)網(wǎng)絡(luò)模型的輸入(見1.1節(jié)),最后構(gòu)建BiLSTM-Attention-CNN混合模型(見1.2節(jié))進(jìn)行檢測分類。
圖1 檢測方法的整體框架Fig.1 The overall framework of the detection method
數(shù)據(jù)預(yù)處理是將XSS攻擊載荷轉(zhuǎn)化為模型輸入所需要的標(biāo)準(zhǔn)向量格式。對收集到的數(shù)據(jù)進(jìn)行解碼、分詞、向量化等數(shù)據(jù)預(yù)處理,然后輸入到BiLSTM-Attention-CNN 檢測模型中進(jìn)行分類訓(xùn)練和測試。本文數(shù)據(jù)處理主要分為3個(gè)方面:數(shù)據(jù)清洗、分詞、向量化。
1.1.1 數(shù)據(jù)清洗
由于現(xiàn)在安全水平的不斷提高,使用明文的攻擊載荷往往會被防御系統(tǒng)檢測到,所以攻擊者會根據(jù)不同的瀏覽器的解析策略對XSS攻擊載荷進(jìn)行編碼混淆,以繞過檢測,表1為常見的編碼方式。
表1 編碼方式Tab.1 Coding scheme
為了提高模型的檢測效果,本文根據(jù)表1的編碼方式按照對應(yīng)的編解碼規(guī)則編寫程序,對原始數(shù)據(jù)進(jìn)行數(shù)據(jù)清理工作。圖2顯示了混淆代碼經(jīng)過解碼還原為原始代碼的一個(gè)實(shí)例。
圖2 解碼實(shí)例Fig.2 Decoding example
1.1.2 分詞
對數(shù)據(jù)進(jìn)行清洗后,為了降低向量化后的數(shù)據(jù)維度,本文先將代碼中的數(shù)字轉(zhuǎn)換為0,將鏈接如“http://www.sida.com”轉(zhuǎn)換為“http://n”。然后利用腳本語言的特點(diǎn),根據(jù)不同功能的分詞類別,設(shè)計(jì)了一系列自定義正則表達(dá)式對輸入的代碼數(shù)據(jù)進(jìn)行分詞,如表2所示,分詞結(jié)果如圖3所示。
表2 分詞Tab.2 Tokenize
圖3 分詞樣例Fig.3 Tokenizing sample
1.1.3 向量化
數(shù)據(jù)的向量化處理采用 Word2vec方法中的Skip-gram 模型,其模型是通過序列中一個(gè)詞預(yù)測其周圍詞的向量,Skip-gram 模型由輸入層、映射層和輸出層組成。通過Word2vec 轉(zhuǎn)換后的詞向量不僅把詞表示成分布式的詞向量,而且還可以捕獲詞之間存在的相似關(guān)系。由于神經(jīng)網(wǎng)絡(luò)的輸入長度固定,但是樣本長度不固定,選擇合適的向量維度對模型的表現(xiàn)非常重要。所以根據(jù)樣本長度,將長度超過向量維度的進(jìn)行截?cái)?,長度不足的用-1填充,使得所有向量長度一致。
文獻(xiàn)[10]提出使用CNN進(jìn)行XSS檢測,通過使用多層卷積操作提取數(shù)據(jù)中的關(guān)鍵特征然后輸入到Softmax進(jìn)行分類,實(shí)驗(yàn)結(jié)果表明提高了準(zhǔn)確率并減少了誤報(bào)率。驗(yàn)證了CNN在XSS處理任務(wù)中的可行性和有效性。
文獻(xiàn)[11]提出使用LSTM的深度學(xué)習(xí)檢測模型,LSTM模型優(yōu)點(diǎn)在于能夠處理上文對下文的依賴問題,常用于較長序列的自然語言問題,但是該模型只能處理XSS上文對下文的單向序列依賴。文獻(xiàn)[12]對BiLSTM在XSS檢測領(lǐng)域進(jìn)行了研究,BiLSTM優(yōu)勢在于可以對XSS數(shù)據(jù)進(jìn)行雙向序列特征提取。文獻(xiàn)[12]對比了特征維度和優(yōu)化器等不同模型參數(shù)對精度和時(shí)間的影響,實(shí)驗(yàn)證明了BiLSTM在XSS檢測領(lǐng)域的可行性和有效性。
但對于XSS攻擊檢測任務(wù),在XSS攻擊載荷中,會有很多對檢測XSS相關(guān)性低甚至無關(guān)的詞語。因?yàn)橛泻芏嗾5恼埱笠矔嬖谀承┰~(如alert等)。BiLSTM和CNN模型能夠較好的提取XSS攻擊向量的全局和局部特征。但其無法對特征進(jìn)行權(quán)重分配,即無法關(guān)注到對檢測結(jié)果貢獻(xiàn)度大的特征,無法提高特征抽取的準(zhǔn)確性。從而無法突出關(guān)鍵特征信息對模型輸出結(jié)果的影響。為了充分結(jié)合BiLSTM和CNN的特征提取特性,以及Attention機(jī)制對關(guān)鍵特征的選取優(yōu)勢。本文采用BiLSTM和CNN模型,引入Attention機(jī)制,提出BiLSTM-Attention-CNN檢測模型(圖4)。
圖4 BiLSTM-Attention-CNN模型Fig.4 BiLSTM-Attention-CNN model
輸入層:數(shù)據(jù)預(yù)處理訓(xùn)練的詞向量二階張量輸入模型。
注意力層:在這一層中,利用隱層的Attention機(jī)制來獲得注意概率分布值。引入注意力機(jī)制根據(jù)不同特征對XSS檢測的相關(guān)性學(xué)習(xí)不同的權(quán)重,選擇相關(guān)性高的特征,增加對關(guān)鍵信息的選取減少對噪音特征的注意。Attention機(jī)制能夠充分地利用句子的全局和局部特征,給重要的特征賦予更高的權(quán)重,從而提高特征抽取的準(zhǔn)確性。常用的Attention機(jī)制有兩種:點(diǎn)積注意力機(jī)制(Dot-Product Attention)和加性注意力機(jī)制(Additive Attention)。由文獻(xiàn)[22]可知,點(diǎn)積注意力機(jī)制的處理效益更高。本文采用的是點(diǎn)積注意力機(jī)制。Attention的輸出矩陣公式如式(1):
(1)
CNN層:CNN可以通過卷積操作對特征進(jìn)行局部提取。通過使用CNN可以提取經(jīng)過BiLSTM-Attention輸出的特征向量中的有助于XSS檢測的局部特征。CNN層采用TextCNN結(jié)構(gòu)[23],首先通過使用多個(gè)不同的卷積核對BiLSTM-Attention輸出的基于注意力權(quán)重的矩陣V∈Rn×k進(jìn)行卷積操作:
ci=f(W×Vi:i+h-1+b)
(2)
式(2)中W∈Rh×k,h為卷積窗口大小,k為V中每一維向量長度。其意義為使用h個(gè)k維向量去產(chǎn)生1個(gè)新的特征ci,最后得到C∈Rn-h+1。
C=[c1,c2,…,cn-h+1]
(3)
(4)
(5)
全連接、SoftMax、Output層:經(jīng)過CNN層之后將M輸入全連接層,然后輸入SoftMax計(jì)算分類的概率,SoftMax表達(dá)式為:
(6)
其中j=1,…,K,把含有任一實(shí)數(shù)的K維的x向量,壓縮到K維的y實(shí)向量中,將元素值約束在(0,1),且元素之和為1。
惡意樣例來源于XSSed數(shù)據(jù)庫以及滲透測試中經(jīng)過測試的攻擊載荷(Payload),經(jīng)過數(shù)據(jù)預(yù)處理得到42 321條標(biāo)準(zhǔn)數(shù)據(jù);正常樣例來源于 DMOZ 數(shù)據(jù)庫,經(jīng)過數(shù)據(jù)預(yù)處理得到76 523條標(biāo)準(zhǔn)數(shù)據(jù)。實(shí)驗(yàn)中,從樣本中以7∶3的比例隨機(jī)選取訓(xùn)練集和測試集。數(shù)據(jù)集的分布情況如表3所示。
表3 數(shù)據(jù)集分布Tab.3 Data set distribution
本文實(shí)驗(yàn)使用的計(jì)算機(jī)配置為:處理器 Intel?CoreTM i7-9700K CPU@3.60 GHz,內(nèi)存32GB,顯卡:GTX1080Ti,Ubuntu 18.04操作系統(tǒng)。實(shí)驗(yàn)環(huán)境為Python 3.8.3、Pytorch 1.6.0。
實(shí)驗(yàn)用來評估XSS攻擊檢測模型的指標(biāo)為:
準(zhǔn)確率(Accuracy),表示被正確預(yù)測出來的真正例和真負(fù)例樣本占總樣本的比例,其計(jì)算公式為:
(7)
召回率(Recall),表示正例樣本中被正確預(yù)測的概率,其計(jì)算公式為:
(8)
F1值,是召回率與精確率的一個(gè)調(diào)和均值,是對召回率與精確率的一個(gè)綜合評價(jià),其計(jì)算公式為:
(9)
以上公式中變量的含義表示如下:
TP(真正,True Positive):將實(shí)際上是正例的樣本預(yù)測為正樣本;
TN(真負(fù),True Negative):將實(shí)際上是負(fù)例的樣本預(yù)測為負(fù)樣本;
FP(假正,F(xiàn)alse Positive):將實(shí)際上是負(fù)例的樣本預(yù)測為正樣本;
FN(假負(fù),F(xiàn)alse Negative):將實(shí)際上是正例的樣本預(yù)測為負(fù)樣本。
2.3.1 向量維度
神經(jīng)網(wǎng)絡(luò)輸入向量的維度是固定的,而樣本的維度不一致,選擇一個(gè)合適的向量維度,才能充分利用樣本信息。若向量維度過短,會遺失大量有效信息,降低檢測準(zhǔn)確率;若向量維度過長,會大幅增加訓(xùn)練的時(shí)間,不能提高準(zhǔn)確率且降低檢測實(shí)時(shí)性。為了得到合適的向量維度,本文比較了不同向量維度對準(zhǔn)確率和訓(xùn)練時(shí)間的影響,結(jié)果如圖 5所示。
圖5 向量維度Fig.5 The vector dimension
實(shí)驗(yàn)結(jié)果表明,維度超過50時(shí)準(zhǔn)確率變化不太明顯,但是訓(xùn)練時(shí)間幾乎成倍增長,維度為100和50的準(zhǔn)確率能達(dá)到最優(yōu),但是維度為50的訓(xùn)練時(shí)間明顯低于維度超過50的訓(xùn)練時(shí)間,從而選擇50作為向量維度。
2.3.2 卷積核尺寸對模型性能的影響
為了研究不同卷積和窗口大小對模型的影響,以便于選出最合適的模型參數(shù),選取[2,3,4]、[3,4,5]、[4,5,6]和[5,6,7]進(jìn)行對比試驗(yàn),得到的結(jié)果如圖6所示。
圖6 卷積核尺寸對性能的影響Fig.6 Effect of convolution kernel size on performance
實(shí)驗(yàn)結(jié)果表明卷積核窗口大小為[3,4,5]時(shí)模型可以取得最佳的性能。窗口較小時(shí)可能由于特征捕獲不足導(dǎo)致性能低,而隨著窗口大小的增加,卷積操作的特征捕獲能力增強(qiáng),但是由于模型參數(shù)也會隨之增加,導(dǎo)致模型消耗更多的空間和時(shí)間,最終導(dǎo)致模型性能開始下降。
模型參數(shù)的設(shè)置會直接影響到模型的分類效果,本文中模型實(shí)驗(yàn)是結(jié)合文獻(xiàn)[10-12]中參數(shù)進(jìn)行參考,并根據(jù)實(shí)驗(yàn)進(jìn)行調(diào)整,本文最終選擇的BiLSTM和CNN的參數(shù)見表4和表5。
表5 CNN模型參數(shù)Tab.5 CNN model parameter
圖7展示了在當(dāng)前參數(shù)設(shè)置下訓(xùn)練階段Loss和ACC的變化。從圖7可以看出在模型準(zhǔn)確率在穩(wěn)步上升,同時(shí)損失也在逐步下降,二者逐步變化到最終收斂到一個(gè)穩(wěn)定值,這表明模型具有良好的檢測效果。
圖7 訓(xùn)練結(jié)果Fig.7 The results of training
為了驗(yàn)證模型的有效性和優(yōu)勢,本文設(shè)計(jì)了對比試驗(yàn):機(jī)器學(xué)習(xí)對比實(shí)驗(yàn);深度學(xué)習(xí)對比實(shí)驗(yàn)。
2.4.1 機(jī)器學(xué)習(xí)對比實(shí)驗(yàn)
為了驗(yàn)證BiLSTM-Attention-CNN模型的效果,分別選取SVM、ADTree、AdaBoost 3種機(jī)器學(xué)習(xí)算法進(jìn)行對比試驗(yàn)。SVM(支持向量機(jī))是一種按監(jiān)督學(xué)習(xí)方式對數(shù)據(jù)進(jìn)行二元分類的線性分類器;ADTree是一種基于Boosting的決策樹學(xué)習(xí)算法,它的分類性能要優(yōu)于其他決策樹;AdaBoost訓(xùn)練多個(gè)弱分類器,然后將弱分類器集合成一個(gè)強(qiáng)分類器。實(shí)驗(yàn)結(jié)果如表6所示,BiLSTM-Attention-CNN模型準(zhǔn)確率達(dá)到了99.70%,召回率為99.82%,F(xiàn)1值為99.59%,相比SVM、ADTree、AdaBoost 3種機(jī)器學(xué)習(xí)算法大幅提升了檢測效果。這是由于作為深度學(xué)習(xí)算法的BiLSTM-Attention-CNN模型可以自動的提取數(shù)據(jù)的特征并且通過多層的深度模型可以提取更深層次的特征。
表6 機(jī)器學(xué)習(xí)方法對比結(jié)果Tab.6 The result of comparing machine learning
2.4.2 深度學(xué)習(xí)對比試驗(yàn)
選取CNN、GRU、LSTM和BiLSTM單一深度學(xué)習(xí)模型,以及未引入Attention機(jī)制的BiLSTM-CNN模型進(jìn)一步對比,實(shí)驗(yàn)結(jié)果見表7、圖8??梢钥闯?,BiLSTM-Attention-CNN模型在準(zhǔn)確率、召回率、F1值均為最優(yōu),雖然準(zhǔn)確率方面提升較小,但召回率和F1值有較大的提升。這是因?yàn)槭紫韧ㄟ^使用BiLSTM捕獲較長的雙向依賴問題,再經(jīng)過Attention可以選擇相關(guān)性大的特征,獲取文本中的有效特征,能降低噪音特征干擾,從而進(jìn)一步提高分類的準(zhǔn)確率,最后通過使用CNN模型選取相關(guān)性大的特征中最優(yōu)的特征,所以BiLSTM-Attention-CNN模型在召回率以及F1值方面有進(jìn)一步提升。
表7 深度學(xué)習(xí)方法結(jié)果對比Tab.7 The result of comparing deep learning
因?yàn)樯疃葘W(xué)習(xí)模型通常都會比較耗時(shí),堆疊模型更是在提高檢測精度的同時(shí)會增加收斂時(shí)間,所以本文對上述深度學(xué)習(xí)模型進(jìn)行收斂時(shí)間的對比,對比結(jié)果見圖8。
圖8 深度學(xué)習(xí)對比結(jié)果Fig.8 The result of comparing deep learning
通過圖8可以看出,CNN收斂時(shí)間最短,GRU、LSTM和BiLSTM收斂時(shí)間逐步增加,BiLSTM-CNN模型收斂時(shí)間最長。引入Attention機(jī)制的BiLSTM-Attention-CNN模型在保證檢測精度的同時(shí)相比較BiLSTM-CNN減少了5.1%的收斂時(shí)間。得益于Attention機(jī)制的引入,可以選擇相關(guān)性高的特征,增加對關(guān)鍵信息的選取減少對噪音特征的注意,所以能夠在保證檢測精度的同時(shí)減少收斂時(shí)間。
綜上所述,BiLSTM-Attention-CNN模型在一定程度上能夠有效的提取XSS中的全局和局部最優(yōu)的特征,并且通過引入注意力機(jī)制,對不同的特征分配權(quán)重選取XSS中的有效特征,能降低噪音特征對模型的干擾,從而進(jìn)一步提高分類的準(zhǔn)確率并減少訓(xùn)練的時(shí)間。
本文通過首先對數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗、分詞,再使用word2vec進(jìn)行向量化。然后引入Attention機(jī)制,結(jié)合BiLSTM和CNN進(jìn)行XSS檢測。通過利用BiLSTM對雙向時(shí)序信息和長期依賴的處理以及Attention機(jī)制對不同數(shù)據(jù)分配不同權(quán)重,增加對關(guān)鍵信息的選取、減少對噪音特征的注意。最后通過使用CNN模型進(jìn)一步選取相關(guān)性大的特征中有助于XSS檢測的最優(yōu)特征。實(shí)驗(yàn)表明,本文提出的BiLSTM-Attention-CNN模型相比SVM、ADTree、AdaBoost三種機(jī)器學(xué)習(xí)算法在準(zhǔn)確率方面提高了9.45%、7.9%和5.58%。對比深度學(xué)習(xí)模型,如CNN、GRU、LSTM等,也有較大的提升;相比未引入Attention機(jī)制的BiLSTM-CNN模型,BiLSTM-Attention-CNN模型在保證檢測精度的同時(shí)縮短了5.1%的收斂時(shí)間。
本文只是使用BiLSTM-Attention-CNN模型針對 XSS 一種漏洞攻擊進(jìn)行檢測,后期將研究該模型在SQL 注入、緩沖區(qū)溢出、跨站請求偽造等多種 Web 漏洞檢測以及漏洞挖掘方面的適用性。