吳 戀,趙晨潔,韋萍萍,于國(guó)龍,徐 勇
(1.貴州師范學(xué)院 數(shù)學(xué)與大數(shù)據(jù)學(xué)院,貴州 貴陽(yáng) 550018;2.貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 貴州 貴陽(yáng) 550025;3.哈爾濱工業(yè)大學(xué)(深圳) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,廣東 深圳 518055)
目前,盜取個(gè)人信息數(shù)據(jù)、獲取網(wǎng)上交易密碼、比特幣勒索等事件頻頻出現(xiàn)。現(xiàn)有的通過(guò)特征碼對(duì)比、簽名或者基于啟發(fā)式等病毒檢測(cè)安全機(jī)制已無(wú)法很好處理大數(shù)據(jù)時(shí)代下大量未知,且使用了高新混淆反檢測(cè)技術(shù)的病毒[1,2]。已有研究顯示[3-7],基于深度學(xué)習(xí)的自主學(xué)習(xí)檢測(cè)惡意程序是病毒檢測(cè)技術(shù)的發(fā)展趨勢(shì),將改變未來(lái)反病毒行動(dòng)的游戲規(guī)則。然而當(dāng)前常規(guī)的深度學(xué)習(xí)網(wǎng)絡(luò)模型幾乎是運(yùn)行在服務(wù)器或臺(tái)式機(jī)上,其龐大的參數(shù)權(quán)重的網(wǎng)絡(luò)模型結(jié)構(gòu)決定了對(duì)運(yùn)行環(huán)境有非常大容量存儲(chǔ)空間及較高硬件計(jì)算性能的要求,這使得深度神經(jīng)網(wǎng)絡(luò)模型難以部署在嵌入式系統(tǒng)或硬件資源受限的系統(tǒng)上[8-11]。
本文提出一種輕量級(jí)的基于深度學(xué)習(xí)的計(jì)算機(jī)病毒檢測(cè)方法,方法中基于輕量級(jí)深度網(wǎng)絡(luò)SqueezeNet,解決深度網(wǎng)絡(luò)模型難以部署在嵌入式設(shè)備上應(yīng)用的問(wèn)題,并對(duì)SqueezeNet進(jìn)行卷積結(jié)構(gòu)和特征增強(qiáng)的改進(jìn),使之運(yùn)行速度更快、資源消耗更低且檢測(cè)精度更高;此外,該病毒檢測(cè)方法是將傳統(tǒng)視覺(jué)算法和深度算法進(jìn)行了融合,各取所長(zhǎng),性能相補(bǔ),提高識(shí)別判定準(zhǔn)確度,實(shí)現(xiàn)高效準(zhǔn)確的病毒檢測(cè)。本文為大數(shù)據(jù)時(shí)代下信息安全問(wèn)題做出保障貢獻(xiàn)、為深度學(xué)習(xí)技術(shù)在計(jì)算機(jī)安全行業(yè)應(yīng)用上做出了探索性的貢獻(xiàn)。
為解決已有的病毒檢測(cè)機(jī)制無(wú)法很好地處理大數(shù)據(jù)時(shí)代下大量未知病毒及深度網(wǎng)絡(luò)模型難以部署在嵌入式設(shè)備上應(yīng)用的問(wèn)題,本文提出了一種基于輕量級(jí)深度網(wǎng)絡(luò)的計(jì)算機(jī)病毒檢測(cè)方法。該方法的檢測(cè)機(jī)制原理設(shè)計(jì)為:對(duì)病毒數(shù)據(jù)樣本預(yù)處理,對(duì)使用了加殼技術(shù)為隱藏其真實(shí)意圖躲避殺毒軟件檢測(cè)或?yàn)閴嚎s體積便于傳播滲透的病毒進(jìn)行查克和脫殼處理;采用B2M算法將檢測(cè)樣本映射為可視化的二進(jìn)制灰度圖像并計(jì)算灰度共生矩陣,提取圖像灰度共生矩的目的是有意使用圖像的紋理信息作為樣本識(shí)別的主要判別依據(jù)(紋理是圖像的一個(gè)非常重要的信息,作為圖像的識(shí)別依據(jù)具有顯著效果[12,13],基于灰度共生矩陣可提取出較多的具體的紋理特征);將灰度共生矩陣送入輕量級(jí)深度網(wǎng)絡(luò)模型中,由該輕量級(jí)深度網(wǎng)絡(luò)自動(dòng)提取特征,最后實(shí)現(xiàn)精準(zhǔn)高效的病毒檢測(cè)。該方法中,將樣本映射為灰度圖像并計(jì)算出灰度共生矩陣后再送入深度網(wǎng)絡(luò)模型中進(jìn)行處理,其目的起到引導(dǎo)深度網(wǎng)絡(luò)模型提取紋理信息特征的作用而又避免了傳統(tǒng)的由人工經(jīng)驗(yàn)提取具體紋理特征的弊端。方法總體架構(gòu)如圖1所示。

