国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度學(xué)習(xí)的Webshell檢測(cè)*

2022-06-23 03:10車生兵張光琳
關(guān)鍵詞:詞匯表特征提取向量

車生兵,張光琳

(中南林業(yè)科技大學(xué)計(jì)算機(jī)與信息工程學(xué)院,湖南 長(zhǎng)沙 410004)

1 引言

AWD(Attack with Defence)是一種將解題與攻防2種模式相結(jié)合的CTF(Capture The Flag)賽制。該模式具有攻防兼?zhèn)涞奶攸c(diǎn),參賽隊(duì)利用其它隊(duì)伍漏洞獲取分?jǐn)?shù)的同時(shí)還需要修補(bǔ)自己的環(huán)境漏洞。該賽制下隊(duì)伍得分多者獲勝,投入大量時(shí)間在攻擊部分成了最優(yōu)選,防御部分僅使用一些傳統(tǒng)檢測(cè)工具草草了事,并且傳統(tǒng)檢測(cè)工具對(duì)經(jīng)過混淆變形后的Webshell檢測(cè)效率并不理想。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,其在越來越多的領(lǐng)域得到應(yīng)用。本文將深度學(xué)習(xí)與Webshell檢測(cè)相結(jié)合,基于AWD比賽環(huán)境的背景研究檢測(cè)結(jié)果最優(yōu)時(shí)的檢測(cè)模型和特征提取方法。

2 研究現(xiàn)狀

當(dāng)前Webshell檢測(cè)工作多從流量檢測(cè)、文件檢測(cè)和日志檢測(cè)3方面入手。基于流量檢測(cè)的方法,可能會(huì)錯(cuò)誤攔截主辦方用于檢測(cè)隊(duì)伍環(huán)境的數(shù)據(jù)包,導(dǎo)致隊(duì)伍被誤以為處于宕機(jī)狀態(tài),從而扣除分?jǐn)?shù)?;谌罩镜臋z測(cè)方法存在響應(yīng)時(shí)間過長(zhǎng)的問題。因此,本文選用基于文件的方法進(jìn)行Webshell的檢測(cè)研究。

近年來基于機(jī)器學(xué)習(xí)的檢測(cè)方法流行起來。Sun等[1]提出了基于矩陣分解的分類檢測(cè)模型;朱魏魏等[2]提出了NN-SVM(Nearest Neighbor Support Vector Machine)檢測(cè)模型;胡建康等[3]提出了結(jié)合Boosting算法的決策樹分類檢測(cè)方法;易楠等[4]提出了基于語義的檢測(cè)方法。上述基于機(jī)器學(xué)習(xí)的檢測(cè)方法確實(shí)提高了Webshell的檢測(cè)效率,但是其研究工作多在代碼文本層面開展,對(duì)混淆后的Webshell檢測(cè)結(jié)果并不理想。于是基于Opcode操作碼的文件檢測(cè)研究成為了研究人員新的關(guān)注方向。胥小波等[5]通過PHP(Hypertext Preprocessor)編譯工具提取PHP樣本源碼的Opcode操作碼,并使用詞頻與逆向文件頻率TF-IDF(Term Frequency-Inverse Document Frequency)對(duì)Opcode操作碼進(jìn)行處理獲取向量特征,最后結(jié)合多層感知機(jī)MLP(MultiLayer Perceptron)進(jìn)行檢測(cè)研究,檢測(cè)結(jié)果較為理想。同時(shí)期Guo等[6]也驗(yàn)證了PHP操作碼和TF-IDF特征提取模型的可行性。傅建明等[7]提出了使用操作碼和詞匯表的特征提取方法。張涵等[8,9]提出了利用word2vec與Opcode相結(jié)合提取特征的方法,分別使用多層感知機(jī)和卷積神經(jīng)網(wǎng)絡(luò)檢測(cè),效果更好。Lü等[10]對(duì)Webshell檢測(cè)卷積網(wǎng)絡(luò)中各超參數(shù)進(jìn)行了對(duì)比實(shí)驗(yàn)。周龍等[11]通過TF-IDF提取詞頻矩陣,使用LSTM(Long Short-Term Memory)進(jìn)行檢測(cè),驗(yàn)證了循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Neural Network)檢測(cè)的可行性。

為了探究AWD背景下的Webshell檢測(cè)問題,在已有研究成果的基礎(chǔ)上,本文主要做了如下工作:

