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

?

Attention-CNN 在惡意代碼檢測中的應(yīng)用研究

2021-04-11 12:49程琪芩孫志強(qiáng)
計(jì)算機(jī)與生活 2021年4期
關(guān)鍵詞:二進(jìn)制灰度卷積

馬 丹,萬 良+,程琪芩,孫志強(qiáng)

1.貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽 550025

2.貴州大學(xué)計(jì)算機(jī)軟件與理論研究所,貴陽 550025

瑞星2019 年上半年中國網(wǎng)絡(luò)安全報(bào)告[1]指出,2019 年上半年共截獲病毒樣本為1.03 億個,病毒累計(jì)感染次數(shù)4.38 億次,病毒總體數(shù)量比2018 年同期上漲32.69%。所有惡意代碼攻擊中,針對Windows系統(tǒng)的攻擊已經(jīng)超過了67%。此外,病毒種類隨著各種技術(shù)的進(jìn)步而大幅度增長。

為了檢測各種層出不窮的惡意代碼,反病毒研究者需要不斷獲取并了解惡意代碼的相關(guān)行為,主要通過人工分析揭示惡意代碼的具體函數(shù)以達(dá)到解除該病毒的目的[2-3],但是這種不經(jīng)過前期處理直接分析惡意代碼是一個比較耗時的工程。傳統(tǒng)方法是從惡意代碼的反匯編指令中生成特征向量、控制流圖并比較[4-6],但是這種比較對象僅是惡意代碼的代碼部分,對打包樣本或重要的攻擊行為隱藏在數(shù)據(jù)部分的惡意代碼是無效的。

為了同時檢測到惡意代碼數(shù)據(jù)部分和代碼部分的攻擊行為,Nataraj 等人[7]將有標(biāo)簽的惡意代碼轉(zhuǎn)化為灰度圖,并利用k近鄰算法對未標(biāo)記的惡意代碼樣本進(jìn)行分類,這種方法即使在惡意代碼是混淆的情況下也能夠得到較高的準(zhǔn)確率,但是該方法最終通過GIST(generalized search trees)算法提取圖片紋理特征,而該算法復(fù)雜度高,導(dǎo)致提取特征的效率不高。Ahmadi 等人[8]在Nataraj 等人[7]的基礎(chǔ)上提出多特征梯度增強(qiáng)算法對惡意代碼進(jìn)行分類,該方法有效地提高了包括壓縮樣本在內(nèi)的惡意代碼分類精度,但是用傳統(tǒng)機(jī)器學(xué)習(xí)方法難以提取高維度的特征,導(dǎo)致檢測效果不明顯。

卷積神經(jīng)網(wǎng)絡(luò)在圖像[9]、自然語言處理[10]、文本處理[11]等領(lǐng)域得到迅速發(fā)展,由于它能自動學(xué)習(xí)輸入數(shù)據(jù)特征而無需人工參與,于是網(wǎng)絡(luò)安全研究者們將神經(jīng)網(wǎng)絡(luò)引入到網(wǎng)絡(luò)安全的各個領(lǐng)域。龍廷艷等人[12]利用自編碼網(wǎng)絡(luò)對惡意代碼進(jìn)行檢測,這種方法能夠比傳統(tǒng)機(jī)器學(xué)習(xí)方法(隨機(jī)森林、支持向量機(jī)(support vector machine,SVM))得到較好的檢測效果,但是也存在無法檢測混淆惡意代碼的問題。Cui等人[13]采用了蝙蝠算法(bat algorithm,BA)解決了惡意代碼家族樣本數(shù)量不均勻?qū)е碌倪^擬合問題,并結(jié)合卷積神經(jīng)網(wǎng)絡(luò)對Nataraj 等人[7]提出的方案進(jìn)行了改進(jìn),這種方法一定程度上檢測出混淆惡意代碼并得到較高的準(zhǔn)確率。事實(shí)證明將惡意代碼轉(zhuǎn)化為灰度圖后用深度學(xué)習(xí)的方法提取特征比使用機(jī)器學(xué)習(xí)方法得到更高的準(zhǔn)確率[14-15]。

