?

基于程序基因的惡意程序預測技術

2018-09-22 10:17肖達劉博寒崔寶江王曉晨張索星
網絡與信息安全學報 2018年8期
關鍵詞:分類器指令準確率

肖達,劉博寒,崔寶江,王曉晨,張索星

?

基于程序基因的惡意程序預測技術

肖達1,2,劉博寒1,2,崔寶江1,2,王曉晨1,2,張索星1,2

(1. 北京郵電大學網絡空間安全學院,北京 100876;2. 移動互聯網安全技術國家工程實驗室,北京 100876)

隨著互聯網技術日益成熟,惡意程序呈現出爆發式增長趨勢。面對無源碼惡意性未知的可執行文件,當前主流惡意程序檢測多采用基于相似性的特征檢測,缺少對惡意性來源的分析?;谠摤F狀,定義了程序基因概念,設計并實現了通用的程序基因提取方案,提出了基于程序基因的惡意程序預測方法,通過機器學習及深度學習技術,使預測系統具有良好的預測能力,其中深度學習模型準確率達到了99.3%,驗證了程序基因理論在惡意程序分析領域的作用。

程序基因;動態分析;基本塊;惡意程序預測

1 引言

在互聯網技術日益成熟的今天,網絡安全態勢卻不容樂觀,各類惡意程序數量呈井噴式增長,各種信息安全事件屢見不鮮。2017年5月和6月,名為“WannaCry”和“Petya”的勒索軟件利用操作系統漏洞感染了全球100多個國家和地區的數十萬臺主機系統,造成的損失難以預計。根據《騰訊安全2017年度互聯網安全報告》數據顯示,騰訊電腦管家在2017年全年共攔截病毒30億次,發現6.3億臺主機感染病毒或木馬[1]。相似的,根據瑞星公司發布的《2017年中國網絡安全報告》顯示,瑞星“云安全”系統在2017年全年共截獲病毒樣本總量5 003萬個,病毒感染次數29.1億次,病毒總體數量比2016年同期上漲15.62%[2]。此外,惡意程序還呈現出變種多、抗檢測技術更新快的發展情況。當前主流的惡意程序識別技術已經難以滿足惡意程序迅猛發展的安全性需求,如何對未知二進制程序進行系統性分析,準確快速識別程序的惡意性成為當前研究的熱點。目前主流的惡意識別技術主要是靜態分析技術和動態分析技術。

靜態分析技術主要是通過二進制程序靜態反匯編技術,提取程序的反匯編指令、文件格式等特征。Santos等[3]將操作碼序列的長度與出現的頻率的乘積作為特征向量,通過計算兩向量之間的余弦相似度識別惡意代碼變體。孫博文等[4]通過字符串等離散信息,提取程序大小、可見字符串等特征,并利用特征融合和集成學習對惡意軟件進行分類,取得了較好的準確率。白金榮等[5]針對PE文件引用的API、資源目錄表、節區頭屬性等特征,采用Bagging等分類算法構建模型分類器,達到了99%的準確率。但靜態分析技術具有一定的局限性,如無法識別用戶函數、無法抵御惡意程序中常用的對抗加殼、多態、混淆等抗分析技術。

動態分析技術主要利用QEMU[6]、Pin[7]等動態插樁工具沙箱獲取系統調用、指令流序列程序行為。曹夢晨[8]利用Pin插樁平臺實現了無感知沙箱可提取程序的網絡行為、文件行為、注冊表行為等信息。Li等搭建了CSS(crystal security sandbox)[9]沙箱對Adware、Trojan和Worm三大惡意軟件記錄惡意軟件的文件、注冊表等惡意行為,最后使用SVM分類模型建立惡意軟件識別分類器。Ivan等[10]利用開源的沙箱Anubis對惡意程序進行程序行為監控,在沙箱生成的XML日志文件中提取特征再建立稀疏矢量模型,最后使用 KNN、SVM、多層感知器神經網絡(MIP)等分類算法建立分類模型,準確率最高達96.8%。動態分析技術具有對常見抗靜態分析技術的規避能力,但由于程序具體執行環境復雜,提取信息繁多,很難從海量的指令數據流中提取出具有識別作用的特征數據。

