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

?

基于靜態(tài)多特征融合的惡意軟件分類方法

2017-11-23 01:25孫博文黃炎裔溫俏琨田斌吳鵬李祺
關(guān)鍵詞:視圖分類器家族

孫博文,黃炎裔,溫俏琨,田斌,吳鵬,李祺

?

基于靜態(tài)多特征融合的惡意軟件分類方法

孫博文1,黃炎裔1,溫俏琨2,田斌3,吳鵬4,李祺1

(1. 北京郵電大學(xué)網(wǎng)絡(luò)空間安全學(xué)院天地互聯(lián)與融合北京市重點(diǎn)實(shí)驗(yàn)室,北京 100876; 2. 北京郵電大學(xué)國(guó)際學(xué)院,北京 100876; 3. 中國(guó)信息安全測(cè)評(píng)中心,北京100085; 4. 四川大學(xué)計(jì)算機(jī)學(xué)院,四川成都610015)

近年來,惡意軟件呈現(xiàn)出爆發(fā)式增長(zhǎng)勢(shì)頭,新型惡意樣本攜帶變異性和多態(tài)性,通過多態(tài)、加殼、混淆等方式規(guī)避傳統(tǒng)惡意代碼檢測(cè)方法?;诖笠?guī)模惡意樣本,設(shè)計(jì)了一種安全、高效的惡意軟件分類的方法,通過提取可執(zhí)行文件字節(jié)視圖、匯編視圖、PE視圖3個(gè)方面的靜態(tài)特征,并利用特征融合和分類器集成學(xué)習(xí)2種方式,提高模型的泛化能力,實(shí)現(xiàn)了特征與分類器之間的互補(bǔ),實(shí)驗(yàn)證明,在樣本上取得了穩(wěn)定的F1-score(93.56%)。

惡意軟件;家族分類;靜態(tài)分析;機(jī)器學(xué)習(xí);模型融合

1 引言

在互聯(lián)網(wǎng)飛速發(fā)展的今天,網(wǎng)絡(luò)的安全形勢(shì)卻不容樂觀,各類安全威脅飛速增長(zhǎng),其中傳統(tǒng)PC平臺(tái)上的惡意樣本傳播最為頻繁??ò退够居?016年底發(fā)布的年度報(bào)告顯示,卡巴斯基云端惡意樣本數(shù)據(jù)庫(kù)總量已達(dá)10億,包括病毒、木馬、蠕蟲等各類惡意對(duì)象,其增長(zhǎng)速度也從2012年的7.53%增長(zhǎng)到2016年的40.5%,每天發(fā)現(xiàn)的惡意文件數(shù)量從2011年的70 000個(gè)增長(zhǎng)到2016年的323 000個(gè)[1]。2016年,賽門鐵克公司共監(jiān)測(cè)到超過35億個(gè)惡意軟件的新型變種,及100多個(gè)肆意傳播的新型惡意軟件家族,數(shù)量是過去的3倍[2]。在全球范圍內(nèi),惡意軟件攻擊事件的數(shù)量較2016年增長(zhǎng)了36%。在惡意樣本呈飛速增長(zhǎng)趨勢(shì)的同時(shí),惡意樣本所使用的技術(shù)也在迅速提升。隨著復(fù)雜的加殼、混淆、反沙箱、虛擬穿透等技術(shù)的出現(xiàn),惡意樣本呈現(xiàn)出多樣化、多態(tài)化的變化趨勢(shì),研究人員發(fā)現(xiàn)大量樣本是已有樣本的變種,這些變異樣本通過各種靜態(tài)變化來規(guī)避傳統(tǒng)的基于病毒特征碼與文件散列值的查殺方式。雖然部分反病毒檢測(cè)引擎采用啟發(fā)式的檢測(cè)方法,使用API執(zhí)行序列、系統(tǒng)全局鉤子等方式監(jiān)測(cè)軟件行為,但這樣的方式速度慢、效率低、成本高昂,且存在安全隱患,不適合大規(guī)模的惡意樣本檢測(cè)。在這樣的背景下,研究人員提出在原有靜態(tài)檢測(cè)的基礎(chǔ)上,通過對(duì)惡意樣本家族進(jìn)行深入研究,試圖以惡意樣本家族分類的方式確定惡意樣本之間的相似度[3~7],進(jìn)而判定惡意樣本是否是已知家族變異樣本,這是一種可行的對(duì)抗惡意樣本多態(tài)與多樣性的研究方法。傳統(tǒng)的惡意樣本分析方法受限于計(jì)算速度與成本消耗等原因難以適應(yīng)大規(guī)模的家族分析,但隨著大數(shù)據(jù)安全與機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,海量數(shù)據(jù)的融合分析將是一種最為有效的檢測(cè)與防范手段,因此如何有效、準(zhǔn)確地進(jìn)行惡意樣本家族分類是一個(gè)值得研究的課題。

2 相關(guān)工作