雖然將惡意代碼轉(zhuǎn)化為灰度圖后,用深度學(xué)習(xí)的方法對惡意代碼進(jìn)行檢測或分類都能得到很好的檢測效果,同時還能在一定程度上檢測到混淆代碼,但是這樣的方法也存在一定的缺陷,將惡意代碼轉(zhuǎn)化為灰度圖已失去原有的可解釋性,不能解釋惡意代碼存在哪些惡意行為。而注意力機(jī)制能夠?qū)⒕W(wǎng)絡(luò)中間層的特征賦予相應(yīng)的權(quán)重并可視化[16],本文提出Attention-CNN 模型,在將惡意代碼分類的同時得到注意力圖,該注意力圖能夠?qū)阂獯a的特殊區(qū)域進(jìn)行強(qiáng)調(diào),以便利用得到的注意力圖進(jìn)行下一步分析,找到惡意代碼存在的惡意行為,保證在良好的檢測效率下得到惡意代碼中的行為。

本文的工作如下:

(1)將注意力機(jī)制結(jié)合卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于惡意代碼檢測方向,構(gòu)建網(wǎng)絡(luò)模型Attention-CNN,對惡意代碼進(jìn)行分類并對惡意代碼灰度圖的重要區(qū)域進(jìn)行可視化。

(2)通過從注意力層得到的注意力圖(對惡意代碼灰度圖的強(qiáng)調(diào)部分)與原始惡意代碼二進(jìn)制文件的映射關(guān)系,找到具有重要特征的位置,再利用反匯編工具分析該位置存在的惡意行為。

1 卷積神經(jīng)網(wǎng)絡(luò)

卷積神經(jīng)網(wǎng)絡(luò)是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)的代表算法之一[17-18],能進(jìn)行有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí),其隱含層內(nèi)卷積核的參數(shù)共享使得卷積神經(jīng)網(wǎng)絡(luò)能夠以較小的計(jì)算量提取特征。給定一幅圖,卷積神經(jīng)網(wǎng)絡(luò)能提取其特征并通過全連接層進(jìn)行輸出,達(dá)到分類目的。

(1)卷積層

在卷積神經(jīng)網(wǎng)絡(luò)中,卷積層是通過卷積過濾器實(shí)現(xiàn)對輸入圖片的特征提取,如xi,j(0 ≤i<W,0 ≤j<H)表示大小為W×H的輸入圖片,其處理公式為:

式中,wp,q(0 ≤p,q<M)表示大小為M×M的卷積過濾器的權(quán)值。

通常情況下,在卷積處理過程中,卷積過濾器往往如圖1 所示有多個通道,并且多個通道的過濾器同時進(jìn)行特征提取,例如,當(dāng)輸入圖片是xi,j,k(0 ≤i≤W,0 ≤j≤H,0 ≤k≤K),即圖片大小為W×H,通道為K,其卷積處理公式為:

式中,bi,j,l表示神經(jīng)網(wǎng)絡(luò)的偏置,wp,q,k,l表示神經(jīng)網(wǎng)絡(luò)的權(quán)重。

Fig.1 Multichannel convolution processing圖1 多通道卷積處理

(2)全連接層

經(jīng)過多個卷積層和池化層后,模型往往會連接著1 個或1 個以上的全連接層。全連接層中的每個神經(jīng)元與其前一層的所有神經(jīng)元進(jìn)行全連接,可以整合卷積層或者池化層中具有類別區(qū)分性的局部信息。

(3)激活函數(shù)

輸入圖片在經(jīng)過卷積處理后,會將其結(jié)果經(jīng)過激活函數(shù)處理,使模型有更強(qiáng)大的表達(dá)能力,本文的卷積層以及全連接層的激活函數(shù)使用線性整流函數(shù)(rectified linear unit,ReLU),在x<0 時,硬飽和,x>0 時,導(dǎo)數(shù)為1,保持梯度不衰減,從而緩解梯度消失問題,能更快收斂,表達(dá)式為:

(4)輸出層

模型最后是輸出層,將全連接層的輸出結(jié)果傳遞給一個函數(shù),即Softmax 邏輯回歸(Softmax regression),該層也可稱為Softmax 層(Softmax layer),它將多個神經(jīng)元的輸出映射到(0,1)區(qū)間內(nèi),其輸出值可作為模型檢測為某類的概率,從而達(dá)到多分類的效果,其表達(dá)式為:

式中,wi為輸出層的權(quán)重,b為輸出層的偏置,σi(z)是Softmax 函數(shù),作為輸出層的激活函數(shù)。

2 注意力機(jī)制

注意力機(jī)制是一種常用于深度學(xué)習(xí)中對特征進(jìn)行強(qiáng)調(diào)的技術(shù),為了提高翻譯任務(wù)的性能,首先應(yīng)用于自然語言處理領(lǐng)域[19]。隨著技術(shù)的進(jìn)步,注意力機(jī)制也能應(yīng)用于卷積神經(jīng)網(wǎng)絡(luò)中,對圖片的重要部分進(jìn)行可視化[16]。