上述研究大多數針對惡意程序具有的結構相似性或惡意程序系統調用的相似性來對惡意程序進行分析,分析結果一般是程序的惡意性與否或執行的危險行為列表,并未從程序行為來源進行分析。2014年,Chan P P F等[11]提出可以利用程序運行時的堆內存信息檢測。Java程序功能的相似性,并稱之為動態軟件胎記(software birthmark making)。Liu K等[12]提出使用系統調用序列與程序依賴數據來作為軟件基因,以對抗軟件程序的盜版技術,檢測算法的抄襲。此時,軟件基因主要用于檢測軟件的同源性。2018年,韓金等針對Android操作系統的惡意軟件提出了惡意軟件基因[13]的概念,該研究提出從同源性的角度看待程序惡意行為,利用靜態分析的方法提取了資源段和代碼段惡意軟件基因,并采用機器學習方法構建惡意程序分類器對惡意程序分類。該理論針對程序基因的提取,基于對程序資源段和代碼段靜態分析,但PC端程序的資源段并不固定,且PC端的程序代碼段中多采用加殼、混淆等抗分析技術,因此該理論不適用于對PC端惡意程序的分析。

由于當前PC端程序大多數為無源碼、惡意性未知的可執行文件,本文針對該類程序提出程序基因的概念,從程序真實執行的匯編指令層面定義并研究程序基因。程序基因旨在研究程序基因與程序行為間的關系,即程序基因具有的行為表達能力、遺傳性質等,希望對無源碼的可執行文件提取程序基因,基于程序基因對程序行為及同源性進行數據挖掘和人工智能分析,以解決當前日益嚴峻的程序惡意性、惡意程序分類、APT攻擊溯源等問題。本文從程序惡意性入手,通過對千余個Windows平臺的惡意程序及正常程序提取程序基因,建立惡意程序預測模型,以驗證程序基因理論在分析惡意程序中的佐證作用。本文的創新點如下。

1) 針對無源碼的二進制可執行文件,定義了通用的匯編指令層程序基因概念,并基于程序動態監控技術,實現了通用的程序基因提取方法,提取的指令是程序實際執行的匯編指令,規避了加殼等反分析手段的影響,與程序行為更加貼近。

2) 提出了基于程序基因的惡意程序預測方法,采用多種機器學習模型和深度學習模型,具有較高的預測能力。

2 程序基因與提取方法

2.1 程序基因的定義

為研究無源碼、惡意性未知程序的行為及程序行為來源問題,本文提出了程序基因概念,并將程序基因定義為具有一定功能、能反映某些行為的匯編指令片段,是控制程序行為的基本遺傳單位。

基因在生物學上的定義是控制生物性狀的基本遺傳單位,而程序的性狀反映在程序表現出的獨特行為上,二進制程序實質上執行的是大量的匯編指令,匯編指令的順序、類型決定了程序行為。與生物學上的基因相比,程序基因與其具有極大的相似性。首先,程序基因穩定存儲于程序文件中,并在程序執行過程發揮作用實現程序自身的功能行為。其次,程序基因可以通過程序的更新、二次開發、引用等一系列行為在程序引用鏈中遺傳,具有該程序基因的程序在執行時會產生特定的行為。從分子組成上來看,基因由4種脫氧核糖核苷酸組成,脫氧核糖核苷酸中堿基的排列順序構成了生物的多樣性;而程序基因由多種排列各異的匯編指令組成,不同的匯編指令組合,反映了程序的不同行為。通過研究程序基因有助于分析程序功能,對程序的相似性與同源性判定也有一定作用。

2.2 程序基因的提取方法

根據程序基因的定義,程序基因是具有一定功能能反映某些行為的匯編指令片段。在一個二進制程序中,匯編指令片段從粒度上可分為:鏡像文件、程序節段、函數、指令流、基本塊和匯編指令6個層次[7]。其中,鏡像文件包含二進制程序相應的所有數據結構,包括程序自實現代碼、加載的動態鏈接庫等全部代碼;程序節段是PE文件中的程序段,如代碼段、數據段、資源段等;函數是實現程序某項特定功能的代碼片段;指令流是單入口多出口的指令序列;基本塊是單入口單出口的指令序列,是順序無跳轉的最大匯編指令序列;匯編指令是程序執行最基本的單元,由操作碼和操作數組成。出于對程序基因穩定性和遺傳性的考慮,本文以基本塊為程序基因的提取粒度。由于本文研究的樣本包含大量惡意程序,其中可能存在修改注冊表、加密磁盤等不可逆惡意行為,因此借助項目組之前研究的PinFWSandBox[14]無感知沙箱對程序行為及指令流進行監控,該沙箱可以有效地監控并回滾惡意行為以保護主機安全性。