對(duì)惡意樣本早期的一些工作主要關(guān)注如何鑒別正常軟件與惡意軟件,2001年,Schultz等[3]使用機(jī)器學(xué)習(xí)的方法如樸素貝葉斯檢測(cè)惡意樣本,主要使用了字符串序列、動(dòng)態(tài)鏈接庫(kù)序列、系統(tǒng)調(diào)用3種典型特征,在他們所使用的數(shù)據(jù)集上達(dá)到了98%的準(zhǔn)確率。2010年Mehdi等[4]使用原始的-gram方法得到了87.85%的準(zhǔn)確率。隨著惡意樣本種類的增多與技術(shù)的發(fā)展,惡意樣本分類問題成為一個(gè)棘手的問題,更多的研究開始關(guān)注惡意樣本分類問題,根據(jù)分類所利用特征的不同主要分為靜態(tài)分析和動(dòng)態(tài)分析兩方面的研究。在靜態(tài)分析方面,2010年park等[5]提出通過檢測(cè)惡意樣本行為圖像中最大公共子圖的方式進(jìn)行分類,并做出了探索性的研究。2013年Santos等[6]深入研究惡意代碼opcode序列,提取惡意樣本1-gram opcode序列和2-gram opcode序列特征,并使用支持向量機(jī)(SVM)的方法達(dá)到了95.90%的準(zhǔn)確率。2016年Grini等[7]使用大數(shù)據(jù)統(tǒng)計(jì)分析的方式對(duì)500多個(gè)家族100多萬個(gè)樣本進(jìn)行了分類實(shí)驗(yàn),使用了多種機(jī)器學(xué)習(xí)算法最終達(dá)到89%的準(zhǔn)確率。上述靜態(tài)分析方法的主要優(yōu)勢(shì)在于,惡意代碼無需動(dòng)態(tài)執(zhí)行,對(duì)分析系統(tǒng)不會(huì)造成破壞,較為安全,且其可以在執(zhí)行文件前對(duì)代碼流程有一定掌握,另外此種方法不會(huì)受到具體進(jìn)程執(zhí)行流程的制約,可以對(duì)代碼進(jìn)行詳盡的細(xì)粒度分析。而其問題在于難以應(yīng)對(duì)逐漸復(fù)雜的惡意樣本加殼與混淆技術(shù),在對(duì)混淆代碼的處理上無法得到預(yù)期的效果,因而隨著虛擬化技術(shù)的不斷發(fā)展,逐漸有研究者開始對(duì)惡意樣本進(jìn)行動(dòng)態(tài)分析。2008年Rieck[8]等使用基于行為分析的特征,用支持向量機(jī)訓(xùn)練測(cè)試特征,在14個(gè)家族中達(dá)到了88%的分類準(zhǔn)確率,但這種方式還沒有讓樣本充分執(zhí)行。2014年Zahra等[9]利用沙箱提取惡意樣本API調(diào)用序列作為特征對(duì)惡意樣本進(jìn)行分類,在小樣本上取得了不錯(cuò)的效果。2017年Kolosnjaji[10]等使用開源沙箱提取系統(tǒng)調(diào)用序列、使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)惡意樣本進(jìn)行深度學(xué)習(xí)從而完成惡意樣本分類,達(dá)到了89.4%的準(zhǔn)確率,這種方式具有一定的創(chuàng)新性,但在特征提取和模型訓(xùn)練速度上效率較低,需要有更多進(jìn)一步研究。

動(dòng)態(tài)分析使用虛擬釋放等機(jī)制應(yīng)對(duì)軟件脫殼與混淆技術(shù),讓惡意樣本充分釋放,并采用執(zhí)行核心代碼的方式觀測(cè)其惡意行為,這在一定程度上解決了軟件加殼與混淆的問題,但隨著攻防技術(shù)的對(duì)抗,這種方式也逐漸暴露出弊端。首先惡意軟件開發(fā)者對(duì)于虛擬環(huán)境、沙箱機(jī)制研究更加透徹,他們采取多種檢測(cè)與對(duì)抗技術(shù),使虛擬化及沙箱環(huán)境難以執(zhí)行惡意樣本;其次惡意樣本采用套用正常軟件數(shù)字簽名,復(fù)用正常軟件代碼等方式偽裝宿主行為,并使用穿透虛擬機(jī)技術(shù)攻擊惡意代碼分析人員;最后動(dòng)態(tài)分析方法提取特征復(fù)雜、檢測(cè)時(shí)間較長(zhǎng)、占用系統(tǒng)資源較多和誤報(bào)率較高。對(duì)資源消耗巨大,在應(yīng)用到大規(guī)模數(shù)據(jù)時(shí),這種方式的弊端尤為凸顯。而隨著人工智能以及機(jī)器學(xué)習(xí)算法的發(fā)展,靜態(tài)分析的研究環(huán)境逐漸改善,大量基于加殼樣本分析的靜態(tài)分析方法被提出,2015年,在微軟惡意樣本分類大賽中,獲獎(jiǎng)團(tuán)隊(duì)提出使用文件圖像化特征、深層匯編特征等靜態(tài)特征對(duì)惡意樣本進(jìn)行分類,并在應(yīng)用中被證明有效,韓曉光等[11]也在惡意代碼圖像紋理聚類上有突破性研究,這些研究有效地減少了之前靜態(tài)分析方式難以解決樣本加殼、混淆的弊端。同時(shí)隨著惡意代碼數(shù)量上的爆發(fā)式增長(zhǎng),靜態(tài)分析速度快、效率高、適合大規(guī)模實(shí)時(shí)分析的特點(diǎn)獲得了優(yōu)勢(shì)。綜上所述,本文希望利用靜態(tài)分析的優(yōu)勢(shì),以多源視角提取大量惡意樣本靜態(tài)特征,并通過特征融合以及算法集成的方式,提出一種應(yīng)用上可行的適合大規(guī)模機(jī)器學(xué)習(xí)的惡意軟件分類方法。