(1)根據(jù)實(shí)際參賽經(jīng)驗(yàn),對(duì)隨機(jī)獲取的Webshell樣本進(jìn)行了長(zhǎng)度處理,使其在本文特定背景下更具有針對(duì)性。

(2)由于實(shí)驗(yàn)環(huán)境因素的差異性,不同研究人員的方法及其實(shí)驗(yàn)結(jié)果并不能直接用來進(jìn)行對(duì)比。本文針對(duì)具體應(yīng)用背景,使用特定數(shù)據(jù)集,將現(xiàn)有模型在同環(huán)境下進(jìn)行對(duì)照實(shí)驗(yàn),尋找檢測(cè)結(jié)果最好、效率最高的Webshell檢測(cè)模型和特征提取方法,并對(duì)模型進(jìn)行了優(yōu)化。

(3)考慮到攻擊代碼有著全局稀疏、局部緊密的特點(diǎn),本文使用了雙卷積結(jié)構(gòu),并將卷積核模板的高度分別設(shè)計(jì)為3,4和5,而且攻擊向量垂直方向關(guān)聯(lián)特征明顯,水平方向相對(duì)穩(wěn)定,考慮到特征向量在傳遞過程中規(guī)模會(huì)減小,增加了補(bǔ)零選項(xiàng)。

(4)經(jīng)過大量實(shí)驗(yàn)發(fā)現(xiàn),深度學(xué)習(xí)訓(xùn)練算法Adam對(duì)AWD攻擊向量的訓(xùn)練不太適應(yīng),本文對(duì)其進(jìn)行了改進(jìn)。

(5)探索了雙卷積和GRU(Gate Recurrent Unit)相結(jié)合的檢測(cè)模型。實(shí)驗(yàn)結(jié)果顯示,基于詞匯表的雙卷積GRU模型最終檢測(cè)精確率為98.7%,基于word2vec的雙卷積GRU模型最終檢測(cè)準(zhǔn)確率為98.8%,并且訓(xùn)練曲線收斂得更快更平滑。驗(yàn)證了該模型在檢測(cè)中的有效性和可行性。

3 相關(guān)工作

3.1 Webshell樣本獲取及精簡(jiǎn)

本文的數(shù)據(jù)集通過GitHub上的開源收集項(xiàng)目獲取,合計(jì)收集惡意樣本代碼文件1 805個(gè),白樣本為用于PHP應(yīng)用開發(fā)的常用開源框架,合計(jì)4 137個(gè)。編寫批量Opcode處理腳本程序?qū)⑺蠵HP文件轉(zhuǎn)換為Opcode。在比賽中“小馬”由于其體積小、更容易修改的特點(diǎn),成為比賽隊(duì)伍常用的攻擊手段。因此,本文僅保留Opcode個(gè)數(shù)在0~1 000的樣本,這對(duì)檢測(cè)“大馬”影響較小,且不影響對(duì)“小馬”和“一句話木馬”的檢測(cè)。

3.2 Opcode可行性分析

圖1a為混淆后的Webshell文本代碼。變形后的代碼中已經(jīng)看不到可理解的函數(shù)名,只有重復(fù)的無意義的函數(shù)名,這表示屬性描述中多數(shù)特征已無法再作為檢測(cè)的標(biāo)準(zhǔn),如敏感eval、exec函數(shù)調(diào)用、系統(tǒng)函數(shù)調(diào)用數(shù)量和各種操作等?;谏鲜鲈颍煜冃魏蟮拇a會(huì)對(duì)輸入特征值產(chǎn)生較大影響,導(dǎo)致算法識(shí)別率下降。

Figure 1 Obfuscated code and Opcode after conversion圖1 混淆后的文本代碼和轉(zhuǎn)換后的Opcode操作碼

將圖1a中的文本代碼轉(zhuǎn)換為Opcode操作碼后的內(nèi)容如圖1b所示,可以發(fā)現(xiàn)混淆變形Webshell文本代碼的Opcode操作碼仍可以正常獲取,并且操作碼可以看作包含時(shí)序的特征值,編譯后獲取的操作碼序列也沒有其他因素的干擾,如注釋等。該種特征提取方式能克服惡意文件加密混淆偽裝后不能被正確識(shí)別的缺點(diǎn),不含噪聲,提高了數(shù)據(jù)質(zhì)量,有利于后續(xù)的檢測(cè)工作。

3.3 Opcode特征提取方案