圖1 基于輕量級(jí)深度網(wǎng)絡(luò)的計(jì)算機(jī)病毒檢測(cè)方法
其檢測(cè)流程如下:①對(duì)待測(cè)樣本進(jìn)行預(yù)處理;②將樣本轉(zhuǎn)灰度圖像并計(jì)算灰度共生矩陣;③樣本的灰度共生矩陣送入輕量級(jí)深度網(wǎng)絡(luò)模型進(jìn)行檢測(cè)。
本文的病毒檢測(cè)方案涉及到的技術(shù)問(wèn)題有樣本的預(yù)處理、樣本如何轉(zhuǎn)為可視化的灰度圖像及怎么計(jì)算灰度圖像的灰度共生矩、輕量級(jí)深度網(wǎng)絡(luò)的設(shè)計(jì)。
大部分的病毒為了隱藏其真實(shí)意圖躲避殺毒軟件的檢測(cè),或者是為了壓縮體積便于傳播和滲透,都經(jīng)過(guò)了加殼處理。為了很好分析病毒文件,還原病毒文件的真實(shí)結(jié)構(gòu)狀態(tài),我們首先對(duì)樣本文件進(jìn)行查殼與脫殼的預(yù)處理。
本文采用的查殼工具為DIE。DIE(detect it easy)是一款功能強(qiáng)大、輕量級(jí)的查殼工具,其支持Windows、Mac、Linux系統(tǒng),能夠?qū)E文件、ELF文件、文本文件、二進(jìn)制文件等進(jìn)行查殼,檢測(cè)文件是否加殼、殼類型、編程語(yǔ)言等信息。本文根據(jù)查殼信息對(duì)應(yīng)采用相應(yīng)的脫殼工具進(jìn)行自動(dòng)脫殼處理,VMUNPACKER是本文使用較頻繁的一個(gè)脫殼工具。VMUNPACKER是超級(jí)巡警虛擬機(jī)自動(dòng)脫殼機(jī),是一款功能強(qiáng)大的脫殼工具,其完全基于虛擬機(jī)技術(shù),能對(duì)很多已知及未知?dú)みM(jìn)行脫殼處理。
本文提出的病毒檢測(cè)方法有別于以往的基于病毒特征碼對(duì)比、行為檢測(cè)或病毒代碼反編譯分析等方法,本文是將病毒映射為可視化的灰度圖像來(lái)處理。我們采用B2M算法將樣本映射為二進(jìn)制灰度圖像并計(jì)算灰度共生矩陣,以灰度共生矩陣作為輕量級(jí)深度神經(jīng)網(wǎng)絡(luò)的輸入。提取圖像灰度共生矩的目的是有意使用圖像的紋理信息作為樣本識(shí)別的主要判別依據(jù)。紋理是圖像的一個(gè)非常重要的信息,作為圖像的識(shí)別依據(jù)具有顯著效果[12,13]。灰度共生矩陣是一種基于統(tǒng)計(jì)思想的紋理分析方法,基于它可提取出較多的具體的紋理特征。然而,本文計(jì)算出灰度共生矩陣后直接將其送入深度神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行處理,由深度神經(jīng)網(wǎng)絡(luò)自動(dòng)提取特征,并未由人工去提取具體的紋理特征,其目的在于引導(dǎo)深度神經(jīng)網(wǎng)絡(luò)提取紋理信息特征的作用而又避免了傳統(tǒng)人工直接提取具體特征的弊端。
(1)樣本映射為灰度圖像
利用B2M算法將可執(zhí)行文件映射為灰度圖像,存儲(chǔ)的圖像格式為PNG,其實(shí)現(xiàn)過(guò)程如圖2所示。