3 特征和模型

3.1 特征工程

為了有效進(jìn)行惡意樣本家族分類,需要提取惡意樣本各方面的特征,并將其序列化表示輸入分類器中。本文重點(diǎn)關(guān)注多維惡意樣本靜態(tài)特征,主要從字節(jié)視圖(即16進(jìn)制字節(jié)碼)、匯編視圖(即asm匯編代碼)、PE視圖(即PE結(jié)構(gòu)化信息)3個(gè)方面進(jìn)行特征的提取。本文希望從這幾個(gè)方面,通過多源化的特征提取對(duì)抗惡意樣本加殼、混淆等技術(shù),并最終進(jìn)行有效的惡意軟件家族分類,下面分別介紹所選取的特征。

3.1.1 字節(jié)視圖特征

字節(jié)視圖能觀測(cè)到的是一系列的16進(jìn)制字符排列,可以直接通過16進(jìn)制讀取的方式進(jìn)行特征采集,本文選取的特征包括以下幾點(diǎn)。

1) 文件大?。喊ㄎ募袛?shù)、文件字符總數(shù)等文件基本信息。

2) 可見字符串:統(tǒng)計(jì)各類可見字符串出現(xiàn)的長(zhǎng)度、頻率、分布等信息;值得關(guān)注的是,一些有意義的可見字符串值得更深入的研究[12]。

3) 程序熵值:程序的熵值作為一種描述文件混亂程度的指標(biāo),可以很好地反映惡意樣本是否經(jīng)過加殼、混淆等變化,因此熵值是一個(gè)有意義的特征。

3.1.2 匯編視圖特征

二進(jìn)制代碼本質(zhì)上由一系列操作碼組成,又具體分為操作符、操作數(shù)2部分,不同操作系統(tǒng)對(duì)于機(jī)器指令有不同映射,本文利用第三方工具IDA Pro[13]以及其提供的靜態(tài)批處理功能批量得到惡意樣本的反匯編視圖數(shù)據(jù),主要提取本文需要的匯編視圖特征。

1) 操作碼特征:操作碼是機(jī)器碼的一種形象化表示,是匯編視圖中出現(xiàn)的最為頻繁的元素,在眾多的相關(guān)研究中都證明了基于操作碼的分類具有良好的效果。本文采用了opcode的1-gram、2-gram特征,選取在本文所用樣本中出現(xiàn)的全部匯編指令進(jìn)行統(tǒng)計(jì)作為操作碼特征。

2) 寄存器特征:寄存器是匯編語言中重要的一部分,不同編譯環(huán)境、編譯函數(shù)使用的寄存器有較大差異,因而本文提取了各類寄存器出現(xiàn)的次數(shù)。

3) 函數(shù)特征:IDA具有強(qiáng)大的交叉編譯以及系統(tǒng)函數(shù)識(shí)別功能,因而可以利用IDA分析的結(jié)果進(jìn)行軟件自定義函數(shù)和系統(tǒng)函數(shù)的提取,這對(duì)于分析惡意樣本的內(nèi)部調(diào)用流程及混淆等行為具有極大幫助。

4) 數(shù)據(jù)定義特征:本文從助記符中單獨(dú)提出這一特征進(jìn)行闡述,重點(diǎn)關(guān)注樣本中出現(xiàn)的db、dd、dw的相關(guān)統(tǒng)計(jì)信息,針對(duì)這3個(gè)與數(shù)據(jù)相關(guān)的指令進(jìn)行了分類統(tǒng)計(jì)。在分析加殼樣本過程中,樣本主要存在的就是db、dd、dw這樣的數(shù)據(jù),通過分析這一部分的特征,并結(jié)合樣本大小、樣本壓縮率、樣本熵值等特征,可以發(fā)現(xiàn)加殼樣本的相互關(guān)聯(lián),本文希望通過對(duì)這一部分特征進(jìn)行分析,來對(duì)加殼樣本有一種新的靜態(tài)分析方式。

3.1.3 PE視圖特征

PE文件頭包含大量與樣本相關(guān)的信息,以往的研究中這一部分由于處理難度大,常被研究者忽略。本文借助了工具PE Exeinfo[14]和開源工具M(jìn)astiff[15],提取了大量PE結(jié)構(gòu)化特征以及編譯環(huán)境特征作為PE視圖的主要特征。