2.2.1 基于Pin的程序指令流快照提取

Pin是Intel公司提供的一個程序插樁平臺,能在可執行程序的任意位置插入代碼,以便對程序進行動態監控分析[7]。Pin平臺為用戶提供了之前提及鏡像文件等6個粒度的API,通過調用這些API,編寫動態鏈接庫(DLL, dynamic link library)文件類型的插件,稱為Pintool。Pin平臺根據Pintool中編寫的插樁代碼,對可執行程序翻譯并執行,實現Pintool中編寫的功能。其具體工作流程如圖1所示。

圖1 Pin平臺工作流程

可以看出Pin的工作流程可分為翻譯階段和執行階段。在翻譯階段,Pin不會對相同的被插樁代碼段重復翻譯,僅在第一次翻譯時根據Pintool中的函數干涉程序的執行流程。在程序的執行階段,在每一次被插樁代碼段執行前后都會調用Pintool中的分析函數,以便在執行時得到相應的寄存器狀態、指令操作、內存讀寫情況等行為信息。在本文的指令流快照提取模塊中,Pintool以Pin平臺提供基本塊插樁API,達到在基本塊粒度提取指令流快照的目的。

2.2.2 基于Pin的指令流快照存儲

由于程序實際執行時匯編指令的數量龐大,重復性高,若詳細記錄每一條匯編指令會造成大量存儲空間的浪費。本文采用以基本塊為基本存儲單位,每個基本塊僅在第一次執行時記錄其全部匯編指令,其余情況下僅以索引號的形式記錄基本塊執行順序,以節省存儲空間,并通過重放執行基本塊流的方式恢復程序執行的實際指令流。通過編寫Pintool插件中的分析函數代碼生成程序指令流快照日志,日志共分為3個部分。

1) 程序加載的鏡像文件日志,命名格式為“待提取程序名稱_image_list.fw”,該日志記錄了加載的全部自實現函數及動態鏈接庫的起始地址、結束地址和名稱。

2) 基本塊執行序列日志,命名格式為“待提取程序名稱_process.fw”,該日志以基本塊索引號的形式記錄了程序在實際運行過程中的基本塊執行順序。

3) 基本塊指令序列日志,命名格式為“待提取程序名稱_bbl_list.fw”,該日志在Pin平臺的翻譯階段內進行記錄,詳細記錄了每一個BBL的索引號、所在的鏡像文件號、指令地址及包含的全部匯編指令。

經過上述兩部分的提取,可得到待提取程序實際運行的全部匯編指令流,以此可作為“原始程序基因庫”。由于“原始基因庫”中包含了大量程序基本塊數據,其中一部分基本塊是每一個二進制程序都會存在的,如函數對棧的初始化、函數結束調用時對棧的銷毀等,這部分基因對判定程序的行為起到作用很小,因此,可根據基本塊調用頻率設定閾值對這部分基因進行剔除,剔除以后可以得到程序基因庫。

3 惡意程序預測模型構建

3.1 惡意程序預測模型簡介

利用第2節構建的程序基因庫,本節針對程序惡意性進行研究,構建了惡意程序預測模型,實現對未知二進制程序惡意性的預測,從而驗證程序基因在對程序行為研究的可行性。

該模型的輸入是程序基因庫提取得到的程序基本塊數據。首先,利用-gram序列提取方法,構造步長不同的操作碼序列。其次,計算各操作碼序列對整體的信息增益,從而提取出貢獻信息量較多的操作碼特征。然后,利用Word2vec方法對操作碼特征進行抽象編碼,以得到具有良好語義相關性的特征詞。最終利用多種機器學習算法及深度學習算法實現了基于程序基因的惡意程序預測模型。

本模型創新性在于模型對動態提取得到的大量匯編指令級數據進行分析,通過信息增益方法解決了動態分析技術中數據量龐大不利于分析的問題;類比于文本挖掘技術,本模型將程序基因作為文本處理,采用語義相關性較好的Word2vec抽象編碼方法提取特征詞,利用上述特征構建了基于多種機器學習方法的分類器,取得了良好的準確性。

3.2 基于n-gram的操作碼序列提取