本文所采用的注意力機(jī)制的原理如圖2 所示,首先從模型的第3 個卷積層中得到zi,j(0 ≤i≤W,0 ≤j≤H),和普通卷積層一樣,將得到的zi,j傳輸?shù)阶⒁饬樱瑥亩?jì)算出圖像的注意力權(quán)重,并傳送到下一層。為了得到?,注意力機(jī)制計(jì)算zi,j的每個區(qū)域的注意力權(quán)重即ai,j,注意力機(jī)制公式為:

Fig.2 Attention mechanism圖2 注意力機(jī)制

式中,Z=(zi,j) 表示從卷積層中得到的特征圖,A=(ai,j)表示對每個輸入特征強(qiáng)調(diào)的總和。

式中,zi,j表示從上一個卷積層中得到的特征圖的某個區(qū)域,ai,j表示特征圖中某個區(qū)域的注意力權(quán)值。

總的來說,本文所使用的注意力機(jī)制算法如算法1 所示,輸入是從第3 個卷積層得到的特征圖,輸出是特征圖的注意力權(quán)重。

算法1注意力機(jī)制算法

輸入:第3 個卷積層輸出的特征圖zi,j。

輸出:注意力權(quán)重。

3 Attention-CNN 檢測模型

Attention-CNN 惡意代碼檢測模型框架如圖3 所示,本章將從惡意代碼可視化、模型構(gòu)建、模型訓(xùn)練幾個方面介紹該檢測框架的具體過程。首先是處理數(shù)據(jù),即將惡意代碼轉(zhuǎn)化為灰度圖,具體過程將在3.1節(jié)介紹,其次是構(gòu)建帶有注意力機(jī)制的網(wǎng)絡(luò)模型并結(jié)合灰度圖對網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。接著用待檢測樣本對網(wǎng)絡(luò)模型進(jìn)行檢測,最后是結(jié)果分析,結(jié)果分析將在第5 章進(jìn)行詳細(xì)闡述。

3.1 惡意代碼可視化

惡意代碼的惡意行為不僅僅存在于代碼部分,還可能隱藏在惡意代碼的數(shù)據(jù)部分。為了更有效地檢測惡意代碼,本文將惡意代碼二進(jìn)制文件轉(zhuǎn)化為灰度圖,這樣可以以統(tǒng)一的方式處理樣本的代碼部分和數(shù)據(jù)部分。具體方法如圖4,首先將給定的惡意代碼二進(jìn)制文件的每8 位組合,其次遍歷整個二進(jìn)制文件,將組合后的8 位二進(jìn)制排列為無符向量。而8位二進(jìn)制轉(zhuǎn)化為十進(jìn)制數(shù)后,其范圍是0 到255,剛好是灰度圖像素值(0:黑色,255:白色),最后將向量轉(zhuǎn)換為一個二維數(shù)組,即灰度圖。圖像的寬度是固定的,高度可以根據(jù)文件大小而變化。

轉(zhuǎn)化后的灰度圖中,同一個家族的灰度圖其紋理是相似的,而不同家族的圖像紋理又有一定的區(qū)別。圖5(a)、圖5(b)分別是Hoax.Win32.Renos 家族以及Trojan.Win32.BHO 家族的灰度圖,可以觀察到同一個家族內(nèi)的惡意代碼紋理是相似的,而兩個不同的家族其紋理又是有一定的區(qū)別。

3.2 模型構(gòu)建

Attention-CNN 由多個卷積層堆疊而成,本文的檢測模型由3 個卷積層、1 個注意力層以及2 個全連接層組成。

Fig.3 Workflow of this paper圖3 本文的工作流程

Fig.4 Binary to grayscale圖4 二進(jìn)制轉(zhuǎn)灰度圖

Fig.5 Texture of malware family圖5 惡意代碼家族圖片紋理

卷積操作存在兩個問題:

(1)隨著網(wǎng)絡(luò)層數(shù)的加深,輸出的特征圖越來越小;

(2)圖像邊界信息丟失,即有些圖像角落和邊界的信息發(fā)揮作用較少。