1) PE結(jié)構(gòu)化特征:PE頭包含大量軟件相關(guān)的深層次數(shù)據(jù),可以分析出一定的語義信息,本文在這一部分提取了包括API調(diào)用數(shù)量、DLL調(diào)用數(shù)量、導(dǎo)入函數(shù)數(shù)量、導(dǎo)出函數(shù)數(shù)量、各方法起始虛擬地址、虛擬大小、語言及編碼方式等重要的結(jié)構(gòu)化特征。

2) 反檢測(cè)引擎特征:Mastiff檢測(cè)結(jié)果包含Yara-rules[16]等一系列對(duì)惡意樣本針對(duì)各類殺毒方式所做出的隱藏措施的檢測(cè),本文選擇了惡意樣本所采用的虛擬逃逸手段、反調(diào)試手段、反病毒手段、惡意片段匹配等幾種典型惡意特征進(jìn)行提取。

3) 編譯特征:包括軟件的編譯時(shí)間與編譯環(huán)境以及加殼信息。根據(jù)編譯信息的細(xì)微差異,可以推斷軟件之間的演進(jìn)關(guān)聯(lián)。

4) 惡意API:研究人員在分析了50余萬惡意樣本,多達(dá)5 TB數(shù)據(jù)后對(duì)惡意樣本所使用的API進(jìn)行了統(tǒng)計(jì)[17],本文取其中前100個(gè)API出現(xiàn)的次數(shù)作為特征。表1列出了本文使用的前10個(gè)惡意API特征名稱。

表1 惡意API

上述主要特征符號(hào)標(biāo)簽及含義如表2所示。

3.2 模型簡(jiǎn)介

模型融合是機(jī)器學(xué)習(xí)任務(wù)中最常用的方法,它通??梢栽诟鞣N不同的應(yīng)用場(chǎng)景中使結(jié)果獲得提升。本文針對(duì)惡意軟件提出了一種多特征融合的方法,通過對(duì)特征進(jìn)行融合來構(gòu)建不同基分類器、豐富特征以及算法的多樣性,以提高模型的精度與穩(wěn)定性,并通過交叉驗(yàn)證選擇最優(yōu)的融合方法。整體思路如圖1所示。

表2 部分選取特征

3.2.1 特征融合

為保證基分類器的準(zhǔn)確性與差異性,需要對(duì)特征進(jìn)行采樣與融合。本文采用對(duì)這些特征進(jìn)行加權(quán)的融合方式,即給不同特征賦予不同的權(quán)值,權(quán)值大的特征表示對(duì)當(dāng)前分類任務(wù)的貢獻(xiàn)相對(duì)較大。隨機(jī)森林是一種使用廣泛的強(qiáng)大機(jī)器學(xué)習(xí)算法,能夠執(zhí)行回歸和分類的任務(wù)。同時(shí),它也是一種高效的數(shù)據(jù)降維手段,用于處理缺失值、異常值以及其他數(shù)據(jù)探索中的重要步驟,并取得了不錯(cuò)的成效。對(duì)于分類問題,通常采用基尼不純度或信息增益作為衡量分類的效果,當(dāng)訓(xùn)練決策樹的時(shí)候,可以計(jì)算出每個(gè)特征減少了多少樹的不純度。對(duì)于一個(gè)決策樹森林來說,可以算出每個(gè)特征平均減少了多少不純度,并把它平均減少的不純度作為特征融合的評(píng)價(jià)標(biāo)準(zhǔn)。因此可以通過隨機(jī)森林算法對(duì)特征進(jìn)行融合,按重要程度給特征由大到小分配權(quán)重,并舍棄負(fù)面特征。

本文3.1節(jié)中共選取了3組特征,由于單組特征無法體現(xiàn)特征融合效果,選取全部3組特征融合則會(huì)造成基分類器性能降低,因而本文采取的抽樣策略為任取2組特征進(jìn)行融合,并在每組特征中再次隨機(jī)抽取總體特征2/3的組內(nèi)特征,這樣組間特征相同的概率與相同特征百分比均大大降低。本文實(shí)驗(yàn)采用離線訓(xùn)練的方式,訓(xùn)練速度快,特征融合之后分類效果存在明顯的提高。

圖1 模型思路

3.2.2 算法集成

針對(duì)部分傳統(tǒng)機(jī)器學(xué)習(xí)算法中會(huì)將所有特征串聯(lián)而導(dǎo)致的過擬合以及降低泛化能力的問題,本文提出了一種應(yīng)用于惡意軟件的集成學(xué)習(xí)監(jiān)督分類方法。該框架的思路是在進(jìn)行分類的時(shí)候,把若干基本分類器進(jìn)行集成,本文采用了基于python的Scikit-learn庫(kù)[18]所提供的封裝分類器進(jìn)行數(shù)據(jù)的分類,選擇了機(jī)器學(xué)習(xí)研究領(lǐng)域8種典型算法:GNB、GBDT、RF、ET、DT、SVM、KNN和Adaboost。完成上文所述的特征融合后,采用上述算法訓(xùn)練多個(gè)基分類器,而后選擇4種結(jié)果較優(yōu)的算法進(jìn)行算法集成,集成過程中,對(duì)4種不同的方法(Voting、Stacking、Bagging、Boosting)及每種方法中的不同策略進(jìn)行測(cè)試,通過實(shí)驗(yàn)尋找最優(yōu)的集成方案。在使用Voting方法時(shí),測(cè)試Average of probabilities和Majority voting這2種策略;使用Stacking時(shí),則測(cè)試BayesNet、Random Forest;而在使用Boosting過程中,測(cè)試Adaboost、GBDT、XGBoost這3種策略。根據(jù)實(shí)驗(yàn)結(jié)果決定最終的分類,以取得比單個(gè)分類器更好的性能。