圖2 可執(zhí)行文件轉(zhuǎn)灰度圖像的實(shí)現(xiàn)
對(duì)給定的可執(zhí)行二進(jìn)制文件將每8位轉(zhuǎn)換為一個(gè)無(wú)符號(hào)的整數(shù)(取值范圍為0-255),此外,設(shè)定固定的行寬為一個(gè)向量,最終整個(gè)文件將生成為一個(gè)二維數(shù)組;隨后將此二維數(shù)組可視化為一個(gè)灰度圖像,其中數(shù)組中的每個(gè)元素對(duì)應(yīng)圖像中的一個(gè)像素(因?yàn)閿?shù)組中的每一個(gè)元素其取值范圍為0-255,正對(duì)應(yīng)灰度圖像中每個(gè)像素的取值范圍——0表示黑色、255表示白色)。圖3為正常文件qq.exe和病毒文件Trojan-GameThief.Win32.WO W.aect映射為灰度圖像的示例。

圖3 樣本轉(zhuǎn)灰度圖像示例
(2)提取灰度共生矩陣
紋理是圖像的一個(gè)非常重要的信息,它體現(xiàn)了物體表面的具有緩慢變化或者周期性變化的結(jié)構(gòu)排列屬性[13]。本文采用灰度共生矩陣(grey-level co-occurrence matrix,GLCM)對(duì)圖像紋理進(jìn)行表示。灰度共生矩陣是一種基于統(tǒng)計(jì)思想的紋理分析方法,是通過(guò)對(duì)圖像上保持某距離的兩像素分別具有某灰度的狀況進(jìn)行統(tǒng)計(jì)得到的。本文提取灰度共生矩陣的算法步驟為:
步驟1 取圖像 (N×N) 中任意一像素點(diǎn)i, 其位置為 (x,y)、 該點(diǎn)的灰度值記為gi, 另取偏離i點(diǎn)的另一像素點(diǎn)j, 其位置為 (x+Δx,y+Δy)、 該點(diǎn)灰度值記為gj, 則該像素對(duì)的灰度值為 (gi,gj)。 (注:這里取Δx=1, Δy=0, 即像素對(duì)是水平的,計(jì)算的是水平灰度共生矩陣。)
步驟2 令點(diǎn)i在整個(gè)畫面上移動(dòng),點(diǎn)j保持與i之間的空間關(guān)系隨之移動(dòng),則會(huì)得到各種 (gi,gj) 值;本文圖像的灰度值級(jí)數(shù)為0-255,即gi、gj的取值范圍為0-255。也即是,gi、gj有256種取值,則 (gi,gj) 的組合共有256*256種可能。
步驟3 對(duì)于一張圖片,統(tǒng)計(jì)出每一種 (gi,gj) 組合值出現(xiàn)的次數(shù),然后排列成一個(gè)256*256的方陣A。 也即是,方陣A的元素agigj對(duì)應(yīng)的是這一種 (gi,gj) 灰度值對(duì)出現(xiàn)的總的次數(shù)。
步驟4 將方陣A里的每一元素除以 (gi,gj) 所有組合出現(xiàn)的總次數(shù)之和,將方陣?yán)锏拿總€(gè)元素歸一化為出現(xiàn)的概率p(gi,gj), 得到灰度共生矩陣G。 該矩陣表示的是圖像中滿足 (i,j) 兩點(diǎn)相對(duì)空間位置關(guān)系的兩點(diǎn)灰度值出現(xiàn)的聯(lián)合概率分布,可用如下公式來(lái)表示
式中:S表示一張圖片中滿足 (i,j) 兩點(diǎn)空間位置關(guān)系的兩點(diǎn)的集合, N{…} 表示集合中的點(diǎn)對(duì)的數(shù)目。
上述中 (Δx,Δy) 還可以設(shè)定為不同的取值,不同的組合可以得到不同的灰度共生矩。本文設(shè)計(jì)并計(jì)算了4種灰度共生矩陣:水平灰度共生矩陣 (Δx=1, Δy=0)、 垂直灰度共生矩陣 (Δx=0, Δy=1)、 45度灰度共生矩陣 (Δx=1, Δy=1) 和135度灰度共生矩陣 (Δx=-1, Δy=-1), 然后取這4個(gè)度灰共生矩陣的平均值作為最終的度灰共生矩陣。
灰度共生矩陣計(jì)算出來(lái)后,可以基于它提取出許多具體的不同紋理特征,例如:均勻性、相關(guān)性、方差、和平均、相關(guān)信息測(cè)度等[13]。但本文在此并不提取這些具體的紋理特征,本文設(shè)計(jì)的方法是將灰度共生矩陣送入到輕量級(jí)深度網(wǎng)絡(luò)中去自動(dòng)提取特征,起到了引導(dǎo)輕量級(jí)深度網(wǎng)絡(luò)模型提取紋理信息特征的作用而又避免了傳統(tǒng)人工直接提取具體特征的弊端。
深度學(xué)習(xí)本質(zhì)上是由大量的單一神經(jīng)元相互連接組成的深度神經(jīng)網(wǎng)絡(luò),經(jīng)過(guò)訓(xùn)練,神經(jīng)元之間的連接強(qiáng)度(權(quán)值)將會(huì)被改變,連接強(qiáng)度的分布決定了網(wǎng)絡(luò)的性能。目前應(yīng)用比較廣泛的深度學(xué)習(xí)模型體系根據(jù)學(xué)習(xí)單元的不同分為[14,15]:基于受限波爾茲曼機(jī)的深度學(xué)習(xí)架構(gòu)、基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)架構(gòu)、基于自編碼器的深度學(xué)習(xí)架構(gòu)。本文的病毒檢測(cè)機(jī)制中采用的是基于卷積神經(jīng)網(wǎng)絡(luò)CNN的深度學(xué)習(xí)架構(gòu)。然而一般的深度神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練出來(lái)是一個(gè)具有龐大參數(shù)權(quán)重的網(wǎng)絡(luò)模型,其對(duì)運(yùn)行環(huán)境有非常大容量存儲(chǔ)空間及較高的硬件計(jì)算性能要求,這使得深度神經(jīng)網(wǎng)絡(luò)模型難以部署在嵌入式系統(tǒng)或硬件資源受限的系統(tǒng)上。針對(duì)此問(wèn)題,本文設(shè)計(jì)了輕量級(jí)的深度神經(jīng)網(wǎng)絡(luò)模型,在保證病毒檢測(cè)高精準(zhǔn)的情況下大大減小了網(wǎng)絡(luò)模型的大小,使整個(gè)病毒檢測(cè)方法能輕松部署運(yùn)行在嵌入式系統(tǒng)上。
本文的輕量級(jí)深度網(wǎng)絡(luò)采用的是SqueezeNet輕量級(jí)網(wǎng)絡(luò),并對(duì)該網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了卷積結(jié)構(gòu)和特征增強(qiáng)的改進(jìn),使之運(yùn)行速度更快、資源消耗更低且檢測(cè)精度更高。
SqueezeNet[11]是一個(gè)超輕量級(jí)的深度神經(jīng)網(wǎng)絡(luò),由若干個(gè)fire模塊結(jié)合卷積網(wǎng)絡(luò)中卷積層、降采樣層、全連接層組成。其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。

