ICAIS 2019(人工智能與安全國際會議)論文鏈接:A Novel Malware Detection and Classification Method Based on Capsule Network
作者:Shu-wei Wang等人
單位:中國數(shù)學工程與先進計算機國家重點實驗室铃拇,鄭州杀捻,中國
first online:11 July 2019
摘要
通過使用偽裝技術(shù)(例如代碼混淆貌矿,打包和簽名),惡意軟件很有可能逃脫殺毒軟件的殺害。為了有效地檢測惡意軟件,傳統(tǒng)的機器學習方法通??常需要事先進行復雜的特征提取工作,CNN和其他深度學習方法通??常需要大量標記的樣本馆里,所有這些都會影響檢測性能。針對這些問題可柿,本文提出了一種基于惡意軟件彩色圖像可視化技術(shù)和膠囊網(wǎng)絡(luò)的改進的深度學習方法(ColCaps)來檢測惡意軟件鸠踪。首先,惡意軟件被轉(zhuǎn)換為彩色圖像复斥。然后营密,基于動態(tài)路由的膠囊網(wǎng)絡(luò)用于檢測和分類彩色圖像。由于沒有高級特征提取功能目锭,并且只有少量標記的樣本评汰,ColCaps在跨平臺檢測和分類方面具有更好的性能。實驗結(jié)果表明痢虹,該方法在Android和Windows平臺上的檢測精度分別為99.3%和96.5%被去,比現(xiàn)有方法提高了20%。同時奖唯,Drebin數(shù)據(jù)集中的分類任務具有98.2%的準確性惨缆,這是對先前DREBIN的重大改進。
1 引言
隨著大數(shù)據(jù)時代的到來丰捷,互聯(lián)網(wǎng)技術(shù)和移動互聯(lián)網(wǎng)技術(shù)發(fā)展迅速坯墨,惡意應用程序的數(shù)量也呈爆炸性增長,這給我們的網(wǎng)絡(luò)空間帶來了前所未有的挑戰(zhàn)病往。根據(jù)賽門鐵克的《 2018年互聯(lián)網(wǎng)安全威脅報告》(ISTR)[1]捣染,植入式攻擊在2017年增加了200%,新的移動惡意軟件變種增加了54%停巷。為了商業(yè)利益耍攘,制造商一直在制作灰色軟件應用程序累贤,這些應用程序會泄漏智能手機設(shè)備中的隱私數(shù)據(jù)。每天都有數(shù)以百萬計的惡意代碼進入Internet少漆,但是現(xiàn)有的通用網(wǎng)絡(luò)安全檢測技術(shù)無法有效地檢測到它們,這將給個人硼被,企業(yè)示损,機構(gòu)甚至國家造成巨大損失。
目前嚷硫,在惡意軟件檢測領(lǐng)域有很多研究成果检访,但是一些關(guān)鍵問題仍然無法解決。例如仔掸,訓練需要大量的標記樣本脆贵,早期的特征提取太復雜,跨平臺惡意軟件檢測的準確性不高起暮。為了解決上述問題卖氨,本文提出了一種基于惡意軟件圖像可視化技術(shù)和深度學習技術(shù)的跨平臺惡意軟件檢測與分類方法。使用惡意軟件代碼彩色圖像生成技術(shù)和膠囊網(wǎng)絡(luò)框架负懦,將經(jīng)過特殊處理的可執(zhí)行文件(APK筒捺,DLL,EXE等)轉(zhuǎn)換為彩色RGB圖像纸厉。然后系吭,將生成的均勻彩色圖像發(fā)送到膠囊網(wǎng)絡(luò)以提取有效特征并訓練檢測模型。最后颗品,將訓練有素的膠囊網(wǎng)絡(luò)模型用于未知軟件的檢測和惡意軟件的同源性分類分析肯尺。該方法實現(xiàn)了跨平臺惡意軟件的檢測和分類。 Drebin數(shù)據(jù)集中的分類精度達到98.2%躯枢,未知軟件的檢測精度達到96.5%(Windows)和99.3%(Android)则吟。
提出的方法的主要創(chuàng)新如下:
(1)將惡意軟件代碼彩色圖像生成技術(shù)引入惡意軟件檢測領(lǐng)域,可以將惡意軟件的特征信息完全存儲在彩色圖像中锄蹂,并有效地檢測通過代碼混淆技術(shù)處理的惡意代碼逾滥。
(2)使用膠囊網(wǎng)絡(luò)提取惡意軟件生成的彩色圖像的特征以進行學習和訓練。 與CNN相比败匹,膠囊網(wǎng)絡(luò)將標量轉(zhuǎn)換為向量寨昙,可以更好地存儲特征并使用路由算法進行計算。 然后掀亩,檢測精度進一步提高舔哪。
(3)所提出的基于彩色圖像生成技術(shù)和膠囊網(wǎng)絡(luò)的惡意軟件檢測模型(ColCaps)可以實現(xiàn)不同類型文件的跨平臺檢測和分類。
2 現(xiàn)有研究
2.1傳統(tǒng)的靜態(tài)和動態(tài)惡意軟件檢測
已經(jīng)提出了許多技術(shù)來檢測惡意軟件槽棍。首先提出了基于靜態(tài)分析的檢測技術(shù)捉蚤,該技術(shù)通過檢測可能的執(zhí)行路徑抬驴,啟動模式,惡意行為和二進制代碼的其他特征來判斷軟件是否為惡意軟件[2缆巧,3]布持。目前,混淆技術(shù)變得越來越復雜陕悬√馀基于特征的靜態(tài)分析技術(shù)可以被諸如多態(tài)性,加密和打包之類的多種混淆技術(shù)所繞過[4]捉超,而基于軟件簽名庫的檢測方法則無法檢測到新的未知惡意軟件胧卤。
另一種基于行為的動態(tài)檢測技術(shù)應運而生[5,6]拼岳。盡管該技術(shù)可以避免混淆技術(shù)的干擾枝誊,但是它需要在蜜罐(honeypot)環(huán)境中動態(tài)監(jiān)視和跟蹤可執(zhí)行程序,這具有計算資源大惜纸,執(zhí)行效率低的缺點叶撒,尤其不能應付大規(guī)模的樣本檢測。因此耐版,該技術(shù)不能應用于智能移動設(shè)備終端痊乾。
2.2基于機器學習的惡意軟件檢測
近年來,已經(jīng)提出了許多基于機器學習的算法來檢測惡意軟件并取得了良好的效果椭更。 Daniel等 [9]設(shè)計了一種輕量級的Android惡意軟件檢測方法哪审,以收集應用程序的多個功能特征,并使用線性支持向量機SVM對它們進行分類虑瀑,但是該方法無法應用于Windows惡意軟件湿滓。 Alam等 [10]將惡意軟件映像視為特征向量,并使用隨機森林模型對各種惡意軟件家族進行分類舌狗,但在視覺上相似的惡意軟件中卻犯了錯誤叽奥。 Yerima等 [12]通過從大量靜態(tài)惡意代碼中提取具有潛在惡意行為的程序特征,建立了貝葉斯分類模型痛侍。 缺點是無法檢測到新的未知Android惡意軟件朝氓。
2.3基于深度學習的惡意軟件檢測
目前,基于深度學習的惡意軟件檢測技術(shù)也得到了快速發(fā)展[13-15]主届。Saxe等 [14]提出了一種深度學習網(wǎng)絡(luò)(DNN)檢測方法赵哲,該方法首先從PE文件中提取特征信息,然后將特征向量發(fā)送到具有兩個隱藏層的深度學習網(wǎng)絡(luò)以進行訓練分類君丁。該方法在早期進行了復雜的特征提取工作枫夺,因此模型略為復雜。Jiang等 [15]將可執(zhí)行文件轉(zhuǎn)換為灰度圖像绘闷,并使用經(jīng)過訓練的CNN模型來檢測惡意軟件橡庞,但是這種方法對Android惡意軟件的檢測精度不到80%较坛。
從上面的介紹可以看出,傳統(tǒng)的惡意軟件檢測算法扒最,機器學習分類算法和深度學習技術(shù)仍然存在一些關(guān)鍵問題丑勤。例如,面對代碼混淆吧趣,脫殼法竞,簽名和其他偽裝技術(shù),傳統(tǒng)檢測算法的檢測率大大降低再菊。在機器學習算法的早期,惡意軟件的特征提取和篩選過于復雜颜曾,跨平臺檢測模型的通用性差等纠拔。為了解決這些問題,本文提出了一種基于惡意軟件可視化技術(shù)和膠囊網(wǎng)絡(luò)的ColCaps框架模型泛豪。
3 本文提出的惡意軟件檢測方法:ColCaps
3.1惡意軟件檢測和分類的總體架構(gòu)
通過將惡意軟件文件轉(zhuǎn)換為圖像稠诲,可以將惡意軟件的靜態(tài)反編譯文件和動態(tài)行為的復雜特征提取轉(zhuǎn)換為簡單的靜態(tài)圖像特征提取。 然后诡曙,深度神經(jīng)網(wǎng)絡(luò)可用于其簡單性和更高的圖像特征提取效率臀叙。 與grayscale圖像相比,具有更多顏色的RGB圖像具有更好的特征表示能力价卤,而與CNN相比劝萤,膠囊網(wǎng)絡(luò)具有更強的能力來識別圖像中的對象和旋轉(zhuǎn)后的對象之間的空間關(guān)系。 因此慎璧,在本文中床嫌,上述優(yōu)點用于將惡意軟件彩色圖像生成技術(shù)與用于惡意軟件檢測和分類的膠囊網(wǎng)絡(luò)框架相結(jié)合。
基于惡意軟件圖像可視化技術(shù)和膠囊網(wǎng)絡(luò)的檢測分類模型主要包括以下三個部分:惡意軟件圖像可視化胸私,膠囊網(wǎng)絡(luò)的構(gòu)建與訓練厌处,惡意軟件的檢測與分類。 總體過程如圖1所示:
3.2惡意軟件圖像可視化方法
關(guān)于惡意代碼的可視化方法的研究很少岁疼。 Nataraj等人[16]首次提出將惡意軟件二進制代碼可視化為灰度圖像阔涉,并根據(jù)圖像紋理的相似性對惡意軟件進行分類。本文采用一種新的惡意代碼可視化方法將二進制代碼轉(zhuǎn)換為RGB彩色圖像捷绒。由于RGB三通道彩色圖像(每個樣本24位像素)可以保存16777216種顏色的惡意軟件的特征信息瑰排,相比之下,灰度圖像只有256種顏色(每個樣本8位像素)暖侨,因此具有更強的特征表示能力凶伙。本文采用十六進制映射技術(shù)將二進制代碼轉(zhuǎn)換為RGB模式代碼。轉(zhuǎn)換規(guī)則如下(將每8位依次映射到RGB的整數(shù)值):(Ox868816 =(R:134它碎,G:136函荣,B:22)显押,Ox849A87 =(R:204,G:232傻挂,B :207)等乘碑。根據(jù)上述規(guī)則,PE文件和APK文件中的良性和惡意軟件二進制樣本已被轉(zhuǎn)換金拒。圖2是Windows和Android軟件的良性示例和惡意示例圖像兽肤。第三張圖片是DroidKungFu惡意軟件家族的示例圖片。從圖中可以清楚地看到绪抛,來自不同軟件系列的圖像樣本具有明顯的紋理特征资铡,而相同的惡意軟件系列樣本非常相似。因為同一家族的軟件代碼包含相似的API調(diào)用和代碼結(jié)構(gòu)幢码。因此笤休,該方法將為膠囊網(wǎng)絡(luò)的檢測和同源性分類提供有效的樣本輸入。
3.3基于動態(tài)路由算法的膠囊網(wǎng)絡(luò)
與現(xiàn)有的深度神經(jīng)網(wǎng)絡(luò)(如CNN和RNN)不同症副,膠囊網(wǎng)絡(luò)不是由神經(jīng)元組成店雅,而是由膠囊組成。 Capsule [17]是一組人工神經(jīng)網(wǎng)絡(luò)贞铣,它對樣本輸入執(zhí)行復雜的內(nèi)部計算闹啦,并將結(jié)果封裝在一個小的向量中。每個膠囊是包含多個神經(jīng)元的載體辕坝,其代表圖像中出現(xiàn)的特定實體的各種特性窍奋。膠囊網(wǎng)絡(luò)由包含兩個卷積層和完全連接層的多層組成,然后使用迭代動態(tài)路由算法[18]來確保將低級膠囊向量更準確地輸出到較高級別的父級膠囊酱畅。上述特征使膠囊網(wǎng)絡(luò)在圖像特征提取和圖像分類精度上更有效费变。
膠囊向量的輸入和輸出。彩色圖像以多維矩陣的形式傳遞到模型圣贸,并且通過卷積層處理獲得特征向量挚歧。膠囊網(wǎng)絡(luò)首先通過權(quán)重矩陣將來自下層的特征輸入轉(zhuǎn)換為預測向量[19]。然后吁峻,類似于人工神經(jīng)網(wǎng)絡(luò)滑负,通過加權(quán)求和獲得求和矩陣。最后用含,使用新的矢量非線性激活函數(shù)(Squashing Function)[18]矮慕,該壓縮函數(shù)將求和矩陣轉(zhuǎn)換為輸出矢量,該輸出矢量將成為下一個更高級別特征的輸入矢量啄骇。相關(guān)功能定義如下:
損失與重建痴鳄。
模型的重新配置能力反映了其魯棒性。反饋機制可以很好地保留整個培訓過程中用于重建的信息缸夹。像正則化一樣痪寻,它可以避免訓練數(shù)據(jù)的過度擬合并促進膠囊網(wǎng)絡(luò)的泛化[21]螺句。
本文中β=0.0005。
4基于膠囊網(wǎng)絡(luò)的檢測與分類算法
我們基于惡意軟件代碼可視化方法和膠囊網(wǎng)絡(luò)設(shè)計惡意軟件檢測和分類算法(ColCaps)橡类,如圖3所示:
(1)模型的輸入層蛇尚。根據(jù)第2.1節(jié)中的方法,將惡意軟件培訓樣本文件轉(zhuǎn)換為RGB彩色圖像顾画。下采樣算法用于統(tǒng)一固定格式的RGB圖像作為模型的輸入取劫。
(2)主膠囊層。膠囊網(wǎng)絡(luò)包含兩個卷積層研侣。第一卷積層收集輸入數(shù)據(jù)的低級特征谱邪,其中包含256個步幅為1,大小為9且沒有填充的濾波器庶诡。使用ReLU函數(shù)作為非線性激活函數(shù)惦银,最佳輟學值為0.7,這是有效避免訓練過程中梯度消失灌砖。第二個卷積層包含Capsule璧函,輸出是Primary Caps傀蚌,它存儲了低級特征向量基显。
(3)惡意軟件檢測到的膠囊層。主膠囊層和惡意軟件檢測到的膠囊層已完全連接善炫,并且是向量到向量的連接撩幽。使用迭代路由協(xié)議算法(第3.3節(jié)),通過三個迭代計算權(quán)重參數(shù)C箩艺,并輸出向量V窜醉。當模型執(zhí)行惡意軟件檢測時,輸出為兩類艺谆。當模型執(zhí)行惡意軟件家族分類時榨惰,輸出為N類。
4實驗與結(jié)果分析
4.1實驗數(shù)據(jù)集和環(huán)境
為了更好地完成此實驗静汤,數(shù)據(jù)集包含三個項目琅催。Drebin數(shù)據(jù)集[25],VirusShare數(shù)據(jù)集虫给,MMCC數(shù)據(jù)集(Kaggle上的Microsoft惡意軟件分類挑戰(zhàn))[26]藤抡。同時,從中國主流Android應用程序網(wǎng)站上抓取并下載了許多排名最高的良性軟件程序抹估。如表1和表2所示缠黍。
實驗的硬件和軟件環(huán)境如下表3所示。
4.2評估指標
通過實驗結(jié)果药蜻,我們測量了檢測準確性(ACC)瓷式,TPR(召回)和最終損失(第3.3節(jié))替饿,它們的定義如下:
Where, TP is the true positives, FP is the false positives, TN is the true negatives, FN is the false negatives.
4.3實驗結(jié)果
TensorFlow的靈活架構(gòu)完美地實現(xiàn)了ColCaps模型,并且在訓練樣本和驗證樣本上獲得了實驗結(jié)果蒿往,如表4所示盛垦。可以看出瓤漏,在Android和Windows平臺上腾夯,檢測精度ACC達到99.3%,并且 分類準確率分別達到96.5%和98.2%蔬充。
在惡意軟件檢測實驗中蝶俱,對ColCaps模型的ACC和FinalLoss進行了統(tǒng)計分析。 結(jié)果如圖4所示:
在惡意軟件家族分類實驗中饥漫,對ColCaps模型的ACC和FinalLoss進行了統(tǒng)計分析榨呆。結(jié)果如圖5所示(X軸為step,Y軸為ACC和Final Loss)庸队。
從圖中可以看出积蜻,ColCaps在訓練開始時就達到了90%以上的高檢測精度,這表明該模型的圖像特征收集能力和分類能力非常強彻消。同時竿拆,最終損失降低到最小0.007,這表明模型的重構(gòu)和還原能力非常高宾尚,并且還原后的圖像與原始圖像幾乎相同丙笋。在Android Drebin數(shù)據(jù)集的二十類實驗中,數(shù)據(jù)樣本總數(shù)僅為4,183煌贴,但分類準確率為98.2%御板。它表明,在數(shù)據(jù)樣本數(shù)量較少的情況下牛郑,ColCaps仍然可以達到良好的訓練效果怠肋,避免了CNN需要大量訓練樣本的缺點。從實驗結(jié)果可以看出淹朋,Android惡意軟件的檢測和分類精度高于Windows平臺笙各,表明ColCaps對Android惡意軟件的檢測更加敏感。
4.4與相關(guān)方法的比較
在本節(jié)中瑞你,我們在惡意軟件檢測和分類方面比較了現(xiàn)有的研究方法[15酪惭、25、27]者甲,它們都使用相同的數(shù)據(jù)集或相同大小的相似數(shù)據(jù)集春感。
在惡意軟件檢測方面,Jiang等 [15]采用灰度圖像紋理和基于CNN的檢測方法。 數(shù)據(jù)集具有相同的來源鲫懒,而我們的數(shù)據(jù)集更大嫩实。 如圖6所示,Android惡意軟件檢測率提高了20%窥岩,ACC為99.3%甲献,Recall為79.5%,Windows惡意軟件檢測ACC為97.6%颂翼。
R2-D2還使用CNN檢測方法[27]晃洒,其檢測精度為93%,召回率為96%朦乏,但是該系統(tǒng)不能用于Windows惡意軟件檢測球及;Drebin使用SVM檢測方法,ACC為94%[25]呻疹。表5顯示了ACC吃引,TPR和FPR中三種方法的比較:
就惡意軟件同源性分類而言,Drebin [25]的分類檢測精度為93%刽锤。 我們比較了每個Android惡意軟件家族的檢測準確性镊尺,如圖7所示。與Drebin相比并思,ColCaps的ACC為98.2%庐氮,這也大大提高了。
我們可以看到纺荧,與傳統(tǒng)的機器學習分類算法SVM [15]和深度神經(jīng)網(wǎng)絡(luò)CNN [25旭愧,27]相比颅筋,基于膠囊網(wǎng)絡(luò)的ColCaps在惡意軟件檢測和分類方面表現(xiàn)更好宙暇。檢測很好。一方面议泵,具有更多顏色的RGB彩色圖像具有更好的特征表示能力占贫,具有更鮮明的顏色紋理的圖像更易于分類,另一方面先口,使用動態(tài)路由算法的膠囊網(wǎng)絡(luò)具有更強的識別對象之間空間關(guān)系的能力型奥。在圖像中與CNN相比。缺點是MMCC數(shù)據(jù)集中的分類準確率尚未達到最佳水平碉京,僅為95.2%厢汹,還需要進一步改進膠囊網(wǎng)絡(luò)以取得更好的結(jié)果。
5 總結(jié)與展望
在本文中,我們提出了一種基于惡意軟件圖像可視化技術(shù)和膠囊網(wǎng)絡(luò)的用于跨平臺惡意軟件檢測和分類的ColCaps框架。該方法首先將軟件樣本轉(zhuǎn)換為三通道RGB彩色圖像讯私,然后執(zhí)行膠囊網(wǎng)絡(luò)模型訓練疮胖,最后使用經(jīng)過訓練的ColCaps自動檢測和分類大量惡意軟件樣本当窗。實驗結(jié)果表明疮方,該技術(shù)在跨平臺檢測中具有檢測精度高皱炉,誤報率低的特點呢撞。更好地解決混淆處理的Android惡意軟件檢測率低的問題兑巾,以及深度學習中的CNN需要大量訓練樣本集的缺陷条获。
本文著重于實際的惡意軟件檢測,并提出了一種性能更好的算法蒋歌。然而帅掘,最近有學者(2017/05)提出了一種基于GAN的對抗惡意軟件實例生成方法,該對抗惡意軟件實例對機器學習檢測算法[23]和基于RNN的序列檢測方法具有很高的抵抗力[24]堂油。Liu等[28](2018/08)通過添加對惡意軟件圖像的轉(zhuǎn)換數(shù)據(jù)的干擾來欺騙機器學習分類算法和CNN锄开,從而制作對抗性示例。因此称诗,如何檢測對抗性惡意軟件實例以及如何保持較高的檢測準確性和魯棒性將是未來進一步研究的方向萍悴。