4 實(shí)驗(yàn)

4.1 數(shù)據(jù)

如今,海量的惡意樣本數(shù)據(jù)成為各大反病毒公司賴以生存的關(guān)鍵。而數(shù)據(jù)集的選擇一直是惡意樣本研究中最為關(guān)鍵的一環(huán),沒有一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)集是截至目前惡意樣本研究難以統(tǒng)一、各自為戰(zhàn)的主要原因。為了保證實(shí)驗(yàn)具有一定意義上的通用性,本文使用了國(guó)外知名惡意代碼數(shù)據(jù)庫(kù)網(wǎng)站VirusShare[19]提供的惡意樣本作為本次實(shí)驗(yàn)的實(shí)驗(yàn)數(shù)據(jù),樣本標(biāo)識(shí)為VirusShare_00271,樣本總量達(dá)到了65 536。

4.2 家族劃分

在本文的研究過程中,需要對(duì)惡意樣本家族進(jìn)行劃分,如何對(duì)惡意樣本家族進(jìn)行判定是惡意樣本研究中另一個(gè)聚焦的問題,目前文獻(xiàn)研究中尚未提出一個(gè)權(quán)威的解決辦法。文獻(xiàn)[7]提出使用微軟所述的CARO命名規(guī)則[20],這是一種通用的病毒命名規(guī)則,然而由于反病毒公司難以共享數(shù)據(jù),使各個(gè)殺毒引擎在對(duì)樣本命名過程中均有不小的改變。表3為Virustotal平臺(tái)[21]上不同引擎對(duì)同一樣本的標(biāo)注結(jié)果。在閱讀大量參考文獻(xiàn)[3~11]后,發(fā)現(xiàn)其中絕大部分使用了卡巴斯基掃描引擎的家族劃分結(jié)果,基于成本、效率等方面考慮本文同樣延續(xù)采用這種家族劃分方式。

表3 同一惡意樣本掃描引擎結(jié)果

4.3 實(shí)驗(yàn)設(shè)計(jì)

本文實(shí)驗(yàn)過程如圖2所示,首先從VirusShare網(wǎng)站獲取原始數(shù)據(jù)集,使用PE Exeinfo、卡巴斯基引擎進(jìn)行樣本的初次篩選和惡意家族的劃分。接下來,從3個(gè)視圖提取惡意樣本特征,輸入分類器進(jìn)行訓(xùn)練和測(cè)試,根據(jù)初次實(shí)驗(yàn)結(jié)果,分析模型與數(shù)據(jù)不足,改進(jìn)模型,進(jìn)行特征融合?;谌诤虾蟮奶卣魇褂?種常用分類器對(duì)數(shù)據(jù)再次進(jìn)行訓(xùn)練和測(cè)試,根據(jù)結(jié)果擇優(yōu)進(jìn)行算法集成。在結(jié)果評(píng)價(jià)方面使用F1-score作為評(píng)價(jià)標(biāo)準(zhǔn),并使用5-cross-validation作為最終的評(píng)價(jià)標(biāo)準(zhǔn)展示不同機(jī)器學(xué)習(xí)算法的效果。

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

本文所選用的“VirusShare_00271”數(shù)據(jù)集總量為65 536,由于本文研究是針對(duì)Windows平臺(tái)下的PE文件,因而需要對(duì)原始數(shù)據(jù)進(jìn)行篩選,本文借助PE Exeinfo這款軟件和命令行file指令,篩選掉非PE文件后,剩余13 909樣本。接下來通過卡巴斯基引擎的掃描,保留了卡巴斯基所能明確檢測(cè)出來的惡意家族600余個(gè),樣本11 651個(gè)。而后對(duì)家族名稱進(jìn)行篩選,保留了卡巴斯基能明確劃分的家族名,去掉了諸如“not a virus adware”這類的不明確樣本;最終得到了182個(gè)不同的家族種類,2 798個(gè)樣本,其中排名靠前的幾個(gè)家族如表4所示。

圖2 實(shí)驗(yàn)流程

表4 家族名稱及數(shù)量