程序基因庫中包含大量匯編指令語句,在匯編指令語句中,操作碼決定了操作執行的行為,而匯編指令的邏輯順序對執行結果有很大影響,因而本項目采用相對受編譯器影響較小的操作碼作為研究的特征,選取-gram預測模型提取操作碼。

在程序指令流快照提取過程中,并未完全記錄全部匯編指令執行序列,因此需要對記錄的日志進行重放,以獲取完整的操作碼順序,流程如下[15]。

1) 讀取基本塊指令序列日志,并以字典的方式記錄該日志內容,將基本塊序號及基本塊匯編指令以鍵值對方式存儲。

2) 遍歷基本塊執行序列日志的全部內容,并按照存儲的邏輯結構從1)生成的字典中提取匯編指令的操作碼,并按照閾值對基本塊進行篩選。

3) 根據-gram模型中值的大小分別對2)中生成的操作碼序列進行提取,并記錄-gram提取到的每一條操作碼序列項出現的次數,本文的取值分別為1、2、3、4。

經過上述3個步驟,可以提取得到基于-gram的4類操作碼序列。

3.3 基于信息增益的特征選擇

通過3.2節中的操作碼序列提取過程將得到大量的操作碼序列,但由于操作碼數量過于龐大,不利于后續的計算分析,本文利用各操作碼的信息增益對特征進行篩選,得到信息增益較大的操作碼特征,在保證預測結果準確的前提下,盡可能減少計算量。

則對于任意特征x,預測系統的條件熵為

從而可以得到

根據信息增益的定義,得到對于特征的信息增益公式為

為了統計各特征的信息增益,首先分別對每個-gram序列特征在惡意和非惡意程序中出現的次數和出現的樣本數進行統計,然后利用信息增益公式求得每個-gram序列特征值,從而按照閾值篩選特征。

3.4 特征語義抽象表示方法

為了方便對3.3節中篩選得到的特征進行計算,需要對特征進行語義抽象表示以轉化成為向量。本文采用了Word2vec方法,Word2vec[17]是一種由“輸入層—隱藏層—輸出層”構成的3層神經網絡模型,可將輸入的自然語言中的詞轉換為任意維度的行向量,并將語言文本轉換為相同維度向量空間的向量運算,在Word2vec內部采用了2種人工神經網絡的分類算法——CBOW(continuous bag of words)[18]和Skip-gram[19]模型,最終得到每一個詞的最優向量,且在多個特征詞間具有良好的語義相似度。本文中Word2vec的處理對象是由3.2節篩選后的4種-gram操作碼序列,使用python語言的gensism模塊,首先遍歷全部樣本中的特征,為其生成維數為300的詞向量字典,再利用該字典將全部樣本轉換為向量并保存,為后續模型訓練與測試提供數據支持。

3.5 基于機器學習的惡意程序分類器

利用3.4特征抽象節中抽象表示得到的二維向量樣本,則整個樣本集可視為一個三維向量。但由于機器學習算法限制,需保證機器學習算法的輸入必須為二維向量。因此,在構建分類器前要將得到的三維向量降維處理,利用前文提到的Word2vec具有良好的特征詞間語義相似度性質,可對各樣本的二維向量進行簡單的運算操作降為一維向量。本文采用對每個樣本的詞向量特征累加求平均值的方法,可在最大限度上保證原文本特征不丟失。在將樣本空間降維成為二維向量后,本文利用python的Scikit-learn 庫分別構建了基于向量機、樸素貝葉斯、決策樹、隨機森林、近鄰和邏輯回歸6種分類模型的惡意程序分類器。

在模型構建中,為充分評估模型的預測性能,減小過擬合問題,引入了折交叉驗證(-fold cross validation)[20]方法。折交叉驗證通過將全部樣本分組訓練并取平均的方法來減少檢驗方差,降低性能對數據劃分的敏感性。本文中采取的折交叉驗證方法如下。

第1步:不重復地將樣本集中的樣本隨機分為5份。

第2步:每次選取其中一份作為測試集,其余4份作為訓練集以訓練預測模型。

第3步:重復第3步5次,使每個子集都有一次機會作為測試集,其余作為訓練集。針對每次訓練得到的模型測試,保存相應的測試結果。

第4步:計算5組測試結果的平均值作為該預測模型的評估指標。

