盧 豐,王 晨
(1.武漢郵電科學(xué)研究院湖北武漢 430000;2.南京烽火天地通信科技有限公司 江蘇南京 210000)
隨著科技發(fā)展的日新月異,計(jì)算機(jī)已經(jīng)在人們的日常生活中扮演著不可代替的角色,然而人們?cè)谙硎苤?jì)算機(jī)為生活帶來(lái)便利的同時(shí)也要警惕隨之而來(lái)的風(fēng)險(xiǎn)和無(wú)所不在的威脅。
伴隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,移動(dòng)端應(yīng)用安全也逐漸受到人們的重視。2017 年,360 公司發(fā)布的關(guān)于Android 惡意軟件調(diào)查數(shù)據(jù)顯示,2017 年平均每天約有58 人手機(jī)遭到入侵,惡意軟件日增長(zhǎng)數(shù)量達(dá)到2 萬(wàn),入侵用戶手機(jī)總計(jì)達(dá)2.14 億次,超過八成給用戶造成了經(jīng)濟(jì)損失[1]。
綜上可知,惡意代碼無(wú)論給人們?nèi)粘I钸€是國(guó)家的安全都帶來(lái)了嚴(yán)重的威脅和影響,因此對(duì)惡意代碼進(jìn)行高效快速的識(shí)別具有十分重要的意義,吸引了全球各國(guó)大量目光與關(guān)注。鑒于此,文中給出基于圖像特征的惡意代碼識(shí)別方法,首先將代碼文件映射到紅、綠、藍(lán)通道,同時(shí)建立相應(yīng)的彩色圖像文件;其次從惡意代碼文件出發(fā),完成局部信息熵的計(jì)算,并將計(jì)算的結(jié)果作為透明度,使之轉(zhuǎn)換成擁有透明度的圖像文件;最后通過CNN 提取惡意代碼特征,形成識(shí)別檢測(cè)分類模型。在實(shí)驗(yàn)結(jié)果的基礎(chǔ)上探究訓(xùn)練集的數(shù)量,并與訓(xùn)練時(shí)間關(guān)聯(lián),再和其他實(shí)驗(yàn)結(jié)果展開對(duì)比研究,最終證明文中方法有較短的檢測(cè)時(shí)間和較高的精確度,展現(xiàn)出了良好的實(shí)用性。
惡意代碼又稱為惡意軟件,它是指能夠在計(jì)算機(jī)系統(tǒng)中進(jìn)行非授權(quán)操作,以實(shí)施破壞或竊取信息的代碼。惡意代碼范圍很廣,包括利用各種網(wǎng)絡(luò)、操作系統(tǒng)、軟件和物理安全漏洞向計(jì)算機(jī)系統(tǒng)傳播惡意負(fù)載的程序性的計(jì)算機(jī)安全威脅。惡意代碼的形式也多種多樣,它既可以是二進(jìn)制的代碼,同時(shí)又可以是可執(zhí)行文件。惡意代碼可利用Internet 或物理媒介傳播,在無(wú)須授權(quán)的前提下也可自主運(yùn)行,以此實(shí)現(xiàn)對(duì)用戶計(jì)算機(jī)數(shù)據(jù)信息的非法獲取和利用,導(dǎo)致用戶蒙受不同程度的損失,因此必須引起高度的關(guān)注和重視。
2011 年,Nataraj[2]提出了惡意代碼圖像化的觀點(diǎn),并且表示能將惡意代碼文件轉(zhuǎn)變?yōu)橐环N可視化的圖像,這樣就省去了對(duì)惡意代碼的解析等一系列復(fù)雜操作,節(jié)省了檢測(cè)識(shí)別所需的時(shí)間,因此被學(xué)術(shù)領(lǐng)域廣泛研究。惡意代碼圖像化方法直接從二進(jìn)制文件的字節(jié)級(jí)別進(jìn)行分析,但是在信息感知方面比以前基于字節(jié)的惡意代碼功能更全面,并且可以更快速地發(fā)現(xiàn)文件中的差異。因?yàn)樵摲椒ň哂胁煌臋z測(cè)機(jī)制,所以在多次測(cè)試中均顯示出良好的獨(dú)立檢測(cè)率,并已經(jīng)逐漸被業(yè)界集成到防病毒引擎群中進(jìn)行集中部署,屬于全新檢測(cè)引擎。具體思路是將給定惡意代碼二進(jìn)制文件讀取為8 位無(wú)符號(hào)整數(shù)向量,并生成二維數(shù)組。文件中的每個(gè)字節(jié)可以完全對(duì)應(yīng)于灰度圖像中每個(gè)點(diǎn)的像素值,范圍為[0,255](0 表示黑色,255 表示白色)[3]。然后,研究人員使用廣義搜索樹(GIST)算法提取惡意代碼的圖像特征,并使用支持向量機(jī)(SVM)和其他深度學(xué)習(xí)算法進(jìn)行惡意代碼的分類。
惡意代碼圖像化始一問世就受到學(xué)術(shù)界普遍關(guān)注,后續(xù)研究則以此為前提完成大量?jī)?yōu)化調(diào)整,最終收獲一系列有用成果。2014 年,韓曉光等[4]在惡意代碼圖像紋理聚類方面完成我國(guó)開拓性探索。2016年,任卓君等[5]研究了優(yōu)化后惡意代碼可視化技術(shù),該技術(shù)主要將代碼段局部熵轉(zhuǎn)變成熵像素圖,采用視覺形式反映代碼內(nèi)部結(jié)構(gòu)特征,同時(shí)依靠降維手段大幅優(yōu)化相似度對(duì)比與分類效率。張晨斌[6]優(yōu)化了Android 惡意代碼灰度策略,通過與GIST、Tamura等有關(guān)特征提取法,再依靠CAFFE 編寫5 種分類算法,同時(shí)開展了相應(yīng)實(shí)驗(yàn)。上述成果使得之前研究中對(duì)惡意代碼的靜態(tài)分析問題得到解決,找到了惡意代碼難以解決其樣本加殼的方案。伴隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,一些研究人員通過該技術(shù)完成了惡意代碼圖像分類,效果非常顯著。2018 年,Cui等[7]通過CNN 裁剪惡意代碼灰度圖像,同時(shí)以bat 算法來(lái)平衡。依靠CNN 算法對(duì)惡意代碼家族完成有效的分類。2017 年,Rezende 等[8]面向Malimg 數(shù)據(jù)開展更深層的分析工作,通過遷移學(xué)習(xí)方法順利完成了Resnet 網(wǎng)絡(luò)(基于ImageNet 數(shù)據(jù)集訓(xùn)練后)至惡意代碼圖像的遷移,從而大大提高了原始數(shù)據(jù)集的準(zhǔn)確性。基于惡意代碼可視化檢測(cè)法屬于端至端學(xué)習(xí)法,能有效降低檢測(cè)識(shí)別階段的特征工程開銷,由輸入至輸出惡意代碼過程直接完成預(yù)測(cè),不必手動(dòng)選取與過濾中間等環(huán)節(jié),就能將結(jié)果誤差置于神經(jīng)網(wǎng)絡(luò)模型各層傳輸(反向觸底),直至模型擁有所需的理想效果或者模型收斂為止。經(jīng)過近10年的研究,可視化惡意代碼方案已被證實(shí)擁有可行性與實(shí)用性,而且受學(xué)術(shù)、工業(yè)領(lǐng)域的高度重視,應(yīng)用極其普遍。
惡意代碼文件轉(zhuǎn)換為對(duì)應(yīng)RGB 圖的算法如圖1所示,它的原理是將惡意代碼文件以字節(jié)為單位分別映射到對(duì)應(yīng)的3 個(gè)顏色通道上。3 個(gè)顏色通道中的每一個(gè)都具有256 個(gè)顏色級(jí)別。相應(yīng)的惡意代碼文件經(jīng)過解壓脫殼后以字節(jié)為單位,取值范圍為0x00~0xFF。將它們按照每3 個(gè)字節(jié)單位長(zhǎng)度劃分開后映射到3 個(gè)顏色通道。例如,將字節(jié)EFCEBC 轉(zhuǎn)化為對(duì)應(yīng)的RGB 值(239,207,188)。按照這種方法便可以將惡意代碼的代碼文件分別映射到對(duì)應(yīng)的紅、綠、藍(lán)3 種顏色的通道中轉(zhuǎn)化為RGB 圖像,對(duì)比于只有一種顏色通道的灰度圖,RGB 圖的顏色通道是灰度圖顏色通道的3 倍,因此具有比灰度圖更多的特征信息,在惡意代碼的分類識(shí)別中會(huì)更加精準(zhǔn)。
圖1 RGBA圖像算法圖
信息熵通常是指信息中所包含的不確定性,如果一個(gè)數(shù)據(jù)集中只有一個(gè)元素,則該數(shù)據(jù)集的信息熵為零;相反,如果數(shù)據(jù)集中所有的元素均勻分布,則信息熵達(dá)到最大值。惡意代碼為了躲避殺毒軟件的偵測(cè)會(huì)進(jìn)行壓縮加密等操作,信息熵值會(huì)普遍偏高,所以信息熵也可以用于檢測(cè)和識(shí)別惡意代碼文件。
RGBA 圖像的生成方法如下所示:
1)將惡意代碼文件劃分成字節(jié)長(zhǎng)度為256 的數(shù)據(jù)塊,如果不足則在末尾用0 填充。
2)計(jì)算上述步驟所得到的數(shù)據(jù)塊的信息熵,具體計(jì)算公式如式(1)所示,其中,pj表示該字節(jié)出現(xiàn)的概率。
3)為了將信息熵映射到對(duì)應(yīng)的透明通道,需要將信息熵值進(jìn)行放大處理[13],用式(2)將信息熵值的取值范圍放大到[0,255]。
4)惡意代碼文件生成的RGB 圖像是由3 個(gè)顏色通道最終重疊合并為一個(gè)像素點(diǎn)構(gòu)成的,每個(gè)數(shù)據(jù)塊中有256 個(gè)字節(jié)單位。依據(jù)這種規(guī)則將信息熵值生成對(duì)應(yīng)的Alpha Map 矩陣。
5)將信息熵值所生成的對(duì)應(yīng)Alpha Map 矩陣映射到透明度通道,并將RGB 圖相互融合,形成透明的彩色圖像,即為實(shí)驗(yàn)生成的RGBA 圖像。
文中通過CNN 面向惡意代碼相應(yīng)特征實(shí)現(xiàn)準(zhǔn)確提取及分類,能夠減少噪聲對(duì)實(shí)驗(yàn)結(jié)果造成的影響,使得實(shí)驗(yàn)結(jié)果更準(zhǔn)確。卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)對(duì)其性能有較大的影響,不同的結(jié)構(gòu)會(huì)造成明顯差異。該實(shí)驗(yàn)使用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),在首層卷積層采用32 卷積核對(duì)惡意代碼進(jìn)行有效特征碼的提取檢測(cè)識(shí)別,每個(gè)卷積核的大小為3×3,并使用ReLu函數(shù)作為激活函數(shù),因?yàn)槠渚哂休^好的飽和性和線性特征,然后再加上一個(gè)相同的卷積層。再使用2×2的池化層,縮小并簡(jiǎn)化首層所得到的要素映射組,以消除冗余和次要影響的要素。最后,通過完全連接層發(fā)送到softmax 分類器來(lái)進(jìn)行惡意代碼的識(shí)別及分類[14]。
在分類算法中,有基本指標(biāo)和更能表達(dá)分類器效果的指標(biāo)。其中,基本指標(biāo)包括[15]真正例(TP)、假正例(FP)、真負(fù)例(TN)、假負(fù)例(FN)。通常把正樣例正確分類的概率稱為真例率(TR),也叫作召回率。相反地,將正樣例錯(cuò)誤分類的概率稱為假例率(FP),即為誤判率。正確分類的樣例的數(shù)量占總正確樣例數(shù)量的比例用精確度(PR)來(lái)表示。精確度和召回率的調(diào)和均值用F1-Socre 來(lái)表示。所有正確樣例與總樣例的比值稱為準(zhǔn)確率(Accuracy)。具體的評(píng)估指標(biāo)公式如表1 所示。
表1 評(píng)估指標(biāo)公式
該實(shí)驗(yàn)數(shù)據(jù)重點(diǎn)來(lái)自兩方面,分別是微軟公司在Kaggle 上公開發(fā)布的惡意代碼文件的數(shù)據(jù)集[16]和互聯(lián)網(wǎng)上收集的樣本。文中實(shí)驗(yàn)環(huán)境如表2 所示。
表2 實(shí)驗(yàn)環(huán)境
數(shù)據(jù)內(nèi)大量有用信息均處于載體圖像各像素點(diǎn)內(nèi)。數(shù)據(jù)涵蓋結(jié)構(gòu)等要素,但彼此間要素差異之處由圖像決定。因此選擇不同的參數(shù)作為圖像的特征可以得出不同的實(shí)驗(yàn)結(jié)果。該實(shí)驗(yàn)中所使用的各類圖像的主要生成方法如下:
1)灰度圖(Gray Image):如圖2 所示,該圖像是通過B2M 算法將惡意代碼文檔的二級(jí)制代碼文件映射到單一通道形成的灰度圖像[17]。
圖2 灰度圖
2)信息熵圖(Shannon Image)[18]:生成的信息熵圖如圖3 所示。信息熵圖的像素點(diǎn)由惡意代碼的信息熵值構(gòu)成,信息熵值根據(jù)惡意代碼文檔計(jì)算得出,在將惡意代碼文件的信息熵值作為圖像的像素點(diǎn)坐標(biāo)值之前,需要先將信息熵值進(jìn)行放大,這個(gè)放大過成需要根據(jù)指標(biāo)進(jìn)行。
圖3 信息熵圖
3)彩色圖(RGB 圖):生成的RGB 圖像如圖4 所示。為映射到彩色圖像的R、G、B 通道,需要先將惡意代碼文件劃分為3 個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)映射到相應(yīng)顏色通道,最后對(duì)每個(gè)數(shù)據(jù)塊所映射的圖像進(jìn)行融合處理,得到彩色圖像。圖5 為文中提出的RGBA 圖像。
圖4 RGB圖
圖5 RGBA圖
文中在所有樣本集中隨機(jī)抽取1 000 個(gè)樣本作為此次實(shí)驗(yàn)的訓(xùn)練集,抽取500 個(gè)樣本作為此次實(shí)驗(yàn)的測(cè)試集,并且選用上述表2 中所介紹的重要指標(biāo)PR、Recall、F1-Socre 和Accuracy 作為實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果評(píng)測(cè)指標(biāo)。對(duì)不同的代碼進(jìn)行不同的可視化圖像之后所得到的實(shí)驗(yàn)結(jié)果如表3 所示。
表3 不同代碼可視化圖像的實(shí)驗(yàn)結(jié)果
根據(jù)所得結(jié)果分析可知,在準(zhǔn)確率方面,彩色圖高于灰度圖,灰度圖高于信息熵圖,RGBA 圖相比較于其他圖像最高,且召回率亦是如此。借此不難發(fā)現(xiàn),提出方法可面向二進(jìn)制惡意代碼文件進(jìn)行有效的特征信息提取,并能夠?qū)ζ溥M(jìn)行正確分類,有效地提高了檢測(cè)識(shí)別效率。
接著通過實(shí)驗(yàn)來(lái)分析樣本數(shù)量對(duì)準(zhǔn)確率和訓(xùn)練時(shí)間的影響。為研究?jī)烧呤苡绊懗潭?,選擇500、700、1 000、1 500、2 000 個(gè)訓(xùn)練樣本進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如圖6 所示。根據(jù)所得結(jié)果分析可知,在初始階段樣本增多情況下,準(zhǔn)確率也有較為明顯的上升趨勢(shì)。但是在訓(xùn)練樣本的數(shù)量超過一定數(shù)值之后,這種上升趨勢(shì)隨之逐漸變小。然而,隨著訓(xùn)練樣本數(shù)量的增加,訓(xùn)練所需的時(shí)間仍會(huì)呈現(xiàn)線性增加的形式,即隨著樣本數(shù)目的提升所需要的時(shí)間也更長(zhǎng)。
圖6 訓(xùn)練樣本數(shù)量對(duì)精確率和訓(xùn)練時(shí)間的影響
文中提出了一種基于圖像特征的惡意代碼圖像化識(shí)別檢測(cè)方法,首先將惡意代碼進(jìn)行查殼和脫殼之后的源代碼文件映射到紅、綠、藍(lán)3 種顏色的彩色圖像,然后計(jì)算其對(duì)應(yīng)的信息熵值,并且按照計(jì)算結(jié)果作為彩色圖像的透明度值,將惡意代碼文件轉(zhuǎn)換為帶有透明度的彩色圖像文件。在科學(xué)實(shí)驗(yàn)前提下分析訓(xùn)練集數(shù)量與訓(xùn)練時(shí)間關(guān)聯(lián),再和其他實(shí)驗(yàn)方法所得的結(jié)果進(jìn)行比較分析。綜合實(shí)驗(yàn)數(shù)據(jù)表明,所提方法具有較短的檢測(cè)時(shí)間和較高的精確率,展現(xiàn)出良好的實(shí)用性。隨著時(shí)間的不斷推移,Internet發(fā)展越來(lái)越快,惡意軟件數(shù)量隨之增多,導(dǎo)致Internet 安全遭受巨大威脅。為了讓用戶享有和諧、友好的網(wǎng)絡(luò)環(huán)境,必須盡可能提高檢測(cè)識(shí)別效果,及時(shí)消除各種危險(xiǎn)隱患,故而文種方法的提出意義重大,未來(lái)需要進(jìn)行更深層研究與探索!