對(duì)這部分樣本進(jìn)行數(shù)據(jù)的預(yù)處理及特征提取,并進(jìn)行初步的訓(xùn)練和測(cè)試實(shí)驗(yàn),分析初步的分類結(jié)果,發(fā)現(xiàn)其中大量的錯(cuò)誤出現(xiàn)在與“Generic”相關(guān)的類別,錯(cuò)誤對(duì)應(yīng)關(guān)系見表5。查閱資料后發(fā)現(xiàn),卡巴斯基引擎將這個(gè)類別定義為啟發(fā)式引擎命名,也就是說它并不是一個(gè)單獨(dú)的類別,而是大量難以歸類的樣本。因而本文暫時(shí)去掉了“Trojan.Win32.Generic”“UDS: DangerousObject.Multi.Generic”這2種類別,并將“Trojan.Win32.Agent”“Trojan.Win32.Agentb”這類相近的家族歸為一類。最終得到了12個(gè)類別共計(jì)1 848個(gè)樣本,將這部分?jǐn)?shù)據(jù)提取出的3類特征使用多種分類器進(jìn)行訓(xùn)練測(cè)試,單獨(dú)計(jì)算準(zhǔn)確率。

表5 錯(cuò)誤預(yù)測(cè)情況

接下來,采用3.1中所述的特征融合方法,對(duì)3個(gè)視圖的特征進(jìn)行抽樣融合,去掉了對(duì)分類結(jié)果具有負(fù)面影響的特征,同時(shí)得到了如表6所示的對(duì)于分類影響最大的幾個(gè)特征,可以看到本文重點(diǎn)強(qiáng)調(diào)的數(shù)據(jù)定義指令特征以及惡意API、寄存器opcode等特征確實(shí)為重要的一批特征,結(jié)合編譯環(huán)境與查殼信息,并考慮樣本大小熵值等信息,也可進(jìn)行單獨(dú)的樣本類型推斷。最后,按照各特征重要程度為其分配權(quán)重,利用融合后的特征再次進(jìn)行實(shí)驗(yàn)。

表6 各特征分?jǐn)?shù)

在建立完模型之后需要對(duì)模型的好壞進(jìn)行評(píng)價(jià),為了實(shí)驗(yàn)的可靠性(排除一次測(cè)試的偶然性),要進(jìn)行多次測(cè)試驗(yàn)證,也就是交叉驗(yàn)證。為了避免對(duì)驗(yàn)證數(shù)據(jù)的過擬合,本文選擇5-fold交叉校驗(yàn)的方式驗(yàn)證本文所提出方法的準(zhǔn)確率和穩(wěn)定性,最終得到各分類器效果如表7和表8所示。表7中的數(shù)據(jù)顯示特征融合前每類特征的單獨(dú)分類效果,而表8則是在完成特征融合后重新計(jì)算得出,準(zhǔn)確率相較前者有了顯著的提升。其中,數(shù)據(jù)使用ExtraTrees分類器得到了最高的92.69%的準(zhǔn)確率。

表7 特征融合前準(zhǔn)確率

表8 特征融合后準(zhǔn)確率

接下來,選擇最優(yōu)的4種分類方法(RF、ET、DT、KNN)并使用3.2.2節(jié)中提到的融合方法進(jìn)行算法融合,各方法及策略的分類效果如表9所示,從中可見,Voting方法過于簡(jiǎn)單,存在一定欠擬合的情況,因而效果欠佳;Bagging 和Boosting均采取抽樣的集成方式,前者采用均勻取樣,而后者根據(jù)錯(cuò)誤率取樣,因此Boosting的分類精度要優(yōu)于Bagging。Stacking的工作分為2個(gè)階段:首先使用多個(gè)基礎(chǔ)分類器預(yù)測(cè)分類,然后用一個(gè)新的學(xué)習(xí)模塊與它們的預(yù)測(cè)結(jié)果結(jié)合起來,以降低泛化誤差,從表9中可以看出,使用Stacking方法的集成效果明顯優(yōu)于另外3種,其中集成策略BayesNet 得到了最高的93.56%的準(zhǔn)確率。

5 設(shè)備與時(shí)間

為了進(jìn)行效率對(duì)比分析以及更大規(guī)模數(shù)據(jù)的實(shí)驗(yàn),本文對(duì)實(shí)驗(yàn)過程中的各項(xiàng)時(shí)間進(jìn)行了整理。本文全部實(shí)驗(yàn)均使用一臺(tái)個(gè)人計(jì)算機(jī)進(jìn)行,設(shè)備型號(hào)為macbookpro2013,處理器為Intel Core I5-4287U 2.60 GHz,內(nèi)存為8 GB。操作系統(tǒng)為Windows7旗艦版,軟件為Python2.7-64位。整個(gè)實(shí)驗(yàn)主要分為引擎掃描、匯編視圖轉(zhuǎn)換、字節(jié)特征提取、匯編視圖特征提取、PE視圖特征提取、特征融合、算法集成、訓(xùn)練與分類幾個(gè)步驟,表10展示了整個(gè)實(shí)驗(yàn)的消耗時(shí)間,并單獨(dú)展示特征提取3個(gè)部分所消耗的時(shí)間。

分析時(shí)間消耗可知,整體實(shí)驗(yàn)時(shí)間消耗在卡巴斯基引擎掃描和樣本預(yù)處理上的時(shí)間較多,當(dāng)采用多臺(tái)機(jī)器分布式處理時(shí)這一部分有較大的優(yōu)化空間。在特征提取部分存在大量反復(fù)文件讀寫,后續(xù)擬采用數(shù)據(jù)庫(kù)存儲(chǔ)的方式加快特征組合。在算法運(yùn)行時(shí)間上集成學(xué)習(xí)算法與傳統(tǒng)線性方法存在一定差距,但對(duì)整體效率上的影響微乎其微。