3.3.1 利用N-gram和TF-IDF提取Opcode特征

N-gram和TF-IDF方法在本文實(shí)驗(yàn)對(duì)照組中。

N-gram方法將相鄰的Opcode劃分為一個(gè)詞組單元,并使用詞頻向量表示單個(gè)樣本。針對(duì)Opcode序列性強(qiáng)、上下文聯(lián)系密切的特點(diǎn),將4個(gè)以內(nèi)的相鄰Opcode劃分到一個(gè)詞組中,以此來生成詞頻向量。該方式會(huì)產(chǎn)生數(shù)量巨大的操作碼詞組,因此需要進(jìn)行精簡(jiǎn)。本文去掉頻率低于 10% 的詞組,去掉頻率等于 100%的詞組,將剩下的操作碼詞組作為詞頻矩陣。

詞頻與逆向文件頻率TF-IDF是自然語言處理領(lǐng)域的另外一種常用的特征提取方法。該方法認(rèn)為詞在當(dāng)前文檔的重要性同時(shí)被其在當(dāng)前文檔中出現(xiàn)的頻率和其在語料庫(kù)中出現(xiàn)的頻率所影響。

3.3.2 利用詞匯表提取Webshell特征

詞匯表方法在本文的實(shí)驗(yàn)對(duì)照組中。詞匯表方法生成的向量保留了句子的詞序特征,該特征能更好地學(xué)習(xí)到Opcode操作碼的序列信息,因此本文決定同時(shí)采用詞匯表方法提取Opcode操作碼的特征向量并進(jìn)行檢測(cè)實(shí)驗(yàn)。

首先,提取所有Opcode樣本的詞袋,詞袋中詞的數(shù)量N為166;然后,利用詞袋將每一個(gè)Opcode表示成一個(gè)向量,向量長(zhǎng)度為所選取的最大文檔長(zhǎng)度。由于樣本中Opcode最長(zhǎng)為1 000,此處最大文檔長(zhǎng)度也為1 000。

3.3.3 利用word2vec詞向量提取Webshell特征

word2vec在本文的實(shí)驗(yàn)對(duì)照組中。使用Gensim開源工具包訓(xùn)練word2vec詞向量的功能。本文中word2vec方法中模型的訓(xùn)練設(shè)置如下:詞向量維度為100,窗口大小設(shè)置為10,最小詞頻為10,迭代訓(xùn)練次數(shù)為 100 次,采用CBOW(Continuous Bag of Words)模型進(jìn)行訓(xùn)練。通過TSNE(T-distributed Stochastic Neighbor Embedding)算法將生成的詞向量降至2維,并進(jìn)行可視化,結(jié)果如圖2所示。從圖2中可以看到,Opcode表現(xiàn)出分布的特點(diǎn),即通過詞向量可以明顯區(qū)分功能不同的Opcode,這也表明了使用Opcode進(jìn)行檢測(cè)的可行性。

Figure 2 Dimension reduction visualization of word vector by TSNE圖2 TSNE詞向量降維可視化

3.4 深度學(xué)習(xí)實(shí)驗(yàn)?zāi)P驮O(shè)計(jì)

3.4.1 多層感知機(jī)模型設(shè)計(jì)

多層感知機(jī)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,2個(gè)隱藏層分別包含5個(gè)節(jié)點(diǎn)和2個(gè)節(jié)點(diǎn),選擇隨機(jī)梯度下降算法對(duì)各節(jié)點(diǎn)權(quán)值進(jìn)行調(diào)整,輸出層選擇Sigmoid作為激活函數(shù),其它層選擇ReLU函數(shù)。

Figure 3 Structure of multilayer perceptron 圖3 多層感知機(jī)結(jié)構(gòu)

3.4.2 卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)

文本分類中常用的經(jīng)典一維卷積處理模型TextCNN如圖4所示[12],Webshell檢測(cè)也屬于文本二分類問題,所以本文采用該模型進(jìn)行Webshell檢測(cè)。

Figure 4 Structure of TextCNN圖4 TextCNN結(jié)構(gòu)圖