在得到測試集樣本后,由于其本身同樣具有惡意性屬性標簽,可驗證本預測模型的準確性,將預測結果與標簽比較可計算出準確率(accuracy)、精確率(precision)、召回率(recall)、1分數(1score)為模型性能指標。其中,分類結果參數定義如表1所示。

表1 分類結果參數定義

準確率標識惡意樣本中被預測為惡意樣本的比例;精確率為在全部被預測為惡意樣本中真正是惡意樣本的比例;召回率標識被正確判定的惡意樣本占所有惡意樣本的比例;1分數是準確率和召回率的加權調和平均。得到計算公式如下:

3.6 基于深度學習的惡意程序分類器

本文另選取卷積神經網絡[21](CNN,convolutional neutral network)模型對提取得到的-gram操作碼序列特征進行訓練學習,以構成基于深度學習的惡意程序分類器。卷積神經網絡是神經網絡的一種,由輸入層、卷積層、池化層、輸出層4個基本元素構成,相比于其他神經網絡,CNN使用卷積運算代替矩陣運算,并以通過稀疏交互(sparse interactions)、參數共享(parameter sharing)、等變表示(equivariant representations)3個重要思想幫助改進學習系統。

對于本文提取的-gram操作碼序列,首先需要為-gram操作碼建立索引,并存儲操作碼與索引之間的鍵值關系,該步驟本文采用keras預處理模塊preprocessing中的Tokenizer來實現,可得到單詞索引序列。

在CNN模型工作流程中,模型會對輸入的文本進行向量轉換,稱為embedding層,而在3.4節中-gram操作碼序列已通過Word2vec抽象成為詞向量,因此可用3.4節中得到的詞向量矩陣代替模型的embedding層繼續訓練模型。以1-gram操作碼序列為例,本文采用的CNN模型結構如圖2所示。

圖2 1-gram CNN模型具體結構

4 實驗分析

依據第2、3節構建的程序基因提取方法及惡意程序預測分類器構建方法,本文以Python語言實現了上述流程,并使用互聯網上公開的惡意及非惡意樣本對實現的分類器進行性能檢驗。

4.1 實驗流程

首先,采集使用的原始樣本數據,其中惡意樣本來源于惡意樣本網站https://www.virusign. com/,正常程序來源于Windows XP、Windows 7 64位操作系統的系統程序,利用網絡資源爬取系統共收集惡意程序1 038個、正常程序901個,根據收集樣本來源將樣本標記為正常程序和惡意程序。接下來,使用基于Pin的指令流快照提取系統提取得到程序基因庫,并使用-gram方法對基因庫中的操作碼部分提取形成基于-gram的操作碼序列。然后,使用Word2vec對操作碼序列進行抽象語義描述轉換為特征向量。最后分別輸入到基于機器學習和基于深度學習的惡意程序預測分類器中,進行訓練和測試。在結果評價方面,使用折交叉驗證的結果展示各惡意程序預測分類器的性能。

4.2 基于機器學習的惡意程序分類器性能測試

在此實驗中,對支持向量機、樸素貝葉斯、決策樹、隨機森林、近鄰和邏輯回歸6種模型構成的分類器進行測試,以-gram的提取長度為1、2、3、4得到的操作碼序列進行4次實驗,實驗結果如表2~表5所示。

將表2~表5轉換成為圖形表示可更形象地突出各機器學習模型的優勢,以準確率為標準,各預測模型對比如圖3和圖4所示。

圖3 預測模型準確率對比

表2 n=1時基于機器學習的惡意程序分類器分類能力

表3 n=2時基于機器學習的惡意程序分類器分類能力

表4 n=3時基于機器學習的惡意程序分類器分類能力

表5 n=4時基于機器學習的惡意程序分類器分類能力

圖4 預測模型準確率趨勢

4.3 基于深度學習的惡意程序分類器性能測試

以-gram的提取長度為1、2、3、4得到的操作碼序列對深度學習預測模型進行4次實驗,實驗結果如表6所示。

為了便于分析深度學習的性能,對比本文構建的2種惡意程序預測模型,選取基于決策樹、隨機森林、近鄰和邏輯回歸模型的機器學習分類器與深度學習進行對比,結果如圖5和圖6所示。

表6 基于深度學習的惡意程序分類器分類能力

圖5 深度學習模型準確率對比

4.4 實驗總結