表10 實(shí)驗(yàn)消耗時(shí)間

6 結(jié)束語

本文提出了一種基于多特征融合的惡意樣本家族分類方法,利用惡意樣本網(wǎng)站Virusshare提供的最新惡意樣本以及卡巴斯基引擎掃描得到的分類結(jié)果,從字節(jié)視圖、匯編視圖、PE視圖3個(gè)方面進(jìn)行特征提取,設(shè)計(jì)了特征融合方法和算法集成模型,對(duì)包括SVM、決策樹、隨機(jī)森林等8種典型算法進(jìn)行測(cè)試與對(duì)比,經(jīng)過多次優(yōu)化與調(diào)整最終達(dá)到了93.56%的準(zhǔn)確率。本文的主要貢獻(xiàn)在于提出了完整的思路與實(shí)驗(yàn)設(shè)計(jì),實(shí)現(xiàn)了大規(guī)模惡意樣本的特征提取與分類檢測(cè)的模型,并提出使用3種視圖進(jìn)行多維度特征提取與特征融合的思想以提高準(zhǔn)確率。本文選取的特征包括在相關(guān)文獻(xiàn)中被證實(shí)有效的特征,也包括針對(duì)加殼文件進(jìn)行區(qū)分的新式特征,最終取得了很好的效果(feature score)。本文重點(diǎn)介紹了特征提取與模型設(shè)計(jì)部分,對(duì)于機(jī)器學(xué)習(xí)算法和參數(shù)的設(shè)定上沒有進(jìn)行詳細(xì)的介紹,今后將在這一方面繼續(xù)深入。后續(xù)的工作需要提高有效樣本的數(shù)量,由于本文實(shí)驗(yàn)環(huán)境所限,以及探索階段中出現(xiàn)的各種探索性實(shí)驗(yàn),使大量時(shí)間被用在了特征設(shè)計(jì)、特征提取、特征選擇,以及出錯(cuò)后的修正等階段,接下來需要將本文的樣本容量繼續(xù)擴(kuò)大一個(gè)數(shù)量級(jí),爭(zhēng)取達(dá)到1 000萬的初始數(shù)據(jù)量。同時(shí)解決訓(xùn)練樣本分布不夠均勻的問題,對(duì)家族數(shù)量進(jìn)行擴(kuò)充,增進(jìn)分類訓(xùn)練的準(zhǔn)確度與穩(wěn)定性。

[1] 卡巴斯基年報(bào)[EB/OL]. https://securelist.com/kaspersky- security-bulletin-2016-story-of-the-year/76757/.

Kabasiji annual report[EB/OL]. https://securelist.com/kaspersky- security-bulletin-2016-story-of-the-year/76757/.

[2] 賽門鐵克年報(bào)[EB/OL]. https://www.symantec.com/products/atp- content-malware- analysis.

Symantec annual report[EB/OL]. https://www.symantec.com/ products/ atp-content-malware- analysis.

[3] SCHULTZ M G, ESKIN E, ZADOK E, et al. Data mining methods for detection of new malicious executables[C]//2001 IEEE Symposium on Security and Privacy(S&P 2001). 2001:38-49.

[4] MEHDI B, AHMED F, KHAYYAM S A, et al. Towards a Theory of Generalizing System Call Representation for In-Execution Malware Detection[C]//IEEE International Conference on Communications. 2010:1-5.

[5] PARK Y, REEVES D, MULUKUTLA V, et al. Fast malware classification by automated behavioral graph matching[C]//AMIA Annu Symp Proc. 2010:1-4.

[6] SANTOS I, BREZO F, UGARTE-PEDRERO X, et al. Opcode sequences as representation of executables for data-mining-based unknown malware detection[J]. Information Sciences, 2013, 231(9): 64-82.

[7] GRINI L S, SHALAGINOV A, FRANKE K. Study of soft computing methods for large-scale multinomial malware types and families de-tection[C]//The World Conference on Soft Computing. 2016.

[8] RIECK K, HOLZ T, WILLEMS C, et al. Learning and classification of malware behavior[C]//The International Conference on Detection of Intrusions & Malware. 2008:108-125.

[9] SALEHI Z, SAMI A, GHIASI M. Using feature generation from API calls for malware detection[J]. Computer Fraud & Security, 2014, 2014(9):9-18.

[10] KOLOSNJAJI B, ZARRAS A, WEBSTER G, et al. Deep learning for classi-fication of malware system call sequences[M]//AI 2016: Advances in Artificial Intelligence. Berlin: Springer, 2016.

[11] 韓曉光, 曲武, 姚宣霞,等. 基于紋理指紋的惡意代碼變種檢測(cè)方法研究[J]. 通信學(xué)報(bào), 2014, 35(8):125-136.