因此需要在卷積層加入padding 填充,常用的padding 填充有“valid”和“same”,當(dāng)輸入圖片大小為W×H,卷積核大小為M×M,strides=[1,1,1,1],padding=valid,則卷積層輸出的圖片大小為(W-(M-1))×(H-(M-1)),即相應(yīng)圖片的長和寬都減少了M-1 個單位。若要圖片大小保持不變,則需要在卷積處理前對圖片的邊緣用0 填充,即“same”填充,在與valid 填充有相同的輸入圖片大小、卷積核大小以及strides下,經(jīng)過卷積后得到的特征圖的大小為((W+2P)-(M-1))×((H+2P)-(M-1)),其中P=(M-1)/2。

本文最后會通過得到的注意力圖回溯到原來的灰度圖以及原始惡意代碼,以分析該重要位置存在的惡意行為,為了使注意力圖與輸入圖片能有位置上的對應(yīng)關(guān)系,本文在卷積層“same”填充,同時省去池化層,以保持圖片大小不變,詳細(xì)參數(shù)如表1 所示。

Table 1 Model parameters of convolutional neural network表1 卷積神經(jīng)網(wǎng)絡(luò)模型參數(shù)

3.3 模型訓(xùn)練

卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程分為兩個階段:第一個階段是數(shù)據(jù)由低層次向高層次傳播的階段,即前向傳播階段;另外一個階段是當(dāng)前向傳播得出的結(jié)果與預(yù)期不相符時,將誤差從高層向低層進(jìn)行傳播訓(xùn)練的階段,即反向傳播階段,訓(xùn)練過程如圖6 所示。訓(xùn)練過程為:

(1)網(wǎng)絡(luò)模型權(quán)值的初始化。

(2)輸入數(shù)據(jù)經(jīng)過卷積層、全連接層的向前傳播得到輸出值。

Fig.6 Model training process圖6 模型訓(xùn)練流程

(3)求出網(wǎng)絡(luò)的輸出值與目標(biāo)值之間的誤差。

(4)當(dāng)誤差大于期望值時,將誤差傳回網(wǎng)絡(luò)中,依次求得全連接層、卷積層的誤差,通過梯度更新權(quán)重和偏置;當(dāng)誤差等于或小于期望值時,結(jié)束訓(xùn)練。

本文的惡意代碼檢測模型訓(xùn)練與檢測過程如算法2所示,具體分為兩步:首先是構(gòu)建帶有注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)模型;其次用3.1 節(jié)中可視化的惡意代碼灰度圖輸入到檢測模型中訓(xùn)練并檢測。

算法2Attention-CNN 檢測模型訓(xùn)練與檢測過程

輸入:G={Mi},i={1,2,…,n},i表示輸入的序號,Mi表示經(jīng)惡意代碼轉(zhuǎn)化的灰度圖,G表示灰度圖集合。

輸出:R={ri}和A={ai},R表示檢測結(jié)果集合,ri表示第i個惡意代碼的檢測結(jié)果。A表示注意力圖,ai表示第i個惡意代碼對應(yīng)的注意力圖。

1.構(gòu)建Attention-CNN 檢測模型

1.1 增加一個包含128 個神經(jīng)元、卷積核大小為3×3 的卷積層,填充為Same;

1.2 增加一個包含256 個神經(jīng)元、卷積核大小為3×3 的卷積層,填充為Same;

1.3 增加一個包含256 個神經(jīng)元、卷積核大小為3×3 的卷積層,填充為Same;

1.4 增加注意力層

1.5 注意力層得到的權(quán)重與上一個卷積層得到的特征相乘;

1.6 增加包含512 個神經(jīng)單元的全連接層,激活函數(shù)為ReLU;

1.7 增加包含23 個神經(jīng)單元的全連接層,激活函數(shù)為Softmax;

2.Attention-CNN 模型訓(xùn)練與測試

2.1 參數(shù)初始化;

2.2 while 不滿足提前終止訓(xùn)練條件do:

2.3 while 訓(xùn)練集剩余數(shù)據(jù)不為空do:

2.4 模型訓(xùn)練輸入一組小批量數(shù)據(jù)樣本;

2.5 使用Softmax 函數(shù)進(jìn)行數(shù)據(jù)樣本分類;

2.6 使用Adam 梯度下降優(yōu)化算法更新權(quán)重值;

2.7 end while

2.8 使用測試集數(shù)據(jù)驗(yàn)證模型;

2.9 end while

4 實(shí)驗(yàn)過程與結(jié)果分析

4.1 數(shù)據(jù)集