在超空間利用模糊C均值聚類分析發(fā)現(xiàn)了攻擊向量全局稀疏、局部緊密的特點(diǎn),本文在使用經(jīng)典模型作為實(shí)驗(yàn)對(duì)照的同時(shí),考慮到文本的稀疏性,還對(duì)經(jīng)典模型進(jìn)行了改進(jìn),添加了雙卷積層,如圖5所示。由于一次攻擊與相鄰的2~4次操作緊密相關(guān),卷積核模板的高度分別設(shè)計(jì)為3,4和5,而且攻擊向量垂直方向關(guān)聯(lián)特征明顯,水平方向相對(duì)穩(wěn)定,考慮到特征向量在傳遞過程中規(guī)模會(huì)減小,增加了補(bǔ)零選項(xiàng)。

Figure 5 Double convolution model圖5 雙卷積模型

調(diào)參工作選用本文改進(jìn)后的Adam算法[13]。經(jīng)過大量實(shí)驗(yàn)發(fā)現(xiàn),深度學(xué)習(xí)訓(xùn)練算法Adam對(duì)AWD攻擊向量的訓(xùn)練不太適應(yīng),本文把學(xué)習(xí)率learning_rate修改為0.000 2,矩估計(jì)的指數(shù)衰減率參數(shù)beta1修改為0.5,程序中的變量epsilon_t修改為epsilon,不但消除了訓(xùn)練的Loss曲線中的鋸齒,還使得訓(xùn)練曲線按照指數(shù)規(guī)律下降,迅速得到了需要的訓(xùn)練結(jié)果,且在測(cè)試數(shù)據(jù)集上的分類成功率很高,優(yōu)于同類算法的分類結(jié)果。Adam算法隨機(jī)變量修正值快速計(jì)算公式證明在附錄中給出。

3.4.3 循環(huán)神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)

LSTM是一種效果比較好的遞歸神經(jīng)網(wǎng)絡(luò),能夠很好地解決長(zhǎng)記憶時(shí)間序列問題[14,15]。GRU是LSTM網(wǎng)絡(luò)的一種變體結(jié)構(gòu),比LSTM更加簡(jiǎn)單,且訓(xùn)練效果也很好。通常來說,GRU和LSTM在很多任務(wù)上不分伯仲,GRU參數(shù)少更容易收斂,但當(dāng)數(shù)據(jù)樣本很大時(shí)LSTM表現(xiàn)性能更好。本文設(shè)計(jì)2種模型結(jié)構(gòu)進(jìn)行LSTM和GRU檢測(cè)性能對(duì)比。調(diào)參工作選用本文改進(jìn)后的Adam算法,設(shè)置Dropout=0.5。在RNN中分別使用LSTM單元和GRU單元進(jìn)行對(duì)比,如圖6所示。

Figure 6 RNN network model圖6 RNN網(wǎng)絡(luò)實(shí)驗(yàn)?zāi)P?/p>

4 綜合實(shí)驗(yàn)設(shè)計(jì)與對(duì)比

4.1 評(píng)價(jià)指標(biāo)

為了準(zhǔn)確對(duì)比各檢測(cè)方法的性能,本文使用4種指標(biāo)度量各方法的性能:精確率(Precision)、準(zhǔn)確率(Accuracy)、召回率(Recall)和F1(F1-sore)指標(biāo)。

4.2 初步實(shí)驗(yàn)結(jié)果

(1)多層感知機(jī)實(shí)驗(yàn)。

分析4種特征提取方法在MLP中的實(shí)驗(yàn)結(jié)果。4種對(duì)應(yīng)的檢測(cè)方法如下所示:

①特征提取使用詞袋和TF-IDF,基于MLP進(jìn)行的分類檢測(cè)。

②特征提取使用詞匯表,基于MLP進(jìn)行的分類檢測(cè)。

③特征提取使用N-gram,基于MLP進(jìn)行的分類檢測(cè)。

④特征提取使用word2vec,基于MLP進(jìn)行的分類檢測(cè)。

上述方法中的一些參數(shù)設(shè)置如下:

詞袋+TF-IDF:通過對(duì)比實(shí)驗(yàn)可知,使用4-gram、最大特征數(shù)為100時(shí)檢測(cè)結(jié)果最好。

N-gram:通過對(duì)比實(shí)驗(yàn)可知,使用4-gram、最大特征數(shù)為100時(shí)檢測(cè)結(jié)果最好。

詞匯表:通過對(duì)比實(shí)驗(yàn)可知,最大文本長(zhǎng)度為100時(shí)檢測(cè)結(jié)果最好。

word2vec:通過對(duì)比實(shí)驗(yàn)可知,詞向量維度為100、最大文本長(zhǎng)度為500時(shí)檢測(cè)結(jié)果最好。