HAN X G, QU W, YAO X X, et al. Research on malicious code variants detection based on texture fingerprint[J]. Journal on Communications, 2014, 35(8):125-136.

[12] Digital bread crumbs: seven clues to identifying who’s behind advanced cyber attacks[EB/OL]. https://www.fire-eye.com/content/ dam/fireeye-www/global/en/current-threats/pdfs/rpt-digital-bread-crumbs.pdf.

[13] IDA pro website [EB/OL].https://www.hex-rays.com, accessed: 27.06.2017.

[14] PE Exeinfo website [EB/OL]. http://exeinfo.pe.hu/, accessed: 12.06.2017.

[15] Mastiff website[EB/OL]. https://github.com/KoreLogicSecurity/ mastiff, accessed: 27.06.2017.

[16] Yara-rules website [EB/OL].https://github.com/Yara-Rules/rules.

[17] Top maliciously used APIs [EB/OL]. https://www.bnxnet.com/ wp-content/uploads/2015/01/malware_APIs.pdf.

[18] Scikit-learn website [EB/OL].https://github.com/scikit-learn/sci- kit-learn.

[19] VirusShare website [EB/OL]. https://virusshare.com/.

[20] Naming scheme-caro-computer antivirus research organization [EB/OL]. www.caro.org/naming/scheme.html.

[21] Free online virus, malware and url scanner[EB/OL]. https://www. virustotal.com/.

Malware classification method based on static multiple-feature fusion

SUN Bo-wen1, HUANG Yan-yi1, WEN Qiao-kun2, TIAN Bin3, WU Peng4, LI Qi1

(1. Beijing Key Laboratory of Interconnection and Integration, School of Cyberspace Security, Beijing University of Post and Telecommunications, Beijing 100876, China; 2. International School, Beijing University of Post and Telecommunications, Beijing 100876, China; 3. China Information Technology Security Evaluation Center, Beijing 100085, China; 4.College of Computer Science Sichuan University, Chengdu 610015, China)

In recent years, the amount of the malwares has tended to rise explosively. New malicious samples emerge as variability and polymorphism. By means of polymorphism, shelling and confusion, traditional ways of detecting can be avoided. On the basis of massive malicious samples, a safe and efficient method was designed to classify the malwares. Extracting three static features including file byte features, assembly features and PE features, as well as improving generalization of the model through feature fusion and ensemble learning, which realized the complementarity between the features and the classifier. The experiments show that the sample achieve a stable F1-socre (93.56%).

malware, family classification, static analysis, machine learning, model fusion

TP309.5

A

10.11959/j.issn.2096-109x.2017.00217

孫博文(1994-),男,遼寧沈陽(yáng)人,北京郵電大學(xué)碩士生,主要研究方向?yàn)榫W(wǎng)絡(luò)安全、惡意軟件檢測(cè)。

黃炎裔(1994-),女,江西黎川人,北京郵電大學(xué)碩士生,主要研究方向?yàn)閿?shù)據(jù)安全、分布式調(diào)度。

溫俏琨(1996-),女,遼寧沈陽(yáng)人,北京郵電大學(xué)本科生,主要研究方向?yàn)榫W(wǎng)絡(luò)安全、機(jī)器學(xué)習(xí)。

田斌(1983-),男,北京人,博士,中國(guó)信息安全測(cè)評(píng)中心副研究員,主要研究方向?yàn)橥{情報(bào)、攻擊溯源。

吳鵬(1982-),男,四川廣元人,四川大學(xué)博士生,主要研究方向?yàn)閻阂廛浖z測(cè)、軟件抄襲、軟件安全加固。

李祺(1981-),女,北京人,北京郵電大學(xué)副教授,主要研究方向?yàn)榫W(wǎng)絡(luò)安全、機(jī)器學(xué)習(xí)、物聯(lián)網(wǎng)安全。

2017-09-20;

2017-10-29。

孫博文,273908200@qq.com

國(guó)家自然科學(xué)基金資助項(xiàng)目(No.U1536119, No.61401038)

The National Natural Science Foundation of China (No.U1536119, No.61401038)

猜你喜歡
視圖分類器家族
HK家族崛起
《小偷家族》
5.3 視圖與投影
視圖
基于差異性測(cè)度的遙感自適應(yīng)分類器選擇
家族中的十大至尊寶
基于實(shí)例的強(qiáng)分類器快速集成方法
Y—20重型運(yùn)輸機(jī)多視圖
SA2型76毫米車載高炮多視圖
基于層次化分類器的遙感圖像飛機(jī)目標(biāo)檢測(cè)
荔波县| 同德县| 明光市| 永春县| 镶黄旗| 临城县| 祥云县| 资兴市| 新河县| 彭泽县| 稻城县| 侯马市| 九江市| 尉犁县| 沁水县| 淳安县| 横峰县| 崇信县| 莆田市| 夏津县| 胶州市| 石家庄市| 西青区| 轮台县| 安乡县| 卓资县| 弥渡县| 绥德县| 湘潭县| 九江县| 铜川市| 芦溪县| 合川市| 武陟县| 乐至县| 开化县| 保康县| 湟中县| 怀柔区| 芒康县| 北流市|