圖4 SqueezeNet網(wǎng)絡(luò)結(jié)構(gòu)
SqueezeNet網(wǎng)絡(luò)結(jié)構(gòu)中的核心為fire模塊,fire模塊是SqueezeNet輕量級(jí)、參數(shù)較少的原因所在。一個(gè)fire模塊由squeeze部分和expand部分組成,squeeze部分是一組連續(xù)的1×1卷積,expand部分則是由一組連續(xù)的1×1卷積和一組連續(xù)的3×3卷積concatenate組成。圖5為SqueezeNet網(wǎng)絡(luò)中的fire結(jié)構(gòu)。其中,H和W分別為特征圖的高和寬,C為特征圖的通道數(shù),S1,e1,e3分別代表卷積核的個(gè)數(shù),同時(shí)也表示對(duì)應(yīng)輸出特征圖的維數(shù)。

圖5 SqueezeNet網(wǎng)絡(luò)中的fire結(jié)構(gòu)
SqueezeNet中通過(guò)將3×3卷積替換成1×1卷積、減少3×3卷積的通道數(shù),顯著減少參數(shù)數(shù)量;此外,SqueezeNet結(jié)構(gòu)中將降采樣操作延后,可以在參數(shù)數(shù)量受限的情況下提高準(zhǔn)確率。SqueezeNet在ImageNet數(shù)據(jù)集上具有與AlexNet相同的識(shí)別精度,但SqueezeNet的參數(shù)比AlexNet少50倍[11]。
SqueezeNet雖然減少了網(wǎng)絡(luò)的參數(shù)、網(wǎng)絡(luò)模型較小,適合于部署在嵌入式系統(tǒng)或存儲(chǔ)資源受限的系統(tǒng)上,但其網(wǎng)絡(luò)結(jié)構(gòu)較深,導(dǎo)致每次樣本的測(cè)試時(shí)間會(huì)較長(zhǎng);此外,SqueezeNet通過(guò)設(shè)計(jì)較深的網(wǎng)絡(luò)深度及延后降采樣操作以確保網(wǎng)絡(luò)模型的準(zhǔn)確率,但因網(wǎng)絡(luò)參數(shù)減少了,跟相同深度的卷積神經(jīng)網(wǎng)絡(luò)模型相比,其網(wǎng)絡(luò)模型的準(zhǔn)確率要低。對(duì)此。本文對(duì)SqueezeNet網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了卷積結(jié)構(gòu)和特征增強(qiáng)的改進(jìn),使之運(yùn)行速度更快、資源消耗更低且檢測(cè)精度更高。
卷積結(jié)構(gòu)的主要改進(jìn)如下:眾所周知,卷積次數(shù)的多少對(duì)計(jì)算復(fù)雜度有很大的影響。常見(jiàn)的卷積優(yōu)化方案為通道數(shù)的選擇,但是這樣的優(yōu)化效果有限。為了取得更好的計(jì)算優(yōu)化效果,我們使用深度可分離卷積對(duì)卷積操作進(jìn)行優(yōu)化。其基本特點(diǎn)為將標(biāo)準(zhǔn)的卷積操作劃分為如圖6所示的Depthwise和Pointwise兩個(gè)部分分別進(jìn)行卷積操作。