在基于機器學習的惡意程序分類器性能測試中,除樸素貝葉斯模型外,其余模型的準確率均超過85%;當-gram步長為3時,取得最優效果,全部模型準確率均超過90%。在此處取得最優的原因是本文所研究的程序基因中各操作碼排列具有很強的相關性,在步長較短時會丟失部分相關性特征,從而降低準確率;而當步長為4時,可能出現部分過擬合現象,導致在步長為3時取得最優效果。

圖6 深度學習模型準確率趨勢

在基于深度的惡意程序分類器性能測試中,分類器在步長為2時取得最優值,準確率高達99.3%,其余情況準確率均超過90%,總體上來講,基于深度學習的分類模型優于基于機器學習的分類模型,其原因是在構建分類器輸入時,由于機器學習分類器的輸入是二維數組,從而對得到的特征向量采用平均值法降維處理,雖然利用Word2vec得到的特征詞具有良好的語義相關性,但仍有部分特征丟失,導致深度學習模型整體上優于機器學習模型。

通過上述實驗數據分析本文提出的2種基于程序基因的惡意程序預測模型在準確率上均表現出了較強的分類能力,可以證明基于程序基因對程序惡意性預測是可行有效的。

5 結束語

本文針對二進制無源碼程序,首次提出了程序基因的概念,并基于項目組前期研發的無感知沙箱基礎上,設計了一套系統化的程序基因提取方法。針對定義的程序基因,本文提出了基于程序基因的惡意程序預測技術,實現了基于程序基因的惡意程序預測系統原型,通過對千余個惡意程序樣本、正常程序樣本預測實驗,基于程序基因的惡意程序預測模型具有很強的識別能力,可以為程序惡意性分析、程序惡意行為檢測提供佐證。在后續工作中,本項目組將進一步完善程序基因的理論體系,探索更多、更細致的識別程序行為的基因;在惡意程序預測方面,增加更多可供判斷程序屬性的特征,優化當前使用的模型,增大樣本庫容量;在其他領域,積極探索程序基因理論在惡意程序同源性、惡意程序行為識別分析等相關領域的應用。

[1] 2017年度互聯網安全報告[EB/OL]. https://slab.qq.com/news/ authority/1708.html

2017 Internet security report [EB/OL]. https://slab.qq.com/news/ authority/1708.html

[2] 阮斌. 《2017年中國網絡安全報告》發布[J]. 計算機與網絡, 2018(5).

RUAN B. 2017 China cyber security report released[J]. Computer & Network, 2018(5).

[3] SANTOS I, BREZO F, NIEVES J, et al. Idea: opcode- sequence-based malware detection[C]// International Conference on Engineering Secure Software and Systems. Springer-Verlag, 2010:35-43.

[4] 孫博文, 黃炎裔, 溫俏琨, 等. 基于靜態多特征融合的惡意軟件分類方法[J]. 網絡與信息安全學報,2017,3(11):68-76.

SUN B W, HUANG Y Y, WEN Q K, et al. Malware classification method based on static multiple-feature fusion[J]//Chinese Journal of Network and Information Security,2017,3(11):68-76.

[5] 白金榮, 王俊峰, 趙宗渠. 基于PE靜態結構特征的惡意軟件檢測方法[J]. 計算機科學, 2013, 40(01):122-126.

BAI J R, WANG J F, ZHAO Z Q. Malware detection approach based on structural feature of PE file[J]//Computer Science, 2013, 40(01): 122-126.

[6] QEMU [EB/OL]. https://wiki.qemu.org/Main_Page.

[7] Pin-a dynamic binary instrumentation tool[EB/OL]. https:// software. intel. com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool

[8] 曹夢晨. 基于沙箱指令流快照的惡意程序智能識別技術研究[D].北京郵電大學,2017.

CAO M C. Research on malware intelligent recognition technology based on sandbox instruction flow snapshot[D]// Beijing University of Posts and Telecommunications,2017.

[9] LI H J, TIEN C W, TIEN C W, et al. AOS: An optimized sandbox method used in behavior-based malware detection[C]//International Conference on Machine Learning and Cybernetics. IEEE, 2011: 404-409.

[10] FIRDAUSI I, LIM C, ERWIN A, et al. Analysis of machine learning techniques used in behavior-based malware detection[C]// Second International Conference on Advances in Computing, Control and Telecommunication Technologies. 2010:201-203.

[11] CHAN P P F, HUI L C K, YIU S M. Dynamic software birthmark for java based on heap memory analysis[M]// Communications and Multimedia Security. Springer Berlin Heidelberg, 2011:94-107.