實(shí)驗(yàn)結(jié)果如表1所示。從表1中可以看出,多層感知機(jī)模型的檢測(cè)結(jié)果不理想,比不上其他深度學(xué)習(xí)模型的檢測(cè)結(jié)果(其他深度學(xué)習(xí)模型檢測(cè)結(jié)果見后文)。因此,本文不再考慮多層感知機(jī)模型。

Table 1 MLP check results

(2)卷積對(duì)照實(shí)驗(yàn)。

分析不同特征提取方法在TextCNN模型和雙卷積模型中的實(shí)驗(yàn)結(jié)果。對(duì)照檢測(cè)方法如下所示:

①特征提取使用N-gram,基于TextCNN模型進(jìn)行的分類檢測(cè)。

②特征提取使用詞匯表,基于TextCNN模型進(jìn)行的分類檢測(cè)。

③特征提取使用word2vec,基于TextCNN模型進(jìn)行的分類檢測(cè)。

④特征提取使用N-gram,基于雙層卷積模型進(jìn)行的分類檢測(cè)。

⑤特征提取使用詞匯表,基于雙層卷積模型進(jìn)行的分類檢測(cè)。

⑥特征提取使用word2vec,基于雙層卷積模型進(jìn)行的分類檢測(cè)。

上述方法中的一些參數(shù)設(shè)置如下:

N-gram:通過對(duì)比實(shí)驗(yàn)可知,使用4-gram、最大特征數(shù)為20時(shí)檢測(cè)結(jié)果最好。

習(xí)近平在北京師范大學(xué)師生代表座談時(shí)指出辦好教育事業(yè)的任務(wù)艱巨性[13],我國(guó)教育事業(yè)所面臨的問題與挑戰(zhàn),構(gòu)成了教育體制機(jī)制改革階段的基本特征。在習(xí)近平主持召開的中央全面深化改革領(lǐng)導(dǎo)小組第三十五次會(huì)議上,《關(guān)于深化教育體制機(jī)制改革的意見》獲得審議通過,明確提出要“統(tǒng)籌推進(jìn)育人方式、辦學(xué)模式、管理體制、保障機(jī)制改革”[14],進(jìn)一步明確了深化教育體制機(jī)制改革的目標(biāo)、要求和任務(wù)。

詞匯表:通過對(duì)比實(shí)驗(yàn)可知,最大文本長(zhǎng)度為1 000時(shí)檢測(cè)結(jié)果最好。

word2vec:通過對(duì)比實(shí)驗(yàn)可知,詞向量維度為100、最大文本長(zhǎng)度為500時(shí)檢測(cè)結(jié)果最好。

實(shí)驗(yàn)結(jié)果如表2所示,訓(xùn)練階段損失下降情況如圖7所示。從提取樣本特征方法來看,使用詞匯表和word2vec的方法在卷積網(wǎng)絡(luò)中都表現(xiàn)出不錯(cuò)的檢測(cè)效果,N-gram特征提取方法的檢測(cè)結(jié)果不太理想。從Loss曲線收斂情況可以看出,使用詞匯表和word2vec檢測(cè)方法的曲線收斂較快,說明包含了全局時(shí)序特征的樣本輸入能讓卷積網(wǎng)絡(luò)獲得更好的學(xué)習(xí)能力。N-gram損失了全局時(shí)序特征,僅保留一定的局部時(shí)序特征,因此檢測(cè)結(jié)果不理想。從模型的角度來看,3種不同的特征提取方法在雙層卷積模型中的檢測(cè)效果都得到了提升。

(3)RNN對(duì)照實(shí)驗(yàn)。

分析3種特征提取方法在LSTM和GRU中的實(shí)驗(yàn)結(jié)果。對(duì)照檢測(cè)方法如下所示:

①特征提取使用N-gram,基于LSTM進(jìn)行的分類檢測(cè)。

Table 2 Convolutional network check results

Figure 7 Loss curve of convolution group in the training phase圖7 卷積組訓(xùn)練階段Loss曲線

②特征提取使用詞匯表,基于LSTM進(jìn)行的分類檢測(cè)。

④特征提取使用N-gram,基于GRU進(jìn)行的分類檢測(cè)。

⑤特征提取使用詞匯表,基于GRU進(jìn)行的分類檢測(cè)。

⑥特征提取使用word2vec,基于GRU進(jìn)行的分類檢測(cè)。

上述方法中的一些參數(shù)設(shè)置如下:

N-gram:通過對(duì)比實(shí)驗(yàn)可知,使用4-gram、最大特征數(shù)為20時(shí)檢測(cè)結(jié)果最好。

詞匯表:通過對(duì)比實(shí)驗(yàn)可知,最大文本長(zhǎng)度為1 000時(shí)檢測(cè)結(jié)果最好。

word2vec:通過對(duì)比實(shí)驗(yàn)可知,最大文本長(zhǎng)度為500、詞向量維度為100時(shí)在LSTM模型中檢測(cè)結(jié)果最好,詞向量維度為1 000時(shí)在GRU中檢測(cè)結(jié)果最好。

實(shí)驗(yàn)結(jié)果如表3所示。訓(xùn)練階段損失下降情況如圖8所示。從提取樣本特征方法來看,使用包含了全局時(shí)序特征的詞匯表和word2vec的方法檢測(cè)結(jié)果較好,使用N-gram的檢測(cè)結(jié)果不太理想。由圖8可以看出,使用word2vec檢測(cè)方法的曲線收斂最快最好;使用詞匯表檢測(cè)方法的曲線前期波動(dòng)較為明顯,雖然最后檢測(cè)結(jié)果不錯(cuò),但是學(xué)習(xí)效率不如使用word2vec的;相比使用詞匯表方法,使用N-gram的方法能更快地收斂,但實(shí)際識(shí)別效果很差,出現(xiàn)了過擬合的問題。從模型的角度來看,GRU和LSTM以詞匯表作為特征提取方法時(shí),GRU收斂得更快更好,效率更高。從表3中也可以看出,針對(duì)小樣本時(shí),GRU的檢測(cè)結(jié)果比LSTM的稍好一些。

Table 3 RNN check results

Figure 8 Loss curve of RNN in the training phase圖8 RNN組訓(xùn)練階段Loss曲線

4.3 雙卷積GRU模型實(shí)驗(yàn)結(jié)果

從初步的實(shí)驗(yàn)結(jié)果分析可知,雙卷積模型收斂快且平滑,但是以詞匯表作為特征提取方法時(shí)檢測(cè)結(jié)果不如GRU模型的;GRU綜合檢測(cè)結(jié)果比雙卷積模型要好,但是以詞匯表作為特征提取方法時(shí)Loss曲線收斂較慢,波動(dòng)較大。因此,本文整合其優(yōu)點(diǎn),提出雙卷積GRU模型,期望得到進(jìn)一步優(yōu)化。雙卷積GRU模型結(jié)構(gòu)如圖9所示,設(shè)計(jì)對(duì)照組檢測(cè)方法驗(yàn)證3種特征提取方法在雙卷積GRU中的檢測(cè)結(jié)果。采取的3組檢測(cè)方法分別是:

Figure 9 Double convolution GRU model圖9 雙卷積GRU模型

(1)特征提取使用N-gram,基于雙卷積GRU進(jìn)行的分類檢測(cè)。

(2)特征提取使用詞匯表,基于雙卷積GRU進(jìn)行的分類檢測(cè)。

(3)特征提取使用word2vec,基于雙卷積GRU進(jìn)行的分類檢測(cè)。

上述方法中的一些參數(shù)設(shè)置如下:

N-gram:通過對(duì)比實(shí)驗(yàn)可知,使用4-gram、最大特征數(shù)為20時(shí)檢測(cè)結(jié)果最好。

詞匯表:通過對(duì)比實(shí)驗(yàn)可知,最大文本長(zhǎng)度為1 000時(shí)檢測(cè)結(jié)果最好。

word2vec:通過對(duì)比實(shí)驗(yàn)可知,詞向量維度為100、最大文本長(zhǎng)度為500時(shí)檢測(cè)結(jié)果最好。

將雙卷積層GRU模型的檢測(cè)結(jié)果與卷積對(duì)照組和RNN對(duì)照組中表現(xiàn)最好的雙卷積模型和GRU模型的檢測(cè)進(jìn)行對(duì)比。雙卷積層GRU模型訓(xùn)練階段損失下降情況如圖10所示,綜合損失下降對(duì)比情況如圖11所示,綜合檢測(cè)結(jié)果對(duì)比如表4所示。

Figure 10 Loss curve of double convolution GRU model圖10 雙層卷積GRU Loss曲線

Figure 11 Comprehensive comparison of Loss curve based on vocabulary and word2vec圖11 基于詞匯表和word2vec的Loss曲線綜合對(duì)比