圖6 卷積結(jié)構(gòu)優(yōu)化
特征增強(qiáng)的改進(jìn)如下:本文通過(guò)多分支膨脹卷積結(jié)構(gòu)以增強(qiáng)特征的魯棒性,將膨脹卷積與初始卷積得到的特征進(jìn)行組合。基于多分支膨脹卷積結(jié)構(gòu)的特征增強(qiáng)如圖7所示。我們知道,較大的感受野能夠提升模型的性能,究其原因是相對(duì)大的感受野可為模型提取較魯棒的特征。膨脹卷積是在不改變特征層大小的條件下擴(kuò)大感受野的有效辦法。膨脹卷積與初始卷積得出的特征是一個(gè)有效的特征擴(kuò)展方式,這樣的特征組合可增強(qiáng)特征的魯棒性。使用多個(gè)膨脹比率相當(dāng)于使用多個(gè)分支網(wǎng)絡(luò)。我們經(jīng)過(guò)大量實(shí)驗(yàn)發(fā)現(xiàn),基于1、3、5這3個(gè)膨脹比率的膨脹卷積可取得很魯棒的特征提取結(jié)果(其中比率為1的膨脹卷積即初始卷積)。為了減少特征的維數(shù),我們把這3種膨脹卷積進(jìn)行通道融合。