(1)Data1:本文的模型最終目的是得到分類結(jié)果以及注意力圖,實(shí)現(xiàn)用注意力圖與輸入圖片以及原始惡意代碼進(jìn)行對比分析,因此所需的數(shù)據(jù)集是原始惡意代碼并非現(xiàn)成的灰度圖??紤]到這個因素,采用VX Heaven[20]上公開的數(shù)據(jù)集作為本實(shí)驗(yàn)的數(shù)據(jù)集。該數(shù)據(jù)集曾用于2017 年Vyas 等人[21]、2018 年Dam 和Touili[22]以及2019 年Dovom 等人[23]的論文中,包含了48.88 GB 的惡意代碼原始惡意代碼,本文選用其中的9 644 個樣本進(jìn)行處理。樣本類別以及數(shù)量如圖7 所示,為了便于顯示,圖中將惡意代碼家族的名稱每節(jié)用兩個字符顯示,如“Backdoor.Win32.Cecknogtihuan”改為“Ba.Wi.Ce”。

Fig.7 VX Heaven dataset圖7 VX Heaven 數(shù)據(jù)集

(2)Data2:目前用灰度圖對惡意代碼進(jìn)行分類的方法中,有一部分研究者使用的數(shù)據(jù)集是Nataraj 等人公開的Malimg 數(shù)據(jù)集[7],該數(shù)據(jù)集有25 類共9 339個樣本。為了和現(xiàn)存的惡意代碼分類模型對比,本文在Malimg 數(shù)據(jù)集上與其他方法進(jìn)行訓(xùn)練并對比實(shí)驗(yàn)結(jié)果。樣本類別及數(shù)量如圖8 所示。

4.2 優(yōu)化模型

4.2.1 優(yōu)化函數(shù)對模型的影響

VX Heaven 數(shù)據(jù)集中的二進(jìn)制惡意代碼轉(zhuǎn)化成灰度圖后,將得到的灰度圖按照2∶2∶6 的比例分別得到驗(yàn)證集、測試集和訓(xùn)練集,并輸入到本文的Attention-CNN 深度學(xué)習(xí)模型中訓(xùn)練。在訓(xùn)練階段,不同的優(yōu)化函數(shù)會得到不同的訓(xùn)練效果,為了得到更好的訓(xùn)練效果,本文對比了多個優(yōu)化函數(shù)對函數(shù)收斂的影響。圖9 顯示Adam、Momentum、Adadelta、SGD 幾個優(yōu)化函數(shù)在模型中的收斂情況,其中Adam和Momentum 都能快速收斂,但Adam 收斂效果較好,而Adadelta 和SGD 效果比較差,故本文使用的優(yōu)化函數(shù)是Adam。其他參數(shù)設(shè)置如表2 所示。

Fig.8 Malimg dataset圖8 Malimg 數(shù)據(jù)集

Fig.9 Influence of optimization function on loss function圖9 優(yōu)化函數(shù)對損失函數(shù)的影響

Table 2 Model parameter setting表2 模型參數(shù)設(shè)置

4.2.2 不同大小的輸入圖片對模型的影響

CNN 模型輸入圖片的尺寸是固定的,但是不同的輸入圖片大小會使CNN 得到不一樣的效果,為了得到更適合的輸入圖片的尺寸,本文以64×64、96×96、192×192、224×224 的輸入尺寸來訓(xùn)練模型。表3記錄了各個尺寸的圖片的相應(yīng)評價指標(biāo),可以看出,圖片尺寸越大,其相應(yīng)的準(zhǔn)確率(Accuracy)、精度(Precision)、召回率(Recall)以及F1-score越高。

Table 3 Comparison of input pictures of different sizes on each indicator表3 不同大小的輸入圖片在各個指標(biāo)上的對比

此外,圖10 是用不同大小的圖片作為模型輸入而得到的混淆矩陣。該圖顯示,輸入尺寸越大,其混淆矩陣得到預(yù)測標(biāo)簽和真正標(biāo)簽更匹配(大部分值都對應(yīng)在正角平分線處)。為了得到更好的分類效果,本文設(shè)定模型的輸入圖片大小為224×224,盡可能保留惡意代碼中的有用信息。

4.3 評價指標(biāo)

訓(xùn)練及測試的過程中,將使用不同的評價指標(biāo)評估本文模型,本文的評價指標(biāo)主要有4 個,分別為Accuracy、Precision、Recall以及F1-score。

Accuracy表示分類的準(zhǔn)確率,即對給定的數(shù)據(jù),分類正確的樣本數(shù)占總樣本數(shù)的比例,其計(jì)算公式為:

Precision是指在預(yù)測為正確樣本中真正正確樣本所占的比例,其計(jì)算公式為:

Recall指的是預(yù)測正確的某類樣本占該類總樣本的比例,其計(jì)算公式為:

F1-score 是精確率和召回率的調(diào)和平均。因?yàn)榫_和召回率兩個指標(biāo)是相互矛盾的,當(dāng)檢測結(jié)果的精確率高時,其召回率往往會相應(yīng)降低,反之亦然。為了調(diào)和這樣的矛盾,本文引入了F1-score,其計(jì)算公式為:

Fig.10 Confusion matrix obtained from different input images in training models圖10 不同輸入圖片訓(xùn)練模型得到的混淆矩陣

其中,TP表示樣本預(yù)測為某個家族,實(shí)際上也是該家族;FP表示樣本預(yù)測為某個家族,實(shí)際上不是該家族;TN表示樣本預(yù)測不是某家族,實(shí)際上是該家族;FN表示樣本預(yù)測不是某家族,實(shí)際上也不是該家族。

4.4 對比分析

4.4.1 在數(shù)據(jù)集VX Heaven 下的對比實(shí)驗(yàn)

為了證明本文方法的檢測效果,將傳統(tǒng)的機(jī)器學(xué)習(xí)方法和沒有注意力機(jī)制的CNN 與本文方法進(jìn)行對比實(shí)驗(yàn),并統(tǒng)計(jì)檢測結(jié)果的Accuracy、Precision、Recall以及F1-score 4 個指標(biāo)。

其中機(jī)器學(xué)習(xí)方法的參數(shù)設(shè)置如下:

(1)用網(wǎng)格搜索算法對RF(random forest)尋優(yōu),最優(yōu)的參數(shù)如表4 所示,表中n是樹的棵數(shù),m是最大特征數(shù),d是最大樹的深度,k是最小樣本數(shù)。

Table 4 Random forest parameter setting表4 隨機(jī)森林參數(shù)設(shè)置

(2)SVM 分類的影響因素主要是C(錯分懲罰因子)、g(RBF 核函數(shù)的控制因子值),網(wǎng)格尋優(yōu)(Gridsearch)確定最優(yōu)值為C=128,g=0.12。

(3)J48.trees參數(shù)設(shè)置主要有C=0.25,M=2。

表5 記錄了傳統(tǒng)機(jī)器學(xué)習(xí)方法、不帶注意力機(jī)制的CNN(參數(shù)與表2 相同)以及本文的Attention-CNN的各個指標(biāo)的情況。RF、SVM、J48.trees 都是機(jī)器學(xué)習(xí)方法中常用的分類算法,但是相比本文方法其準(zhǔn)確率、精確度、召回率以及F1 值都不高。同樣不帶注意力機(jī)制的CNN其相應(yīng)的評價指標(biāo)略低于本文方法。

Table 5 Comparison of Attention-CNN with other methods表5 Attention-CNN 與其他方法的對比結(jié)果 %

4.4.2 在Malimg 數(shù)據(jù)集下的對比實(shí)驗(yàn)

本文構(gòu)建的模型能夠在得到注意力圖的同時對樣本進(jìn)行分類,為了驗(yàn)證本文提出的模型的分類效果,用相同Malimg 數(shù)據(jù)集與文獻(xiàn)[13]模型進(jìn)行訓(xùn)練并與本文方法進(jìn)行對比。為了便于說明,將文獻(xiàn)[13]中使用的模型稱為vsNet,將本文使用的模型稱作Attention-CNN,對比結(jié)果如圖11。在Malimg 數(shù)據(jù)集下的實(shí)驗(yàn)證明,vsNet 模型檢測的準(zhǔn)確率是94.50%,而本文的Attention-CNN 模型能夠達(dá)到98.80%的準(zhǔn)確率,相比于vsNet的方法提高了4.3個百分點(diǎn)。同時從圖11 中可以看出,Attention-CNN 在25 個epoch 附近,函數(shù)已經(jīng)收斂,損失函數(shù)基本達(dá)到穩(wěn)定,精確度基本達(dá)到最大值。而vsNet 模型在100 個epoch 的時候還未達(dá)到穩(wěn)定,精度緩慢增加,經(jīng)過后續(xù)的訓(xùn)練,最終在200 個epoch 的時候達(dá)到穩(wěn)定。因此本文提出的分類模型能夠得到較好的分類效果,訓(xùn)練時間相對較短。

5 利用注意力圖對樣本進(jìn)行額外分析