[12] LIU K, ZHENG T, WEI L. A software birthmark based on system call and program data dependence[C]//Web Information System and Application Conference. IEEE, 2015:105-110.

[13] 韓金, 單征, 趙炳麟, 等. 基于軟件基因的Android惡意軟件檢測與分類[J]. 計算機應用研究, 2019(6).

HAN J, SHAN Z, ZHAO B L, et al. Detection and classification of Android malware based on malware gene[J]//Application Research of Computers, 2019(6).

[14] 趙晶玲, 陳石磊, 曹夢晨, 等. 基于離線匯編指令流分析的惡意程序算法識別技術[J]. 清華大學學報(自然科學版), 2016(5): 484-492.

ZHAO J L, CHEN S L, CAO M C, et al Malware algorithm recognition based on offline instruction-flow analyse. Journal of Tsinghua University(Science and Technology), 2016, 65(5): 484-492.

[15] 陳晨. 基于操作碼行為深度學習的惡意代碼檢測方法[D]. 黑龍江: 哈爾濱工業大學, 2013.

CHEN C. Malicious code detection based on opcode behavior deep learning[D]. Heilongjiang: Harbin Institute of Technology, 2013.

[16] BERRAR D, DUBITZKY W. Information gain[M]. Springer New York, 2013.

[17] RONG X. Word2vec parameter learning explained[J]. Computer Science, 2014.

[18] MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space[J]. Computer Science, 2013.

[19] MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed Representations of Words and Phrases and their Compositionality[J]. NIPS'13 Proceedings of the 26th International Conference on Neural Information Processing Systems 2013. 3111-3119.

[20] 周志華. 機器學習: = Machine learning[M]. 北京: 清華大學出版社, 2016.

ZHOU Z H. Machine learning[M]. Beijing: Tsinghua University Press, 2016.

[21] CHUA L O, ROSKA T. CNN paradigm[J]. IEEE Transactions on Circuits & Systems I Fundamental Theory & Applications, 1993, 40(3):147-156.

Malware prediction technique based on program gene

XIAO Da1,2, LIU Bohan1,2, CUI Baojiang1,2, WANG Xiaochen1,2, ZHANG Suoxing1,2

1. School of Cyberspace Security, Beijing University of Post and Telecommunications, Beijing 100876, China 2. National Engineering Lab for Mobile Network Security, Beijing 100876, China

With the development of Internet technology, malicious programs have risen explosively. In the face of executable files without source, the current mainstream malware detection uses feature detection based on similarity, with lack of analysis of malicious sources. To resolve this status, the definition of program gene was raised, a generic method of extracting program gene was designed, and a malicious program prediction method was proposed based on program gene. Utilizing machine learning and deep-learning algorithms, the forecasting system has good prediction ability, with the accuracy rate of 99.3% in the deep-learning model, which validates the role of program gene theory in the field of malicious program analysis.

program gene, dynamic analysis, basic block, malware prediction

TP309.5

A

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

肖達(1981-),男,黑龍江寧安人,北京郵電大學大學講師,主要研究方向為信息安全和人工智能。

劉博寒(1995-),男,遼寧錦州人,北京郵電大學碩士生,主要研究方向為系統安全、漏洞利用和惡意行為檢測。

崔寶江(1973-),男,山東東營人,博士,北京郵電大學教授,主要研究方向軟件安全、漏洞挖掘、大數據安全和區塊鏈安全。

王曉晨(1996-),女,山東陽信人,北京郵電大學研究生,主要研究方向為信息安全。

張索星(1994-),男,江蘇蘇州人,北京郵電大學碩士生,主要研究方向為惡意程序檢測、逆向工程和漏洞利用。

2018-06-20;

2018-07-20

崔寶江,cuibj@bupt.edu.cn

國家自然科學基金資助項目(No.U1536122, No.61502536)

The National Natural Science Foundation of China (No.U1536122, No.61502536)

猜你喜歡
分類器指令準確率
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
高速公路車牌識別標識站準確率驗證法
基于差異性測度的遙感自適應分類器選擇
基于實例的強分類器快速集成方法
中斷與跳轉操作對指令串的影響
基于匯編指令分布的惡意代碼檢測算法研究
基于層次化分類器的遙感圖像飛機目標檢測
一種基于滑窗的余度指令判別算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合