圖7 基于多分支膨脹卷積結(jié)構(gòu)的特征增強(qiáng)
實(shí)驗(yàn)樣本收集了23 000個(gè)病毒樣本和12 000個(gè)正常樣本,總的35 000個(gè)樣本數(shù)據(jù)。其中,病毒樣本一部分來(lái)源微軟開(kāi)源的malware classification數(shù)據(jù)集(https://www.kaggle.com/c/malware-classification/data),一部分來(lái)源于Venustech提供的病毒樣本(http://onlineupdate.leadsec.com.cn),還有一部分來(lái)自SecRepo提供的病毒樣本(http://www.secrepo.com),正常樣本來(lái)源于搜集的Windows上的各種正常的PE格式文件。實(shí)驗(yàn)樣本樣例如圖8所示。

圖8 實(shí)驗(yàn)樣本數(shù)據(jù)樣例
病毒樣本的大小從1.1 KB到35.7 MB,正常文件的大小范圍從1 KB到55.5 MB。樣本的大小范圍見(jiàn)表1。

表1 病毒樣本和正常樣本的大小信息
對(duì)模型的訓(xùn)練,我們將樣本數(shù)據(jù)按比例劃分為訓(xùn)練集和測(cè)試集,其中訓(xùn)練集占總樣本的四分之三,測(cè)試集占總樣本的四分之一。詳細(xì)分配見(jiàn)表2。

表2 訓(xùn)練集和測(cè)試集的劃分情況
(1)本文病毒檢測(cè)方案的檢測(cè)效果驗(yàn)證
將上述所有樣本進(jìn)行本文所述的樣本預(yù)處理、轉(zhuǎn)灰度圖像和提取灰度共生矩陣的操作,將灰度共生矩陣保存為一個(gè)文檔。也即是,最終訓(xùn)練集和測(cè)試集中的樣本數(shù)據(jù)用每一個(gè)樣本的灰度共生矩陣文檔來(lái)代替,如圖9所示。隨后,對(duì)訓(xùn)練集和測(cè)試集中的灰度共生矩陣文檔編寫標(biāo)簽文檔(本文用標(biāo)簽0代表病毒樣本,用標(biāo)簽1代表正常樣本,如圖10所示),利用該樣本數(shù)據(jù)集對(duì)改進(jìn)后的輕量級(jí)深度網(wǎng)絡(luò)SqueezeNet進(jìn)行訓(xùn)練。訓(xùn)練出來(lái)的模型準(zhǔn)確率如表3所示,該實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提取的病毒檢測(cè)方案的可行性和有效性。

圖9 樣本轉(zhuǎn)灰度圖像并提取灰度共生矩陣

圖10 訓(xùn)練集中的標(biāo)簽文檔部分展示
此外,本文對(duì)樣本進(jìn)行預(yù)處理是否有利于病毒檢測(cè)和樣本轉(zhuǎn)灰度圖像后提取灰度共生矩陣作為深度網(wǎng)絡(luò)的輸入是否有利于病毒檢測(cè)分別進(jìn)行了實(shí)驗(yàn)測(cè)試,以驗(yàn)證提出的病毒檢測(cè)方法中相應(yīng)環(huán)節(jié)的有效性,其實(shí)驗(yàn)結(jié)果見(jiàn)表3。表3中,Method1為本文提出的病毒檢測(cè)方法,Method2對(duì)本文提出的方法去除灰度圖形提取灰度共生矩陣的步驟(直接將灰度圖形作為深度神經(jīng)網(wǎng)絡(luò)的輸入),Method3對(duì)本文提出的方法去除樣本預(yù)處理的步驟。同時(shí),我們將本文的方法與傳統(tǒng)機(jī)器學(xué)習(xí)分類算法進(jìn)行了對(duì)比測(cè)試,驗(yàn)證本文使用深度神經(jīng)網(wǎng)絡(luò)自動(dòng)提取特征并進(jìn)行分類的優(yōu)越性,其實(shí)驗(yàn)結(jié)果見(jiàn)表3。表3中,Method4是基于傳統(tǒng)機(jī)器學(xué)習(xí)分類的方法[16,17],是在本文方法的基礎(chǔ)上將深度神經(jīng)網(wǎng)絡(luò)自動(dòng)提取特征并分類改為人工提取具體紋理特征+SVM分類的模式。在Method4方法中,我們基于灰度共生矩陣人工提取了10個(gè)常用的紋理特征向量來(lái)代表該灰度圖像(也即是每一個(gè)原樣本文件被10個(gè)紋理特征向量代替)。提取的這10個(gè)紋理特征向量分別是:相關(guān)、對(duì)比度、角二階矩、熵、逆差距、最大概率、和平均、相異性、和方差、差方差。基于灰度共生矩陣提取這10個(gè)紋理特征向量的具體過(guò)程在此不作介紹,這是比較成熟的技術(shù)、有現(xiàn)成的庫(kù)方法可以調(diào)用。

表3 本文檢測(cè)方法與其它方法對(duì)比
(2)SqueezeNet改進(jìn)后模型大小及檢測(cè)精度驗(yàn)證
SqueezeNet在提出之際,主要的比較對(duì)象為AlexNet。在ImageNet數(shù)據(jù)集上,SqueezeNet具有與AlexNet相同的識(shí)別精度,但SqueezeNet的參數(shù)比AlexNet少50倍[11]。所以本文也將改進(jìn)后的SqueezeNet與AlexNet網(wǎng)絡(luò)模型進(jìn)行比較。
我們使用上述所述的樣本集及本文提出的病毒檢測(cè)方法,對(duì)樣本集做相應(yīng)處理后對(duì)改進(jìn)后的SqueezeNet、原SqueezeNet及AlexNet進(jìn)行訓(xùn)練,并檢驗(yàn)其對(duì)病毒檢測(cè)的識(shí)別精度,所得結(jié)果見(jiàn)表4。

表4 網(wǎng)絡(luò)模型的病毒檢測(cè)精度測(cè)試
從表3中可以看出:①M(fèi)ethod1(本文方法)和Method3之間的區(qū)別在于有沒(méi)有加入對(duì)樣本預(yù)處理的環(huán)節(jié),Method1的檢測(cè)正確率為95.3%、Method3的檢測(cè)正確率為90.2%,說(shuō)明本文提出的查克脫殼的預(yù)處理環(huán)節(jié)對(duì)提高病毒檢測(cè)識(shí)別能力有益。②Method1(本文方法)和Method2之間的區(qū)別在于是否將灰度圖像進(jìn)一步轉(zhuǎn)為灰度共生矩陣作為深度神經(jīng)網(wǎng)絡(luò)的輸入,通過(guò)實(shí)驗(yàn)數(shù)據(jù)可知,將灰度圖像進(jìn)一步轉(zhuǎn)為灰度共生矩陣能幫助深度神經(jīng)網(wǎng)絡(luò)排除圖像中的一些無(wú)用干擾,更利于深度神經(jīng)網(wǎng)絡(luò)對(duì)其特征的學(xué)習(xí),有利于分類檢測(cè)識(shí)別。③Method1(本文方法)和Method4之間的區(qū)別在于分類器和特征提取的方式不同,Method1是深度神經(jīng)網(wǎng)絡(luò)自動(dòng)提取特征,Method4是人工提取。通過(guò)實(shí)驗(yàn)數(shù)據(jù)可知,傳統(tǒng)的人工提取特征的分類方式?jīng)]有深度學(xué)習(xí)自動(dòng)提取特征進(jìn)行分類識(shí)別的效果好。
從表4中可以看出:①本文改進(jìn)的SqueezeNet網(wǎng)絡(luò)模型大小在6 M左右,屬于一個(gè)輕量級(jí)的深度神經(jīng)網(wǎng)絡(luò)模型,完全可嵌入到像手機(jī)這樣的端設(shè)備中去應(yīng)用,解決了深度網(wǎng)絡(luò)模型長(zhǎng)期因參數(shù)龐大需消耗大量硬件資源而難以部署在嵌入式設(shè)備上應(yīng)用的問(wèn)題。改進(jìn)后的SqueezeNet網(wǎng)絡(luò)模型大小比原始網(wǎng)絡(luò)模型略大,是因?yàn)閷?duì)SqueezeNet網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了卷積結(jié)構(gòu)和特征增強(qiáng)的改進(jìn)所導(dǎo)致的。②改進(jìn)后的SqueezeNet網(wǎng)絡(luò)模型,其在本文中的病毒檢測(cè)應(yīng)用中有明顯優(yōu)異的檢測(cè)能力。
本文提出了一種計(jì)算機(jī)病毒檢測(cè)方法,該方法將樣本映射為灰度圖像來(lái)處理,并提取灰度共生矩陣送入輕量級(jí)深度網(wǎng)絡(luò)SqueezeNet中完成特征的自動(dòng)提取及分類識(shí)別。該方法有意使用紋理特征對(duì)病毒進(jìn)行識(shí)別,但并未直接提取具體的紋理特征,而是將樣本的灰度共生矩陣傳遞給輕量級(jí)深度神經(jīng)網(wǎng)絡(luò),由深度神經(jīng)網(wǎng)絡(luò)自行提取特征來(lái)進(jìn)行分類識(shí)別。該方法將傳統(tǒng)視覺(jué)特征與深度神經(jīng)網(wǎng)絡(luò)進(jìn)行整合,最后實(shí)現(xiàn)了病毒的高準(zhǔn)確率判別;此外,本文對(duì)SqueezeNet進(jìn)行了改進(jìn),使其檢測(cè)精度更高、計(jì)算性能更優(yōu)化。本文為大數(shù)據(jù)時(shí)代下大量未知病毒的檢測(cè)提供了一種良好的解決方案,并解決了深度網(wǎng)絡(luò)模型長(zhǎng)期因參數(shù)龐大需消耗大量硬件資源而難以部署在嵌入式設(shè)備上應(yīng)用的問(wèn)題。實(shí)驗(yàn)驗(yàn)證了所提出方法各個(gè)環(huán)節(jié)的有效性。本文提出的方法是在Windows下實(shí)踐的,但該方法設(shè)計(jì)思想不局限在Windows下應(yīng)用,可用于其它的操作系統(tǒng)上。