5.1 通過注意力圖獲取惡意代碼行為信息

本文的Attention-CNN 模型,最終會輸出分類結(jié)果以及注意力圖。本節(jié)對得到的注意力圖進(jìn)行分析。

圖12 展示本文的惡意代碼分析流程,完成模型訓(xùn)練階段后,模型對樣本進(jìn)行檢測,最終會得到相應(yīng)的分類結(jié)果和注意力圖。接下來將模型輸出的注意力圖用于人工分析。當(dāng)重要區(qū)域在代碼部分,則用IDApro 將二進(jìn)制文件反匯編,將注意力圖的重要區(qū)域位置對應(yīng)到二進(jìn)制文件的相應(yīng)位置,并提取該位置的函數(shù)從而得到惡意代碼的行為信息,當(dāng)重要區(qū)域落在數(shù)據(jù)部分則提取相應(yīng)的資源文件。

得到的注意力圖如圖13 所示,注意力圖中標(biāo)注了該樣本特有的特征位置,圖中標(biāo)有顏色的點(diǎn)就是含有該樣本的重要字節(jié)序列位置,當(dāng)灰度圖中的位置是確定的時候,則可將該位置對應(yīng)到二進(jìn)制文件的相應(yīng)部分,后續(xù)可通過IDApro 找到該部分對應(yīng)的函數(shù),以分析該惡意代碼的行為。

Fig.11 Accuracy of Attention-CNN and vsNet圖11 Attention-CNN 和vsNet的準(zhǔn)確率

Fig.12 Workflow of manual analysis圖12 人工分析工作流程

Fig.13 Attention map圖13 注意力圖

Nataraj 等人[7]指出,通過二進(jìn)制轉(zhuǎn)換而來的灰度圖,其各個部分都對應(yīng)著二進(jìn)制文件的相應(yīng)部分,如圖14 是Trojan.Donto.vo.A 變種的相應(yīng)部分在灰度圖中的顯示情況,其中.text 表示二進(jìn)制文件的代碼部分,.rdata 和.data 都表示二進(jìn)制文件的數(shù)據(jù)部分,最后一部分是.rsrc 部分,它包含模塊的所有資源以及應(yīng)用程序所使用的圖標(biāo)。因此當(dāng)注意力圖的重要位置在代碼部分,則提取惡意代碼的函數(shù),當(dāng)注意力圖的重要位置在數(shù)據(jù)部分以及資源部分時,則提取惡意代碼的資源文件。

Fig.14 Section division of grayscale image圖14 灰度圖的節(jié)劃分

5.2 對Backdoor.Win32.Agobot.lt的分析

圖15左圖是Backdoor.Win32.Agobot.lt灰度圖,屬于Worm:Win32/Gaobot 家族,它能夠通過IRC(Internet relay chat)執(zhí)行來自遠(yuǎn)程服務(wù)器的命令。除此之外,該家族能夠通過攔截HTTP/FTP 通信來竊取登錄信息[24]。圖15 右圖是本文模型得到的Backdoor.Win32.Agobot.lt的注意力圖,本文將該惡意樣本的二進(jìn)制文件用IDApro 來反匯編,通過注意力圖中的標(biāo)有重要信息的位置找到原文件中的相應(yīng)位置。圖15右中標(biāo)有紅色的點(diǎn)對應(yīng)到源文件的sub_401356函數(shù),通過分析得到,該位置是一個能夠連接到IRC 服務(wù)器并進(jìn)入聊天室接收來自遠(yuǎn)程服務(wù)器的指令。標(biāo)有綠色點(diǎn)對應(yīng)到源文件的sub_410F80 函數(shù),這是一個用于接收截獲的HTTP 通信的內(nèi)容的函數(shù),并檢查內(nèi)容是否包含字符串,例如“PAYPAL”或“paypal.com”。

Fig.15 Grayscale and attention map of Backdoor.Win32.Agobot.lt圖15 Backdoor.Win32.Agobot.lt灰度圖和注意力圖

5.3 對Trojan-Banker.Win32.Banbra.r的分析