Table 4 Comprehensive comparison

從檢測(cè)結(jié)果來看,基于詞匯表和word2vec的特征提取方法在3種模型中都有很好的表現(xiàn)。使用詞匯表特征提取方法的雙卷積GRU模型檢測(cè)結(jié)果最好,其精確率為0.987,是所有模型中最高的,F(xiàn)1值為0.983,也是所有模型中最高的。使用word2vec特征提取方法的雙卷積GRU模型檢測(cè)結(jié)果最好,其準(zhǔn)確率為0.988,是所有模型中最高的,召回率為0.982,也是所有模型中最高的。從收斂曲線來看:當(dāng)使用詞匯表特征提取方法時(shí),雙卷積GRU模型的曲線收斂得最好(圖11a中②號(hào)曲線),GRU模型曲線收斂最慢(圖11a中③號(hào)曲線);當(dāng)使用word2vec特征提取方法時(shí),雙卷積GRU模型和雙卷積模型的曲線均收斂很好(圖11b中①和②號(hào)曲線),GRU模型收斂最慢(圖11b中③號(hào)曲線)。

通過以上分析可知,雙卷積GRU模型成功結(jié)合了GRU模型和雙卷積模型的優(yōu)點(diǎn),在訓(xùn)練效率和檢測(cè)結(jié)果上都達(dá)到了最優(yōu),驗(yàn)證了該模型的可行性。因此,在后續(xù)應(yīng)用工作中將采取詞匯表或word2vec的特征提取方法,同時(shí)結(jié)合雙卷積GRU模型進(jìn)行檢測(cè)工作。

5 結(jié)束語

本文基于AWD攻防競(jìng)賽背景進(jìn)行了PHP Webshell的檢測(cè)研究。為了適應(yīng)比賽背景,對(duì)Opcode數(shù)據(jù)集的長(zhǎng)度進(jìn)行了處理,使用特定的數(shù)據(jù)集,將現(xiàn)有模型在同環(huán)境下進(jìn)行了對(duì)照實(shí)驗(yàn),并對(duì)模型進(jìn)行了優(yōu)化?;谠摫尘暗臄?shù)據(jù)集,優(yōu)化了Adam算法提高了訓(xùn)練效率。通過詞袋、TF-IDF、N-gram、詞匯表和word2vec等方法提取特征,與深度學(xué)習(xí)多層感知機(jī)網(wǎng)絡(luò)MLP、卷積神經(jīng)網(wǎng)絡(luò)CNN和循環(huán)神經(jīng)網(wǎng)絡(luò)RNN相結(jié)合,設(shè)置對(duì)照實(shí)驗(yàn)。在特征提取方法上,實(shí)驗(yàn)結(jié)果表明基于包含全局時(shí)序特征的詞匯表和word2vec在CNN和RNN神經(jīng)網(wǎng)絡(luò)中的檢測(cè)性能更好。雙卷積層模型檢測(cè)效果優(yōu)于單卷積層模型,GRU模型相比LSTM模型訓(xùn)練效率更高。雙層卷積GRU模型成功地結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)和GRU網(wǎng)絡(luò)的優(yōu)點(diǎn),成為本次研究中的最優(yōu)模型。實(shí)驗(yàn)結(jié)果顯示,基于詞匯表的雙層卷積GRU模型最終檢測(cè)精確率達(dá)到98.7%,基于word2vec的雙層卷積GRU模型最終檢測(cè)準(zhǔn)確率達(dá)到98.8%,驗(yàn)證了該模型在檢測(cè)中的有效性和可行性。

附錄AAdam算法隨機(jī)變量修正值快速計(jì)算公式
的證明

證明

根據(jù)Adam算法給出的θt計(jì)算公式,有:

猜你喜歡
詞匯表特征提取向量
向量的分解
聚焦“向量與三角”創(chuàng)新題
Peritoneal dissemination of pancreatic cancer caused by endoscopic ultrasound-guided fine needle aspiration: A case report and literature review
空間目標(biāo)的ISAR成像及輪廓特征提取
基于Gazebo仿真環(huán)境的ORB特征提取與比對(duì)的研究
基于特征提取的繪本閱讀機(jī)器人設(shè)計(jì)方案
基于Daubechies(dbN)的飛行器音頻特征提取
向量垂直在解析幾何中的應(yīng)用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
詞匯表