段玉瑩,王鳳英
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255000)
惡意代碼(malicious code)被定義為一系列故意創(chuàng)建,對(duì)計(jì)算機(jī)系統(tǒng)或者網(wǎng)絡(luò)信息機(jī)密性、完整性、可用性產(chǎn)生威脅的軟件程序。現(xiàn)階段,惡意代碼常針對(duì)新型漏洞進(jìn)行設(shè)計(jì),是敵手發(fā)動(dòng)高級(jí)持續(xù)威脅(advanced persistent threat,APT)的主要技術(shù)手段[1-4]。
目前典型的惡意代碼檢測(cè)技術(shù)包括:基于靜態(tài)分析[5,6]、動(dòng)態(tài)分析[7,8]以及機(jī)器學(xué)習(xí)的方法[9,10]。靜態(tài)分析的檢測(cè)適于非混淆樣本,但對(duì)未知及變種代碼往往無(wú)計(jì)可施;動(dòng)態(tài)分析的檢測(cè)對(duì)混淆樣本表現(xiàn)更為出色,但此方法需要觸發(fā)惡意代碼的執(zhí)行,且路徑單一。目前基于機(jī)器學(xué)習(xí)的檢測(cè)大多為淺層的機(jī)器學(xué)習(xí)模型,通過(guò)大量惡意樣本提取特征,訓(xùn)練樣本以構(gòu)建模型判斷軟件的惡意特性。這些淺層機(jī)器學(xué)習(xí)模型,在復(fù)雜函數(shù)及其分類等問(wèn)題上表述能力受限,泛化能力也受到了制約,分類的精度和準(zhǔn)確度并不理想[11]。深度學(xué)習(xí)是對(duì)機(jī)器學(xué)習(xí)更深層次的解釋,可以對(duì)多層深度結(jié)構(gòu)實(shí)現(xiàn)非線性映射[12]。因此,本文提出了采用級(jí)聯(lián)與深度信念網(wǎng)絡(luò)進(jìn)行惡意代碼的檢測(cè),通過(guò)級(jí)聯(lián)由簡(jiǎn)到繁的檢測(cè)方法,以及深度信念網(wǎng)絡(luò)的無(wú)監(jiān)督特性,提高檢測(cè)效率的監(jiān)測(cè)方案。與其它機(jī)器學(xué)習(xí)的檢測(cè)結(jié)果相比較,本文中檢驗(yàn)惡意代碼的準(zhǔn)確率得到顯著提高。
RBM為一種僅含有兩層節(jié)點(diǎn)的隨機(jī)神經(jīng)網(wǎng)絡(luò)模型,各層之間處于一種全連接狀態(tài),每層內(nèi)部各部分相互獨(dú)立,其結(jié)構(gòu)如圖1所示。
圖1 受限玻爾茲曼機(jī)結(jié)構(gòu)
圖1中,h->Hidden Layers;v->Visible Layer;W->Weight。 RBM為一個(gè)基于能量的模型,其能量函數(shù)可以由式(1)所示
(1)
其中,θ={w,a,b} 為未知參數(shù)vi、hj分別表示第i個(gè)可見(jiàn)單元的值和第j個(gè)隱藏單元的值,ai、bj分別表示第i個(gè)可見(jiàn)單元和第j個(gè)隱藏單元的偏置,wij為神經(jīng)元i和j之間的連接權(quán)值。為了方便討論,假設(shè)所有可見(jiàn)單元和隱藏單元的取值均為0或1。根據(jù)式(1)的能量函數(shù),可以得到 (v,h) 的聯(lián)合概率分布為
(2)
(3)
其中, Z(θ) 為歸一化因子,由于RBM同一層節(jié)點(diǎn)間無(wú)連接,故同一層中的節(jié)點(diǎn)互相獨(dú)立,在已知v或h時(shí),hj或vi的值為1的條件概率分別為
(4)
(5)
其中,sigm為激活函數(shù),其函數(shù)表達(dá)式為
(6)
根據(jù)式(4)和式(5),在已知v的條件下,可以求出h的概率分布;反之,也能通過(guò)h的概率分布對(duì)v進(jìn)行重構(gòu)。
RBM訓(xùn)練過(guò)程即樣本概率分布擬合過(guò)程。在1.1節(jié)已得到RBM聯(lián)合概率分布,通過(guò)極大似然估計(jì)法獲取樣本概率分布最大化情況下的未知參數(shù)θ。
RBM訓(xùn)練方式包含對(duì)比散度法(contrastive divergence,CD)與并行回火法(parallel tempering,PT)。CD算法在進(jìn)行目標(biāo)分析的過(guò)程中通過(guò)Gibbs不斷迭代得到優(yōu)異的采樣梯度作為近似似然函數(shù)的真實(shí)梯度值,雖然訓(xùn)練效果明顯,但是存在嚴(yán)重的偏估計(jì)[11],同時(shí)當(dāng)訓(xùn)練數(shù)據(jù)過(guò)度復(fù)雜時(shí)會(huì)導(dǎo)致Gibbs采樣鏈陷入局部極小域。PT算法通過(guò)對(duì)高溫以及低溫鏈條進(jìn)行并行分析,經(jīng)過(guò)不斷迭代,得到真實(shí)梯度近似值,對(duì)于復(fù)雜數(shù)據(jù)分析的效果明顯高于CD算法。但是PT算法在進(jìn)行數(shù)據(jù)分析過(guò)程中需要大量的數(shù)據(jù)交換操作,工作效率較CD算法較低。本文數(shù)據(jù)分析采用并行分布式系統(tǒng),與PT算法特征互補(bǔ),是目前訓(xùn)練RBM網(wǎng)絡(luò)最理想的算法。
DBN是由多個(gè)RBM按照一定規(guī)律構(gòu)成的深度學(xué)習(xí)模型,通過(guò)無(wú)監(jiān)督貪婪算法對(duì)網(wǎng)絡(luò)模型反復(fù)循環(huán)訓(xùn)練,采用訓(xùn)練數(shù)據(jù)對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào),有效避免隨機(jī)初始化參數(shù)帶來(lái)的局部最小問(wèn)題,可完成原始數(shù)據(jù)的完美建模,其結(jié)構(gòu)如圖2所示。
圖2 深度信念網(wǎng)絡(luò)模型
獲取有效的惡意代碼樣本集是實(shí)驗(yàn)進(jìn)行基礎(chǔ),特別是深度學(xué)習(xí)背景下的惡意代碼檢測(cè),只有確保訓(xùn)練樣本的數(shù)量、類型足夠大,才能確保檢測(cè)結(jié)果的準(zhǔn)確性。通常情況下,惡意代碼的獲取包含用戶端采樣、公開(kāi)惡意代碼網(wǎng)絡(luò)數(shù)據(jù)庫(kù)以及Nepenthes等惡意代碼捕獲工具3種有效的途徑。
基于深度學(xué)習(xí)的惡意代碼特征信息的提取所采用的分析方法有兩種:一種是靜態(tài)分析方法,另一種是動(dòng)態(tài)分析方法。惡意代碼靜態(tài)特性提取采用信息逆向處理方式獲取樣本序列特征、字符串特征以及API調(diào)用特征等選取數(shù)據(jù)特征信息;惡意代碼動(dòng)態(tài)特征的提取采用沙箱技術(shù)完成樣本信息檢測(cè),根據(jù)檢測(cè)報(bào)告進(jìn)行惡意代碼行為特征的提取。
為提升惡意代碼檢測(cè)分類的準(zhǔn)確性,將檢測(cè)信息轉(zhuǎn)化為二進(jìn)制文件,并采用信號(hào)處理與稀疏表示相結(jié)合的方法從多個(gè)不同的角度進(jìn)行線性表示,根據(jù)惡意代碼紋理信息的相似性特征實(shí)現(xiàn)惡意代碼的分類。對(duì)于本文中深度學(xué)習(xí)框架的設(shè)計(jì)采用Boosting算法與LBP級(jí)聯(lián)稀疏表示算法相結(jié)合的方式,融合惡意代碼多種不同類型的特性,實(shí)現(xiàn)惡意代碼的靜態(tài)分析以及動(dòng)態(tài)深度學(xué)習(xí),抽取出惡意代碼的行為特征并實(shí)現(xiàn)特征融合,嵌入自動(dòng)學(xué)習(xí)深入檢測(cè)框架,提升系統(tǒng)檢測(cè)的可擴(kuò)展性。
惡意代碼傳播具有高復(fù)制性特征,通常情況下捕獲到的惡意代碼已留存在病毒倉(cāng)庫(kù)中,為提高檢測(cè)效率,在檢測(cè)模型設(shè)計(jì)過(guò)程中引入了層次化檢測(cè)概念,依據(jù)從簡(jiǎn)到繁的檢測(cè)原則,將Hash值匹配、LBP級(jí)聯(lián)稀疏表示、反匯編特征匹配以及深度信念網(wǎng)絡(luò)進(jìn)行級(jí)聯(lián),層次化結(jié)構(gòu)如圖3所示。
圖3 分層檢測(cè)結(jié)構(gòu)
惡意代碼檢測(cè)系統(tǒng)主要分為兩部分:模塊一是基于現(xiàn)有惡意代碼庫(kù)的數(shù)據(jù)信息下的惡意代碼檢測(cè)模塊,包括Hash值匹配、LBP級(jí)聯(lián)稀疏表示以及反匯編特征匹配;模塊二是基于大數(shù)據(jù)背景下深度學(xué)習(xí)的惡意代碼的深度分析檢測(cè),采用深度信念網(wǎng)絡(luò)對(duì)模塊一得到的數(shù)據(jù)結(jié)果進(jìn)行深層次的篩選檢測(cè),確定信息中可能存在惡意代碼的任務(wù)段。惡意代碼檢測(cè)流程如圖4所示。
圖4 惡意代碼檢測(cè)流程
惡意代碼檢測(cè)工作流程原理分析:
(1)HASH值匹配
基于HASH算法下的惡意代碼檢測(cè)所采用的方法包含MD5、SHA1以及CRC 32等,通過(guò)HASH算法任一文件均可以生成一個(gè)HASH值。根據(jù)惡意代碼的傳播特性,在進(jìn)行惡意代碼檢測(cè)前首先判定HASH值是否已存放在惡意代碼庫(kù),進(jìn)行初步篩選,提高資源利用率以及惡意代碼檢測(cè)效率。
(2)LBP-級(jí)聯(lián)稀疏表示
LBP(local binary pattern)是對(duì)圖像局部區(qū)域紋理特征的描述。PRICo-LBP特征檢測(cè)為圖像LBP特征的優(yōu)化操作,能夠與平移、旋轉(zhuǎn)等操作完美的融合。假定像素點(diǎn)A, 則以像素點(diǎn)A為圓心,r為半徑,提取圓弧上m個(gè)鄰點(diǎn),判定其與A點(diǎn)之間的對(duì)應(yīng)關(guān)系獲取圖像的局部特征。設(shè)A點(diǎn)的LBP特征為L(zhǎng)BPn,r(A), 則有像素點(diǎn)A的旋轉(zhuǎn)不變LBP特征LBPn,i與旋轉(zhuǎn)不變的Uniform LBP特征LBPr,u[13], 定義如下
(7)
(8)
其中,方程式(7)中的ROR(LBPn,r(A),i) 代表將LBPn,r(A) 向右平移i個(gè)單位,如ROR(00001111,3)=11100001。 方程式(8)中的gc代表給定點(diǎn)A的像素值,gi代表定點(diǎn)A第i個(gè)鄰點(diǎn)的像素值。
稀疏表示(sparse representation,SR)的本質(zhì)是將信號(hào)分解到一系列子空間,是降維過(guò)程的一般化,同時(shí)也是正則項(xiàng)對(duì)噪聲類型的約束,為多子空間模型。對(duì)于給定矩陣X可以由信號(hào)矩陣L與噪聲矩陣E表示,即
X=L+E
(9)
在分解過(guò)程中由于并未給定特定的約束條件,為此對(duì)于矩陣X的分解可能存在多種不同的解。為便于計(jì)算,選取的信息L需要滿足低秩約束,同時(shí)噪聲E對(duì)于信號(hào)L影響最小,即滿足稀疏約束。所以最終凸優(yōu)化問(wèn)題為
(10)
對(duì)于矩陣X假如存在分塊矩陣W滿足
X=XW
(11)
(12)
其中,參數(shù)C為自表示的系數(shù)矩陣。
對(duì)惡意代碼進(jìn)行層次化處理,選用Rotational Uniform LBP完成惡意代碼的局部特征提取,通過(guò)稀疏表示獲取惡意代碼的全局特征。引入滑動(dòng)窗口獲取代碼間的位置關(guān)系,隨后采用式(8)提取圖像塊中每一像素點(diǎn)的Rotational Uniform LBP特征。隨后,基于同家族惡意代碼具有相似的紋理特征以及代碼復(fù)用狀況,按照式(7)實(shí)現(xiàn)惡意代碼圖像塊的LBP特征直方圖的稀疏表示。
(3)反匯編特征匹配
綜合考慮惡意代碼的特征以及實(shí)際情況,本課題研究所選用的文件頭部特征包括字節(jié)名稱、字節(jié)個(gè)數(shù)以及動(dòng)態(tài)鏈接屬性。由于同種類型的文本具有相似的特征信息,為此選用漢名距離進(jìn)行數(shù)據(jù)計(jì)算。對(duì)于惡意代碼分類,首先將文本信息向量化,結(jié)合反匯編技術(shù)獲取文本信息的操作碼(OpCode)以及系統(tǒng)函數(shù)序列(SysFunc)。所以,在n確定的情況下,可以獲取不同的OPCode以及SysFunc的n-gram特征。
(4)深度信念網(wǎng)絡(luò)
以模塊一中獲取得到的惡意代碼的特征信息為基礎(chǔ)完成惡意代碼特征信息的融合處理,隨后采用深度信念網(wǎng)絡(luò),訓(xùn)練每層的受限玻爾茲曼機(jī),對(duì)DBN網(wǎng)絡(luò)進(jìn)行無(wú)監(jiān)督反饋調(diào)節(jié)進(jìn)行優(yōu)化,通過(guò)最后一層BP神經(jīng)網(wǎng)絡(luò)微調(diào)整個(gè)網(wǎng)絡(luò)模型,建立訓(xùn)練好的DBN模型,從而達(dá)到惡意代碼自動(dòng)檢測(cè)的要求。
本實(shí)驗(yàn)采用的訓(xùn)練樣本以及測(cè)試樣本均取自Microsoft開(kāi)源數(shù)據(jù)集,其中總計(jì)包含九大類惡意代碼,包含一個(gè).bytes文件與一個(gè).asm文件,用于指導(dǎo)惡意代碼特征信息提取以及分類預(yù)測(cè)。
首先,在獲取的九大類惡意代碼文件中分別隨機(jī)抽取N個(gè)數(shù)據(jù)文件完成訓(xùn)練文本集的構(gòu)建。隨后,借助Excel刪除訓(xùn)練文本中重復(fù)數(shù)據(jù)集,確保數(shù)據(jù)的單一性。最后,依據(jù)惡意代碼紋理相似性原則以及DBN分類策略完成惡意代碼特征信息的提取操作,并通過(guò)深度信念網(wǎng)絡(luò)實(shí)現(xiàn)惡意代碼的深度學(xué)習(xí)、自動(dòng)判斷。
本實(shí)驗(yàn)總共選取了6組實(shí)驗(yàn)樣本,其中所包含的樣本個(gè)數(shù)分別為1200、1500、2000、2500、3000、3500,在每組樣本數(shù)據(jù)中分別選取70%的樣本作為訓(xùn)練樣本,剩余的30%為檢測(cè)樣本。
高學(xué)習(xí)率與迭代更新速率為正相關(guān),但是不利于局部/全局優(yōu)點(diǎn)的提??;低學(xué)習(xí)率有助于發(fā)現(xiàn)局部最優(yōu)點(diǎn),但是不利于全局最優(yōu)點(diǎn)的提取。為此,結(jié)合惡意代碼特征以及系統(tǒng)設(shè)計(jì)的實(shí)際情況,采用高學(xué)習(xí)率提取惡意代碼全局近似最優(yōu),隨后采用較小的學(xué)習(xí)率提取惡意代碼的局部最優(yōu),通過(guò)期望值計(jì)算模型全局最優(yōu)解。根據(jù)實(shí)際情況,迭代次數(shù)選取300次,學(xué)習(xí)率為0.30,權(quán)重衰減參數(shù)為0.85。實(shí)驗(yàn)過(guò)程中紋理特征的選取對(duì)于實(shí)際實(shí)驗(yàn)結(jié)果的影響如圖5所示。
圖5 紋理特征對(duì)實(shí)驗(yàn)結(jié)果的影響
根據(jù)實(shí)驗(yàn)結(jié)果顯示,檢測(cè)文件在0至1500之間隨著檢測(cè)文件的維度不斷上升,分類準(zhǔn)確率呈現(xiàn)上升的趨勢(shì);隨后文件檢測(cè)概率呈現(xiàn)下降的趨勢(shì),為此本文實(shí)現(xiàn)所選取的紋理特征的維度為1500。指令頻率特征的選取對(duì)于實(shí)際實(shí)驗(yàn)結(jié)果的影響如圖6所示。
圖6 頻率特征對(duì)實(shí)驗(yàn)結(jié)果的影響
根據(jù)實(shí)驗(yàn)結(jié)果顯示,頻率特征值在0至600之間逐漸增加時(shí),惡意代碼檢測(cè)準(zhǔn)確率逐漸增大;隨后惡意代碼檢測(cè)準(zhǔn)確率逐漸降低,為此本文實(shí)驗(yàn)所選取的特征值為600。
綜合考慮全局特征,本文實(shí)驗(yàn)所采用的DBN層數(shù)為兩層、紋理特征的維度為1500、頻率特征值為600,將檢測(cè)文件分別輸入系統(tǒng)進(jìn)行深度學(xué)習(xí),隨后進(jìn)行實(shí)驗(yàn)得到的最終的檢測(cè)結(jié)果見(jiàn)表1。
通過(guò)對(duì)表1中檢測(cè)準(zhǔn)確率進(jìn)行計(jì)算,最終惡意代碼得到惡意代碼檢測(cè)準(zhǔn)確率平均可達(dá)98.1%。隨后,不斷增加檢測(cè)樣本的數(shù)目,最佳情形下惡意代碼檢測(cè)準(zhǔn)確率高達(dá)99.2%。
表1 檢測(cè)準(zhǔn)確率分析
為驗(yàn)證本文所設(shè)計(jì)的層次化惡意代碼檢測(cè)框架的可行性,選取了SVM、KNN、稀疏表示、PRICoLBP以及 PRICoLBP+ 稀疏表示、DBN+BP幾種不同類型的惡意代碼分類檢測(cè)模型進(jìn)行對(duì)比,其分類準(zhǔn)確率見(jiàn)表2。
通過(guò)表2與不同檢測(cè)模型的對(duì)比,采用不同類型的檢測(cè)框架以及算法模型對(duì)于惡意代碼檢測(cè)結(jié)果將會(huì)產(chǎn)生巨大的影響,通過(guò)實(shí)驗(yàn)我們可以發(fā)現(xiàn)采用SVM模型檢測(cè)惡意代碼得到的檢測(cè)準(zhǔn)確率較低,本文所采用的基于級(jí)聯(lián)與深度信念網(wǎng)絡(luò)的分層檢測(cè)(級(jí)聯(lián)+DBN層次化檢測(cè))模型具有更高的準(zhǔn)確率,最佳情況下可高達(dá)99.2%。
表2 不同檢測(cè)模型對(duì)比結(jié)果/%
本文結(jié)合層次化檢測(cè)以及深度學(xué)習(xí)思想,依據(jù)惡意代碼的入侵特性,采取從簡(jiǎn)到繁的檢測(cè)原則,通過(guò)級(jí)聯(lián)操作進(jìn)行惡意代碼的初級(jí)判定。隨后通過(guò)深度信念網(wǎng)絡(luò),融合檢測(cè)文件紋理信息以及頻率特征,構(gòu)建自動(dòng)學(xué)習(xí)機(jī)器模型,實(shí)現(xiàn)惡意代碼的深層次檢測(cè)。實(shí)驗(yàn)結(jié)果表明,基于級(jí)聯(lián)操作與深度信念網(wǎng)絡(luò)的惡意代碼檢測(cè)模型對(duì)于惡意代碼檢測(cè)準(zhǔn)確率有積極影響,準(zhǔn)確率平均可達(dá)到98.1%。最佳情況下惡意代碼檢測(cè)準(zhǔn)確率高達(dá)99.2%,更優(yōu)于目前市面上惡意代碼檢測(cè)模型框架。