孫博文,黃炎裔,溫俏琨,田斌,吳鵬,李祺
?
基于靜態(tài)多特征融合的惡意軟件分類方法
孫博文1,黃炎裔1,溫俏琨2,田斌3,吳鵬4,李祺1
(1. 北京郵電大學網(wǎng)絡空間安全學院天地互聯(lián)與融合北京市重點實驗室,北京 100876; 2. 北京郵電大學國際學院,北京 100876; 3. 中國信息安全測評中心,北京100085; 4. 四川大學計算機學院,四川成都610015)
近年來,惡意軟件呈現(xiàn)出爆發(fā)式增長勢頭,新型惡意樣本攜帶變異性和多態(tài)性,通過多態(tài)、加殼、混淆等方式規(guī)避傳統(tǒng)惡意代碼檢測方法?;诖笠?guī)模惡意樣本,設計了一種安全、高效的惡意軟件分類的方法,通過提取可執(zhí)行文件字節(jié)視圖、匯編視圖、PE視圖3個方面的靜態(tài)特征,并利用特征融合和分類器集成學習2種方式,提高模型的泛化能力,實現(xiàn)了特征與分類器之間的互補,實驗證明,在樣本上取得了穩(wěn)定的F1-score(93.56%)。
惡意軟件;家族分類;靜態(tài)分析;機器學習;模型融合
在互聯(lián)網(wǎng)飛速發(fā)展的今天,網(wǎng)絡的安全形勢卻不容樂觀,各類安全威脅飛速增長,其中傳統(tǒng)PC平臺上的惡意樣本傳播最為頻繁??ò退够居?016年底發(fā)布的年度報告顯示,卡巴斯基云端惡意樣本數(shù)據(jù)庫總量已達10億,包括病毒、木馬、蠕蟲等各類惡意對象,其增長速度也從2012年的7.53%增長到2016年的40.5%,每天發(fā)現(xiàn)的惡意文件數(shù)量從2011年的70 000個增長到2016年的323 000個[1]。2016年,賽門鐵克公司共監(jiān)測到超過35億個惡意軟件的新型變種,及100多個肆意傳播的新型惡意軟件家族,數(shù)量是過去的3倍[2]。在全球范圍內(nèi),惡意軟件攻擊事件的數(shù)量較2016年增長了36%。在惡意樣本呈飛速增長趨勢的同時,惡意樣本所使用的技術也在迅速提升。隨著復雜的加殼、混淆、反沙箱、虛擬穿透等技術的出現(xiàn),惡意樣本呈現(xiàn)出多樣化、多態(tài)化的變化趨勢,研究人員發(fā)現(xiàn)大量樣本是已有樣本的變種,這些變異樣本通過各種靜態(tài)變化來規(guī)避傳統(tǒng)的基于病毒特征碼與文件散列值的查殺方式。雖然部分反病毒檢測引擎采用啟發(fā)式的檢測方法,使用API執(zhí)行序列、系統(tǒng)全局鉤子等方式監(jiān)測軟件行為,但這樣的方式速度慢、效率低、成本高昂,且存在安全隱患,不適合大規(guī)模的惡意樣本檢測。在這樣的背景下,研究人員提出在原有靜態(tài)檢測的基礎上,通過對惡意樣本家族進行深入研究,試圖以惡意樣本家族分類的方式確定惡意樣本之間的相似度[3~7],進而判定惡意樣本是否是已知家族變異樣本,這是一種可行的對抗惡意樣本多態(tài)與多樣性的研究方法。傳統(tǒng)的惡意樣本分析方法受限于計算速度與成本消耗等原因難以適應大規(guī)模的家族分析,但隨著大數(shù)據(jù)安全與機器學習技術的發(fā)展,海量數(shù)據(jù)的融合分析將是一種最為有效的檢測與防范手段,因此如何有效、準確地進行惡意樣本家族分類是一個值得研究的課題。
對惡意樣本早期的一些工作主要關注如何鑒別正常軟件與惡意軟件,2001年,Schultz等[3]使用機器學習的方法如樸素貝葉斯檢測惡意樣本,主要使用了字符串序列、動態(tài)鏈接庫序列、系統(tǒng)調(diào)用3種典型特征,在他們所使用的數(shù)據(jù)集上達到了98%的準確率。2010年Mehdi等[4]使用原始的-gram方法得到了87.85%的準確率。隨著惡意樣本種類的增多與技術的發(fā)展,惡意樣本分類問題成為一個棘手的問題,更多的研究開始關注惡意樣本分類問題,根據(jù)分類所利用特征的不同主要分為靜態(tài)分析和動態(tài)分析兩方面的研究。在靜態(tài)分析方面,2010年park等[5]提出通過檢測惡意樣本行為圖像中最大公共子圖的方式進行分類,并做出了探索性的研究。2013年Santos等[6]深入研究惡意代碼opcode序列,提取惡意樣本1-gram opcode序列和2-gram opcode序列特征,并使用支持向量機(SVM)的方法達到了95.90%的準確率。2016年Grini等[7]使用大數(shù)據(jù)統(tǒng)計分析的方式對500多個家族100多萬個樣本進行了分類實驗,使用了多種機器學習算法最終達到89%的準確率。上述靜態(tài)分析方法的主要優(yōu)勢在于,惡意代碼無需動態(tài)執(zhí)行,對分析系統(tǒng)不會造成破壞,較為安全,且其可以在執(zhí)行文件前對代碼流程有一定掌握,另外此種方法不會受到具體進程執(zhí)行流程的制約,可以對代碼進行詳盡的細粒度分析。而其問題在于難以應對逐漸復雜的惡意樣本加殼與混淆技術,在對混淆代碼的處理上無法得到預期的效果,因而隨著虛擬化技術的不斷發(fā)展,逐漸有研究者開始對惡意樣本進行動態(tài)分析。2008年Rieck[8]等使用基于行為分析的特征,用支持向量機訓練測試特征,在14個家族中達到了88%的分類準確率,但這種方式還沒有讓樣本充分執(zhí)行。2014年Zahra等[9]利用沙箱提取惡意樣本API調(diào)用序列作為特征對惡意樣本進行分類,在小樣本上取得了不錯的效果。2017年Kolosnjaji[10]等使用開源沙箱提取系統(tǒng)調(diào)用序列、使用卷積神經(jīng)網(wǎng)絡對惡意樣本進行深度學習從而完成惡意樣本分類,達到了89.4%的準確率,這種方式具有一定的創(chuàng)新性,但在特征提取和模型訓練速度上效率較低,需要有更多進一步研究。
動態(tài)分析使用虛擬釋放等機制應對軟件脫殼與混淆技術,讓惡意樣本充分釋放,并采用執(zhí)行核心代碼的方式觀測其惡意行為,這在一定程度上解決了軟件加殼與混淆的問題,但隨著攻防技術的對抗,這種方式也逐漸暴露出弊端。首先惡意軟件開發(fā)者對于虛擬環(huán)境、沙箱機制研究更加透徹,他們采取多種檢測與對抗技術,使虛擬化及沙箱環(huán)境難以執(zhí)行惡意樣本;其次惡意樣本采用套用正常軟件數(shù)字簽名,復用正常軟件代碼等方式偽裝宿主行為,并使用穿透虛擬機技術攻擊惡意代碼分析人員;最后動態(tài)分析方法提取特征復雜、檢測時間較長、占用系統(tǒng)資源較多和誤報率較高。對資源消耗巨大,在應用到大規(guī)模數(shù)據(jù)時,這種方式的弊端尤為凸顯。而隨著人工智能以及機器學習算法的發(fā)展,靜態(tài)分析的研究環(huán)境逐漸改善,大量基于加殼樣本分析的靜態(tài)分析方法被提出,2015年,在微軟惡意樣本分類大賽中,獲獎團隊提出使用文件圖像化特征、深層匯編特征等靜態(tài)特征對惡意樣本進行分類,并在應用中被證明有效,韓曉光等[11]也在惡意代碼圖像紋理聚類上有突破性研究,這些研究有效地減少了之前靜態(tài)分析方式難以解決樣本加殼、混淆的弊端。同時隨著惡意代碼數(shù)量上的爆發(fā)式增長,靜態(tài)分析速度快、效率高、適合大規(guī)模實時分析的特點獲得了優(yōu)勢。綜上所述,本文希望利用靜態(tài)分析的優(yōu)勢,以多源視角提取大量惡意樣本靜態(tài)特征,并通過特征融合以及算法集成的方式,提出一種應用上可行的適合大規(guī)模機器學習的惡意軟件分類方法。
為了有效進行惡意樣本家族分類,需要提取惡意樣本各方面的特征,并將其序列化表示輸入分類器中。本文重點關注多維惡意樣本靜態(tài)特征,主要從字節(jié)視圖(即16進制字節(jié)碼)、匯編視圖(即asm匯編代碼)、PE視圖(即PE結(jié)構化信息)3個方面進行特征的提取。本文希望從這幾個方面,通過多源化的特征提取對抗惡意樣本加殼、混淆等技術,并最終進行有效的惡意軟件家族分類,下面分別介紹所選取的特征。
3.1.1 字節(jié)視圖特征
字節(jié)視圖能觀測到的是一系列的16進制字符排列,可以直接通過16進制讀取的方式進行特征采集,本文選取的特征包括以下幾點。
1) 文件大小:包括文件行數(shù)、文件字符總數(shù)等文件基本信息。
2) 可見字符串:統(tǒng)計各類可見字符串出現(xiàn)的長度、頻率、分布等信息;值得關注的是,一些有意義的可見字符串值得更深入的研究[12]。
3) 程序熵值:程序的熵值作為一種描述文件混亂程度的指標,可以很好地反映惡意樣本是否經(jīng)過加殼、混淆等變化,因此熵值是一個有意義的特征。
3.1.2 匯編視圖特征
二進制代碼本質(zhì)上由一系列操作碼組成,又具體分為操作符、操作數(shù)2部分,不同操作系統(tǒng)對于機器指令有不同映射,本文利用第三方工具IDA Pro[13]以及其提供的靜態(tài)批處理功能批量得到惡意樣本的反匯編視圖數(shù)據(jù),主要提取本文需要的匯編視圖特征。
1) 操作碼特征:操作碼是機器碼的一種形象化表示,是匯編視圖中出現(xiàn)的最為頻繁的元素,在眾多的相關研究中都證明了基于操作碼的分類具有良好的效果。本文采用了opcode的1-gram、2-gram特征,選取在本文所用樣本中出現(xiàn)的全部匯編指令進行統(tǒng)計作為操作碼特征。
2) 寄存器特征:寄存器是匯編語言中重要的一部分,不同編譯環(huán)境、編譯函數(shù)使用的寄存器有較大差異,因而本文提取了各類寄存器出現(xiàn)的次數(shù)。
3) 函數(shù)特征:IDA具有強大的交叉編譯以及系統(tǒng)函數(shù)識別功能,因而可以利用IDA分析的結(jié)果進行軟件自定義函數(shù)和系統(tǒng)函數(shù)的提取,這對于分析惡意樣本的內(nèi)部調(diào)用流程及混淆等行為具有極大幫助。
4) 數(shù)據(jù)定義特征:本文從助記符中單獨提出這一特征進行闡述,重點關注樣本中出現(xiàn)的db、dd、dw的相關統(tǒng)計信息,針對這3個與數(shù)據(jù)相關的指令進行了分類統(tǒng)計。在分析加殼樣本過程中,樣本主要存在的就是db、dd、dw這樣的數(shù)據(jù),通過分析這一部分的特征,并結(jié)合樣本大小、樣本壓縮率、樣本熵值等特征,可以發(fā)現(xiàn)加殼樣本的相互關聯(lián),本文希望通過對這一部分特征進行分析,來對加殼樣本有一種新的靜態(tài)分析方式。
3.1.3 PE視圖特征
PE文件頭包含大量與樣本相關的信息,以往的研究中這一部分由于處理難度大,常被研究者忽略。本文借助了工具PE Exeinfo[14]和開源工具Mastiff[15],提取了大量PE結(jié)構化特征以及編譯環(huán)境特征作為PE視圖的主要特征。
1) PE結(jié)構化特征:PE頭包含大量軟件相關的深層次數(shù)據(jù),可以分析出一定的語義信息,本文在這一部分提取了包括API調(diào)用數(shù)量、DLL調(diào)用數(shù)量、導入函數(shù)數(shù)量、導出函數(shù)數(shù)量、各方法起始虛擬地址、虛擬大小、語言及編碼方式等重要的結(jié)構化特征。
2) 反檢測引擎特征:Mastiff檢測結(jié)果包含Yara-rules[16]等一系列對惡意樣本針對各類殺毒方式所做出的隱藏措施的檢測,本文選擇了惡意樣本所采用的虛擬逃逸手段、反調(diào)試手段、反病毒手段、惡意片段匹配等幾種典型惡意特征進行提取。
3) 編譯特征:包括軟件的編譯時間與編譯環(huán)境以及加殼信息。根據(jù)編譯信息的細微差異,可以推斷軟件之間的演進關聯(lián)。
4) 惡意API:研究人員在分析了50余萬惡意樣本,多達5 TB數(shù)據(jù)后對惡意樣本所使用的API進行了統(tǒng)計[17],本文取其中前100個API出現(xiàn)的次數(shù)作為特征。表1列出了本文使用的前10個惡意API特征名稱。
表1 惡意API
上述主要特征符號標簽及含義如表2所示。
模型融合是機器學習任務中最常用的方法,它通??梢栽诟鞣N不同的應用場景中使結(jié)果獲得提升。本文針對惡意軟件提出了一種多特征融合的方法,通過對特征進行融合來構建不同基分類器、豐富特征以及算法的多樣性,以提高模型的精度與穩(wěn)定性,并通過交叉驗證選擇最優(yōu)的融合方法。整體思路如圖1所示。
表2 部分選取特征
3.2.1 特征融合
為保證基分類器的準確性與差異性,需要對特征進行采樣與融合。本文采用對這些特征進行加權的融合方式,即給不同特征賦予不同的權值,權值大的特征表示對當前分類任務的貢獻相對較大。隨機森林是一種使用廣泛的強大機器學習算法,能夠執(zhí)行回歸和分類的任務。同時,它也是一種高效的數(shù)據(jù)降維手段,用于處理缺失值、異常值以及其他數(shù)據(jù)探索中的重要步驟,并取得了不錯的成效。對于分類問題,通常采用基尼不純度或信息增益作為衡量分類的效果,當訓練決策樹的時候,可以計算出每個特征減少了多少樹的不純度。對于一個決策樹森林來說,可以算出每個特征平均減少了多少不純度,并把它平均減少的不純度作為特征融合的評價標準。因此可以通過隨機森林算法對特征進行融合,按重要程度給特征由大到小分配權重,并舍棄負面特征。
本文3.1節(jié)中共選取了3組特征,由于單組特征無法體現(xiàn)特征融合效果,選取全部3組特征融合則會造成基分類器性能降低,因而本文采取的抽樣策略為任取2組特征進行融合,并在每組特征中再次隨機抽取總體特征2/3的組內(nèi)特征,這樣組間特征相同的概率與相同特征百分比均大大降低。本文實驗采用離線訓練的方式,訓練速度快,特征融合之后分類效果存在明顯的提高。
圖1 模型思路
3.2.2 算法集成
針對部分傳統(tǒng)機器學習算法中會將所有特征串聯(lián)而導致的過擬合以及降低泛化能力的問題,本文提出了一種應用于惡意軟件的集成學習監(jiān)督分類方法。該框架的思路是在進行分類的時候,把若干基本分類器進行集成,本文采用了基于python的Scikit-learn庫[18]所提供的封裝分類器進行數(shù)據(jù)的分類,選擇了機器學習研究領域8種典型算法:GNB、GBDT、RF、ET、DT、SVM、KNN和Adaboost。完成上文所述的特征融合后,采用上述算法訓練多個基分類器,而后選擇4種結(jié)果較優(yōu)的算法進行算法集成,集成過程中,對4種不同的方法(Voting、Stacking、Bagging、Boosting)及每種方法中的不同策略進行測試,通過實驗尋找最優(yōu)的集成方案。在使用Voting方法時,測試Average of probabilities和Majority voting這2種策略;使用Stacking時,則測試BayesNet、Random Forest;而在使用Boosting過程中,測試Adaboost、GBDT、XGBoost這3種策略。根據(jù)實驗結(jié)果決定最終的分類,以取得比單個分類器更好的性能。
如今,海量的惡意樣本數(shù)據(jù)成為各大反病毒公司賴以生存的關鍵。而數(shù)據(jù)集的選擇一直是惡意樣本研究中最為關鍵的一環(huán),沒有一個標準的數(shù)據(jù)集是截至目前惡意樣本研究難以統(tǒng)一、各自為戰(zhàn)的主要原因。為了保證實驗具有一定意義上的通用性,本文使用了國外知名惡意代碼數(shù)據(jù)庫網(wǎng)站VirusShare[19]提供的惡意樣本作為本次實驗的實驗數(shù)據(jù),樣本標識為VirusShare_00271,樣本總量達到了65 536。
在本文的研究過程中,需要對惡意樣本家族進行劃分,如何對惡意樣本家族進行判定是惡意樣本研究中另一個聚焦的問題,目前文獻研究中尚未提出一個權威的解決辦法。文獻[7]提出使用微軟所述的CARO命名規(guī)則[20],這是一種通用的病毒命名規(guī)則,然而由于反病毒公司難以共享數(shù)據(jù),使各個殺毒引擎在對樣本命名過程中均有不小的改變。表3為Virustotal平臺[21]上不同引擎對同一樣本的標注結(jié)果。在閱讀大量參考文獻[3~11]后,發(fā)現(xiàn)其中絕大部分使用了卡巴斯基掃描引擎的家族劃分結(jié)果,基于成本、效率等方面考慮本文同樣延續(xù)采用這種家族劃分方式。
表3 同一惡意樣本掃描引擎結(jié)果
本文實驗過程如圖2所示,首先從VirusShare網(wǎng)站獲取原始數(shù)據(jù)集,使用PE Exeinfo、卡巴斯基引擎進行樣本的初次篩選和惡意家族的劃分。接下來,從3個視圖提取惡意樣本特征,輸入分類器進行訓練和測試,根據(jù)初次實驗結(jié)果,分析模型與數(shù)據(jù)不足,改進模型,進行特征融合?;谌诤虾蟮奶卣魇褂?種常用分類器對數(shù)據(jù)再次進行訓練和測試,根據(jù)結(jié)果擇優(yōu)進行算法集成。在結(jié)果評價方面使用F1-score作為評價標準,并使用5-cross-validation作為最終的評價標準展示不同機器學習算法的效果。
本文所選用的“VirusShare_00271”數(shù)據(jù)集總量為65 536,由于本文研究是針對Windows平臺下的PE文件,因而需要對原始數(shù)據(jù)進行篩選,本文借助PE Exeinfo這款軟件和命令行file指令,篩選掉非PE文件后,剩余13 909樣本。接下來通過卡巴斯基引擎的掃描,保留了卡巴斯基所能明確檢測出來的惡意家族600余個,樣本11 651個。而后對家族名稱進行篩選,保留了卡巴斯基能明確劃分的家族名,去掉了諸如“not a virus adware”這類的不明確樣本;最終得到了182個不同的家族種類,2 798個樣本,其中排名靠前的幾個家族如表4所示。
圖2 實驗流程
表4 家族名稱及數(shù)量
對這部分樣本進行數(shù)據(jù)的預處理及特征提取,并進行初步的訓練和測試實驗,分析初步的分類結(jié)果,發(fā)現(xiàn)其中大量的錯誤出現(xiàn)在與“Generic”相關的類別,錯誤對應關系見表5。查閱資料后發(fā)現(xiàn),卡巴斯基引擎將這個類別定義為啟發(fā)式引擎命名,也就是說它并不是一個單獨的類別,而是大量難以歸類的樣本。因而本文暫時去掉了“Trojan.Win32.Generic”“UDS: DangerousObject.Multi.Generic”這2種類別,并將“Trojan.Win32.Agent”“Trojan.Win32.Agentb”這類相近的家族歸為一類。最終得到了12個類別共計1 848個樣本,將這部分數(shù)據(jù)提取出的3類特征使用多種分類器進行訓練測試,單獨計算準確率。
表5 錯誤預測情況
接下來,采用3.1中所述的特征融合方法,對3個視圖的特征進行抽樣融合,去掉了對分類結(jié)果具有負面影響的特征,同時得到了如表6所示的對于分類影響最大的幾個特征,可以看到本文重點強調(diào)的數(shù)據(jù)定義指令特征以及惡意API、寄存器opcode等特征確實為重要的一批特征,結(jié)合編譯環(huán)境與查殼信息,并考慮樣本大小熵值等信息,也可進行單獨的樣本類型推斷。最后,按照各特征重要程度為其分配權重,利用融合后的特征再次進行實驗。
表6 各特征分數(shù)
在建立完模型之后需要對模型的好壞進行評價,為了實驗的可靠性(排除一次測試的偶然性),要進行多次測試驗證,也就是交叉驗證。為了避免對驗證數(shù)據(jù)的過擬合,本文選擇5-fold交叉校驗的方式驗證本文所提出方法的準確率和穩(wěn)定性,最終得到各分類器效果如表7和表8所示。表7中的數(shù)據(jù)顯示特征融合前每類特征的單獨分類效果,而表8則是在完成特征融合后重新計算得出,準確率相較前者有了顯著的提升。其中,數(shù)據(jù)使用ExtraTrees分類器得到了最高的92.69%的準確率。
表7 特征融合前準確率
表8 特征融合后準確率
接下來,選擇最優(yōu)的4種分類方法(RF、ET、DT、KNN)并使用3.2.2節(jié)中提到的融合方法進行算法融合,各方法及策略的分類效果如表9所示,從中可見,Voting方法過于簡單,存在一定欠擬合的情況,因而效果欠佳;Bagging 和Boosting均采取抽樣的集成方式,前者采用均勻取樣,而后者根據(jù)錯誤率取樣,因此Boosting的分類精度要優(yōu)于Bagging。Stacking的工作分為2個階段:首先使用多個基礎分類器預測分類,然后用一個新的學習模塊與它們的預測結(jié)果結(jié)合起來,以降低泛化誤差,從表9中可以看出,使用Stacking方法的集成效果明顯優(yōu)于另外3種,其中集成策略BayesNet 得到了最高的93.56%的準確率。
為了進行效率對比分析以及更大規(guī)模數(shù)據(jù)的實驗,本文對實驗過程中的各項時間進行了整理。本文全部實驗均使用一臺個人計算機進行,設備型號為macbookpro2013,處理器為Intel Core I5-4287U 2.60 GHz,內(nèi)存為8 GB。操作系統(tǒng)為Windows7旗艦版,軟件為Python2.7-64位。整個實驗主要分為引擎掃描、匯編視圖轉(zhuǎn)換、字節(jié)特征提取、匯編視圖特征提取、PE視圖特征提取、特征融合、算法集成、訓練與分類幾個步驟,表10展示了整個實驗的消耗時間,并單獨展示特征提取3個部分所消耗的時間。
分析時間消耗可知,整體實驗時間消耗在卡巴斯基引擎掃描和樣本預處理上的時間較多,當采用多臺機器分布式處理時這一部分有較大的優(yōu)化空間。在特征提取部分存在大量反復文件讀寫,后續(xù)擬采用數(shù)據(jù)庫存儲的方式加快特征組合。在算法運行時間上集成學習算法與傳統(tǒng)線性方法存在一定差距,但對整體效率上的影響微乎其微。
表10 實驗消耗時間
本文提出了一種基于多特征融合的惡意樣本家族分類方法,利用惡意樣本網(wǎng)站Virusshare提供的最新惡意樣本以及卡巴斯基引擎掃描得到的分類結(jié)果,從字節(jié)視圖、匯編視圖、PE視圖3個方面進行特征提取,設計了特征融合方法和算法集成模型,對包括SVM、決策樹、隨機森林等8種典型算法進行測試與對比,經(jīng)過多次優(yōu)化與調(diào)整最終達到了93.56%的準確率。本文的主要貢獻在于提出了完整的思路與實驗設計,實現(xiàn)了大規(guī)模惡意樣本的特征提取與分類檢測的模型,并提出使用3種視圖進行多維度特征提取與特征融合的思想以提高準確率。本文選取的特征包括在相關文獻中被證實有效的特征,也包括針對加殼文件進行區(qū)分的新式特征,最終取得了很好的效果(feature score)。本文重點介紹了特征提取與模型設計部分,對于機器學習算法和參數(shù)的設定上沒有進行詳細的介紹,今后將在這一方面繼續(xù)深入。后續(xù)的工作需要提高有效樣本的數(shù)量,由于本文實驗環(huán)境所限,以及探索階段中出現(xiàn)的各種探索性實驗,使大量時間被用在了特征設計、特征提取、特征選擇,以及出錯后的修正等階段,接下來需要將本文的樣本容量繼續(xù)擴大一個數(shù)量級,爭取達到1 000萬的初始數(shù)據(jù)量。同時解決訓練樣本分布不夠均勻的問題,對家族數(shù)量進行擴充,增進分類訓練的準確度與穩(wěn)定性。
[1] 卡巴斯基年報[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] 賽門鐵克年報[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] 韓曉光, 曲武, 姚宣霞,等. 基于紋理指紋的惡意代碼變種檢測方法研究[J]. 通信學報, 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-),男,遼寧沈陽人,北京郵電大學碩士生,主要研究方向為網(wǎng)絡安全、惡意軟件檢測。
黃炎裔(1994-),女,江西黎川人,北京郵電大學碩士生,主要研究方向為數(shù)據(jù)安全、分布式調(diào)度。
溫俏琨(1996-),女,遼寧沈陽人,北京郵電大學本科生,主要研究方向為網(wǎng)絡安全、機器學習。
田斌(1983-),男,北京人,博士,中國信息安全測評中心副研究員,主要研究方向為威脅情報、攻擊溯源。
吳鵬(1982-),男,四川廣元人,四川大學博士生,主要研究方向為惡意軟件檢測、軟件抄襲、軟件安全加固。
李祺(1981-),女,北京人,北京郵電大學副教授,主要研究方向為網(wǎng)絡安全、機器學習、物聯(lián)網(wǎng)安全。
2017-09-20;
2017-10-29。
孫博文,273908200@qq.com
國家自然科學基金資助項目(No.U1536119, No.61401038)
The National Natural Science Foundation of China (No.U1536119, No.61401038)