圖16 左圖展示的是Trojan-Banker.Win32.Banbra.r灰度圖,這是一種TrojanSpy:Win32/Banker 家族的惡意樣本,其設(shè)計(jì)目的是通過輸入鍵盤和鼠標(biāo)來竊取銀行賬戶信息[25],圖16 右圖是其通過本文方法得到的注意力圖,其中紅色的地方表示權(quán)重最高的位置,通過該位置找到了源文件中的sub_480A84,這是一個通過電子郵件發(fā)送操作系統(tǒng)版本、鍵盤記錄、截圖等信息的函數(shù)。此外黃色地方表示權(quán)重第二大的位置,該位置映射到源文件的“√”和“×”,這是存在于可執(zhí)行文件中,并由以Delphi為按鈕圖標(biāo)生成的資源文件,位圖數(shù)據(jù)被認(rèn)為具有很高的重要性,因?yàn)镈elphi經(jīng)常被用于TrojanSpy:Win32/Banker,具有標(biāo)識作用。

Fig.16 Grayscale and attention map of Trojan-Banker.Win32.Banbra.r圖16 Trojan-Banker.Win32.Banbra.r灰度圖和注意力圖

分析結(jié)果表明,所提出的方法所得到的注意力圖中的區(qū)域所對應(yīng)的字節(jié)序列在人工分析惡意代碼樣本行為時提供了有用的信息。此外,即使每個樣本的位置發(fā)生變化,該方法也可以有效提取相應(yīng)的特征。

6 結(jié)束語

針對目前網(wǎng)絡(luò)中存在大量的惡意代碼的攻擊問題,本文提出了基于注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)模型,對惡意樣本進(jìn)行檢測和分析,模型最終輸出待檢測惡意代碼樣本屬于哪個家族,同時得到相應(yīng)的注意力圖。通過與傳統(tǒng)的機(jī)器學(xué)習(xí)以及不帶注意力機(jī)制的CNN 進(jìn)行比較,本文方法在準(zhǔn)確率、召回率、以及F1 值都有較高的值。在Malimg 數(shù)據(jù)集下與文獻(xiàn)[13]的方法進(jìn)行比較,其準(zhǔn)確率提高了4.3 個百分點(diǎn),取得較好的檢測效果。通過模型輸出的注意力圖,本文獲取到惡意代碼的重要特征區(qū)域并通過與惡意代碼二進(jìn)制文件的映射關(guān)系進(jìn)行人工分析,實(shí)驗(yàn)證明,本文方法能夠獲取惡意代碼存在的行為,彌補(bǔ)傳統(tǒng)灰度圖形式的惡意代碼檢測方法中的惡意代碼不可解釋性。

本文提出的檢測方法可能面臨以下挑戰(zhàn):

(1)本文通過將VX Heaven 數(shù)據(jù)集中的惡意代碼轉(zhuǎn)換為灰度圖,其相應(yīng)家族之間的圖片紋理區(qū)別不大,導(dǎo)致分類的準(zhǔn)確度并沒有使用Malimg 數(shù)據(jù)集高,但Malimg 數(shù)據(jù)集中只有現(xiàn)成的圖片,沒有原始惡意代碼,導(dǎo)致無法做進(jìn)一步分析。

(2)本文在VX Heaven 數(shù)據(jù)集以及Malimg 數(shù)據(jù)集上都得到較好的檢測效果。但是現(xiàn)如今的惡意代碼與VX Heaven 或Malimg 數(shù)據(jù)集存在一定的差異,因此下一步工作將收集比較新的惡意代碼樣本,使模型在現(xiàn)代惡意代碼中有更好的泛化能力。

猜你喜歡
二進(jìn)制灰度卷積
航空濾光片陣列多光譜圖像條帶灰度調(diào)整算法
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準(zhǔn)確測定
采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過濾技術(shù)
一種基于卷積神經(jīng)網(wǎng)絡(luò)的地磁基準(zhǔn)圖構(gòu)建方法
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
一種并行不對稱空洞卷積模塊①
天津港智慧工作平臺灰度發(fā)布系統(tǒng)和流程設(shè)計(jì)
有用的二進(jìn)制
用Scratch把十進(jìn)制轉(zhuǎn)為二進(jìn)制
Arduino小車巡線程序的灰度閾值優(yōu)化方案
济源市| 潜江市| 盐津县| 西吉县| 洞口县| 于都县| 天气| 新田县| 兴和县| 潍坊市| 水城县| 手游| 绍兴县| 柘城县| 平利县| 五家渠市| 新安县| 龙里县| 大姚县| 申扎县| 鄂温| 阿合奇县| 西畴县| 于都县| 临汾市| 保山市| 南澳县| 凤城市| 盐边县| 昔阳县| 广宁县| 翁牛特旗| 贵州省| 松阳县| 尼木县| 灵石县| 延津县| 浦北县| 隆昌县| 合作市| 林西县|