基於函式調用關係圖特徵的惡意代碼檢測新方法

基於函式調用關係圖特徵的惡意代碼檢測新方法

《基於函式調用關係圖特徵的惡意代碼檢測新方法》是四川大學於2010年12月13日申請的發明專利,該專利申請號為2010105851011,公布號為CN102034042A,專利公布日為2011年4月27日,發明人是王俊峰、趙宗渠、白金榮、劉達富、方智陽。該發明涉及計算機信息安全中的惡意軟體檢測。

《基於函式調用關係圖特徵的惡意代碼檢測新方法》傳統的特徵碼檢測技術是通過局部特徵對軟體進行判斷,其缺點是檢測工具必須維護龐大的先驗特徵碼以及這些檢測方案缺少必要的穩定性和可靠性。該方法對於PortableExecutables(PE)檔案利用軟體函式調用關係圖,根據已有軟體網路方面的研究成果,通過提取圖特徵信息來檢測惡意代碼。該方法主要過程分三步:1、建立軟體函式調用圖;2、提取圖中特徵指標;3、通過有效的數據挖掘算法分類惡意軟體和正常軟體。該發明不但能夠有效的檢測出普通zero-day惡意代碼,而且對於採用模糊和多態技術的惡意代碼同樣有較好的檢測結果,對於蓄意攻擊也保持良好的穩定性。

2017年12月11日,《基於函式調用關係圖特徵的惡意代碼檢測新方法》獲得第十九屆中國專利優秀獎。

(概述圖為《基於函式調用關係圖特徵的惡意代碼檢測新方法》的摘要附圖)

基本介紹

  • 中文名:基於函式調用關係圖特徵的惡意代碼檢測新方法
  • 公布號:CN102034042A
  • 公布日:2011年4月27日
  • 申請號:2010105851011
  • 申請日:2010年12月13日
  • 申請人:四川大學
  • 地址:四川省成都市武侯區一環路南一段24號
  • 發明人:王俊峰、趙宗渠、白金榮、劉達富、方智陽
  • 代理機構:成都信博專利代理有限責任公司
  • 代理人:舒啟龍
  • Int.Cl.:G06F21/00(2006.01)I
  • 類別:發明專利
專利背景,發明內容,專利目的,技術方案,改善效果,附圖說明,權利要求,實施方式,榮譽表彰,

專利背景

隨著計算機科學在社會各個領域的廣泛套用,計算機軟體的安全問題受到人們越來越多的關注。建立可信的軟體系統成為維護計算機信息安全的一種有效手段,對於惡意代碼的檢測成為軟體可信性分析的核心研究方向。
傳統的基於特徵碼的檢測方式需要通過專用資料庫來更新和維護事先提取相關特徵碼,通過掃描引擎查找軟體的局部信息,並使用字元串匹配方法來對比這些信息和特徵碼的相似度,根據對比結果來得出檢測結論。這種檢測方法被廣泛套用於現有的防毒軟體和系統防護軟體中,屬於比較成熟的技術,2010年12月以後的開發重點主要集中在提高代碼的掃描速度和特徵碼提取的準確度。
2010年12月之前提出的非特徵碼惡意代碼檢測方法中,有些是採用啟發式分析或是基於軟體行為來判斷正常軟體和惡意軟體,這些方法在沒有軟體先驗信息的情況下,對zero-day惡意軟體有一定的檢測效果。還有一些研究是通過在軟體特殊結構屬性信息來分類軟體,比如通過提取PE(Portable Executables)檔案的頭部信息進行對比分類,在正常運行環境也取得了不錯的檢測結果。這些方法都是通過對軟體的局部信息挖掘,期望得到能夠將軟體正確分類的指標集,然後用指標集檢測軟體。
上述的惡意代碼檢測方法分別存在以下問題:
第一,基於特徵碼的檢測方法需要獲得惡意代碼的特徵碼,並將不斷增加的特徵碼到用戶端的資料庫,對日益龐大的資料庫維護成為使用者付出的代價。該檢測方法最大的缺點是難以檢測未知的惡意代碼,用戶不能夠及時處理新的安全威脅。
第二,採用啟發式分析或是基於軟體行為檢測方法是通過獲得代碼的特殊局部信息對軟體進行分類,但是對於使用模糊和多態的惡意代碼,這種局部特徵往往不固定,因此該檢測方法在判斷這些惡意代碼時準確率不夠。
第三,使用標準格式信息來區分軟體的檢測方法,利用的是軟體的外部描述信息,這些信息大多不直接涉及軟體的行為,對於熟悉該方法的惡意代碼設計者,能夠通過對格式信息的特殊處理來大幅度降低該方法的檢測效果。

發明內容

專利目的

《基於函式調用關係圖特徵的惡意代碼檢測新方法》提出並設計一種檢出率高、穩定性好的基於軟體函式調用關係圖的惡意代碼檢測新方法。

技術方案

《基於函式調用關係圖特徵的惡意代碼檢測新方法》分為以下3個階段:
1、建立軟體函式調用關係圖;
2、提取圖中特徵指標;
3、通過數據挖掘算法分類惡意軟體和正常軟體;
具體步驟如下:
1、建立軟體函式調用關係圖:
裝入PE格式樣本檔案,然後採用遞歸下降算法來處理檔案,將檔案進行反彙編操作,將檔案轉換成彙編代碼,根據代碼中的調用指令建立函式調用關係,然後將函式和這些調用關係保存在圖這種數據結構中;上述遞歸下降算法是通過控制流來逐條定位和分析指令及數據,根據順序流指令,條件分支指令,無條件分支指令,函式調用指令和返回指令來定位後續指令的位置;
2、提取圖中特徵指標:
2.1、產生函式調用關係圖特徵集:
通過對輸入的函式調用關係圖描述檔案處理,將檔案中保存的函式調用關係圖信息使用鄰接鍊表的數據結構保存,然後在該結構中計算和統計定義特徵集合FeatureList的值;檔案處理步驟為:
a、從輸入檔案中讀入結點和邊信息;
b、向鄰接鍊表中添加結點和邊信息;統計結點類型及數量;直至讀檔案結束;然後,遍歷所有連通有向子圖,並統計結點和出、入度信息;遍歷所有連通無向子圖,並統計結點和出、入度信息;遍歷定義的擴展連通圖,並統計其信息,最後得到的計算和統計結果為產生的函式調用關係圖特徵集;
2.2、篩選指標以精確的反應函式調用關係圖的特徵:二者擇一地採用以下兩種屬性過濾算法以去除冗餘屬性區和分度較低的屬性,合併相關較高的屬性,進行指標的篩選;其一是,採用數據挖掘軟體Weka中提供的CfsSubsetEval函式提供的屬性過濾功能,衡量每一個屬性的預測能力以及它們之間的冗餘度,篩選出對預測目標關聯度較高且相互之間低耦合的屬性集合;其二是,選用與分類算法相關的屬性篩選算法WrapperSubsetEval,通過交叉驗證的方法對屬性進行衡量,最後得到該分類算法最有效的屬性集合;
3、通過數據挖掘算法分類惡意軟體和正常軟體:
3.1、通過分類算法產生訓練集結果:該過程是生成訓練集結果和決策樹的過程;首先對大量的正常軟體和惡意代碼樣本進行處理,將前面生成的函式調用關係圖特徵集的指標作為輸入,通過機器學習過程,在選用的數據挖掘算法中得到訓練集結果;上述數據挖掘算法採用基於決策樹的C4.5算法,基於多層神經網路的BP算法,Lazy分類算法中的IBK和貝葉斯分類算法中的NaiveBayes算法之一種;並按以下兩種方式產生訓練集結果和決策樹:一種是按百分比劃分樣本和測試的數量,另一種是m fold交叉驗證;訓練集結果作為之後檢測PE檔案的依據;
3.2、產生測試結果:對於被測試的PE檔案,經過產生函式調用關係圖和提取圖特徵指標後,將這些指標格式化成符合檢測要求的訓練記錄,用arff檔案存儲這些數據;這些訓練記錄檔案作為輸入,選用上述訓練集結果就得到測試結果。
上述數據挖掘算法優選為基於決策樹的C4.5算法。
上述m fold交叉驗證優選為10fold交叉驗證。
上述篩選的指標為28個:地址函式結點個數;外部函式結點個數;內部函式結點個數;導入名稱結點個數;入口結點個數;有向連通圖個數;無向連通圖個數;入口結點序號;有向連通圖結點數絕對平均方差;有向連通圖平均度數;入口結點後擴展圖結點總數;入口結點前擴展圖結點總數;入口結點有向連通圖結點個數;最大有向連通圖結點數;最大無向連通圖結點數;入口結點無向連通圖結點數;入口結點連通圖是不是最大無向連通圖;結點最大度數;結點平均度數;度數的絕對平均方差;孤立地址函式結點個數;孤立外部函式結點個數;孤立內部函式結點個數;孤立導入名稱結點個數;終端地址子函式結點個數;終端外部函式結點個數;終端內部函式結點個數;終端導入名稱結點個數。

改善效果

《基於函式調用關係圖特徵的惡意代碼檢測新方法》針對傳統惡意代碼檢測方法中偏重於軟體的局部或外部特徵,對使用模糊和多態技術惡意代碼檢測效率不穩定的缺點,提出利用軟體中更加穩定的函式調用關係來發掘軟體的行為特徵,使用圖的形式來描述這些調用關係,進而利用軟體網路和圖論的相關知識對軟體行為進行量化,通過指標分析和數據挖掘來實現惡意代碼檢測。
該發明解決的關鍵問題在於:創新性的利用軟體的函式調用關係圖特徵來判斷軟體行為,利用機器學習算法對量化的圖特徵指標進行篩選,通過數據挖掘的分類算法對樣本處理得到軟體分類的決策樹,從而進行惡意代碼檢測。

附圖說明

圖1是《基於函式調用關係圖特徵的惡意代碼檢測新方法》的模型框圖。
基於函式調用關係圖特徵的惡意代碼檢測新方法
圖1

權利要求

1.《基於函式調用關係圖特徵的惡意代碼檢測新方法》其特徵是:分為以下3個階段:
1、建立軟體函式調用關係圖;
2、提取圖中特徵指標;
3、通過數據挖掘算法分類惡意軟體和正常軟體;
具體步驟如下:
1、建立軟體函式調用關係圖:裝入PE格式樣本檔案即Portable Executables格式樣本檔案,然後採用遞歸下降算法來處理檔案,將檔案進行反彙編操作,將檔案轉換成彙編代碼,根據代碼中的調用指令建立函式調用關係,然後將函式和這些調用關係保存在圖這種數據結構中;上述遞歸下降算法是通過控制流來逐條定位和分析指令及數據,根據順序流指令,條件分支指令,無條件分支指令,函式調用指令和返回指令來定位後續指令的位置;
2、提取圖中特徵指標:
2.1、產生函式調用關係圖特徵集:通過對輸入的函式調用關係圖描述檔案處理,將檔案中保存的函式調用關係圖信息使用鄰接鍊表的數據結構保存,然後在該結構中計算和統計定義特徵集合FeatureList的值;檔案處理步驟為:
a、從輸入檔案中讀入結點和邊信息;
b、向鄰接鍊表中添加結點和邊信息;統計結點類型及數量;直至讀檔案結束;然後,遍歷所有連通有向子圖,並統計結點和出、入度信息;遍歷所有連通無向子圖,並統計結點和出、入度信息;遍歷定義的擴展連通圖,並統計其信息,最後得到的計算和統計結果為產生的函式調用關係圖特徵集;
2.2、篩選指標以精確的反應函式調用關係圖的特徵:二者擇一地採用以下兩種屬性過濾算法以去除冗餘屬性和區分度較低的屬性,合併相關較高的屬性,進行指標的篩選;其一是,採用數據挖掘軟體Weka中提供的CfsSubsetEval函式提供的屬性過濾功能,衡量每一個屬性的預測能力以及它們之間的冗餘度,篩選出對預測目標關聯度較高且相互之間低耦合的屬性集合;其二是,選用與分類算法相關的屬性篩選算法WrapperSubsetEval,通過交叉驗證的方法對屬性進行衡量,最後得到該分類算法最有效的屬性集合;
3、通過數據挖掘算法分類惡意軟體和正常軟體:
3.1、通過分類算法產生訓練集結果:該過程是生成訓練集結果和決策樹的過程;首先對大量的正常軟體和惡意代碼樣本進行處理,將前面生成的函式調用關係圖特徵集的指標作為輸入,通過機器學習過程,在選用的數據挖掘算法中得到訓練集結果;上述數據挖掘算法採用基於決策樹的C4.5算法,基於多層神經網路的BP算法,Lazy分類算法中的IBK和貝葉斯分類算法中的NaiveBayes算法之一種;並按以下兩種方式產生訓練集結果和決策樹:一種是按百分比劃分樣本和測試的數量,另一種是m fold交叉驗證;訓練集結果作為之後檢測PE檔案的依據;m fold交叉驗證:在對檔案進行分類時,將所有檔案按隨機方式平均分為m份,將其中m-1份作為機器學習的材料,而另外1份作為測試目標,這樣進行m次,使每一份都能得到測試;
3.2、產生測試結果:對於被測試的PE檔案,經過產生函式調用關係圖和提取圖特徵指標後,將這些指標格式化成符合檢測要求的訓練記錄,用arff檔案存儲這些數據;這些訓練記錄檔案作為輸入,選用上述訓練集結果就得到測試結果。
2.根據權利要求1所述的基於函式調用關係圖特徵的惡意代碼檢測方法,其特徵是:所述m fold交叉驗證優選為10fold交叉驗證。
3.根據權利要求1所述的基於函式調用關係圖特徵的惡意代碼檢測方法,其特徵是:所述篩選的指標為28個:地址函式結點個數;外部函式結點個數;內部函式結點個數;導入名稱結點個數;入口結點個數;有向連通圖個數;無向連通圖個數;入口結點序號;有向連通圖結點數絕對平均方差;有向連通圖平均度數;入口結點後擴展圖結點總數;入口結點前擴展圖結點總數;入口結點有向連通圖結點個數;最大有向連通圖結點數;最大無向連通圖結點數;入口結點無向連通圖結點數;入口結點連通圖是不是最大無向連通圖;結點最大度數;結點平均度數;度數的絕對平均方差;孤立地址函式結點個數;孤立外部函式結點個數;孤立內部函式結點個數;孤立導入名稱結點個數;終端地址子函式結點個數;終端外部函式結點個數;終端內部函式結點個數;終端導入名稱結點個數。

實施方式

檢測模型及基本思想:基於軟體函式調用關係圖的惡意代碼檢測方法處理的對象主要是PE格式的正常軟體和惡意軟體。軟體工程中軟體網路的理論認為,軟體具有網路的拓撲結構,一般可以用圖表示。在該方法中,將需要檢測PE檔案在函式級別用圖結構來描述,圖中的每個結點代表在檔案中出現的函式,邊代表函式之間的調用關係。與其他數據結構相比,圖能夠表達更加豐富的語義,且圖論作為數學領域的一個重要分支,具有較長的研究歷史及成熟完備的理論支持,基於圖的數據挖掘技術主要用於發現圖特徵和軟體分類之間的規律。該方法通過提取圖中軟體的特徵信息來理解軟體的行為,進而識別惡意代碼。
基於軟體函式調用關係圖的惡意代碼檢測方法使用的模型如圖1所示,該模型分為3個階段,①建立軟體函式調用圖,②提取圖中特徵指標,③通過有效的數據挖掘中分類算法對惡意軟體和正常軟體分類。建立軟體函式調用圖階段需要對檔案進行反彙編操作,將檔案轉換成彙編代碼,根據代碼中的調用指令建立函式調用關係,然後將函式和這些調用關係保存圖這種數據結構中。這個階段包含檔案的裝入、反彙編檔案、檢測函式之間的調用關係和生成函式調用圖。
我們處理的對象是PE格式的檔案,由於一些惡意軟體修改了PE檔案的頭部信息,在裝入檔案的時候必須考慮如何處理異常的裝入信息。我們分析的主要數據是反彙編後得到的代碼,因此反彙編的質量關係到數據的準確性,在該模型中採用遞歸下降算法來處理檔案,這種算法的好處是能夠有效的區分指令和數據,提高可信賴的結果。由於不同編譯器生成的函式調用指令存在差異,在選取函式調用關係的時候,我們採用彙編指令中的call指令作為統一的調用標準,並生成調用圖。為了在特徵提取過程中更加方便,在該模型中函式調用圖使用檔案來保存。
在提取函式調用圖特定指標階段,首先要制定能夠反映圖特徵的指標,該模型中制定47個指標來量化圖特徵,這些指標是通過統計的方法、軟體網路理論和圖論中的一些算法計算得到,基本是能滿足要求。為了防止在軟體檢測階段使用數據挖掘分類時出現過度擬合的現象,我們使用了一些公開的特徵過濾算法對47個指標進行了篩選,剔除了一些冗餘指標和區分度不夠的指標,合併了部分相聯繫的指標。指標的精簡不但加快了模型整體的處理速度,而且在一定程度上提高了檢測的準確率。
在使用分類算法對檔案進行分類操作階段,首先需要建立機器學習結果,對收集的檔案樣本提取指標,選用一定的分類算法對樣本進行處理生產訓練結果,訓練結果中包含了在機器學習中找到的最佳決策樹。檢測軟體時,需要將檔案按上述步驟提取圖特徵指標,依據決策樹對軟體作出判斷結論。
方法描述:
相關概念及定義:
在介紹具體的方法之前,首先給出相關概念及定義:
定義一:函式的分類:對於反彙編後代碼中的函式,依據在反彙編過程中的信息分為4類。第1類是由調用關係按記憶體地址命名的函式稱為地址函式,第2類導入表中定義的函式,第3類是程式內部被識別的庫函式,第4類是用戶定義的函式;
定義二:m擴展子圖:將記憶體地址相鄰的m個連通子圖合併成一個子圖稱為m擴展子圖。這樣定義是根據程式局部性的原則,為了彌補靜態反彙編中丟棄某些函式間接調用關係;
定義三:m fold交叉驗證:在對檔案進行分類時,將所有檔案按隨機方式平均分為m份,將其中m-1份作為機器學習的材料,而另外1份作為測試目標,這樣進行m次,使每一份都能得到測試。
1、反彙編PE檔案:該方法以靜態分析檔案為基礎,需要將PE檔案進行反彙編生成彙編格式的代碼序列。採用反彙編引擎是利用遞歸下降算法來處理檔案,該算法是通過控制流來逐條定位和分析指令及數據,它能夠根據順序流指令,條件分支指令,無條件分支指令,函式調用指令和返回指令來定位後續指令的位置。遞歸下降算法能夠訪問所有路徑,將所有代碼進行反彙編。作為一種基於控制流的算法,遞歸下降算法能夠正確區分代碼和數據,但是作為靜態分析的缺點之一,對某些間接跳轉指令的控制流處理不徹底,會忽略一些函式間的調用關係,對此我們在統一調用標準的前提的同時,在設計函式調用圖指標時根據程式局部性的原理,做一些適當的處理;
2、提取函式調用圖中特徵:函式調用圖反映了軟體的功能,這些功能就是檢測惡意代碼的依據,提取函式調用圖中的特徵信息實際上是將這些功能通過圖的指標來反映出來,也就是如何來度量軟體功能的問題。
現代度量理論屬於數學的一個分支,度量是按照明確定義的規則,將數字或者符號賦予真實世界中實體的屬性的過程,並通過這種方式來描述實體的屬性,從而揭示其內在的意義。
形式化地,度量是一個三元組<Q,M,N>,其中:
1、經驗關係系統Q=<E,R>,E為被度量實體(屬性)的集合,R={R1,R2,…,Rn}為E上的關係集合;
2、數值關係系統N=<S,P>,S為數值或者符號集合,P={P1,P2,…,Rn}為S上的關係集合;
3、映射M:Q→N,M(x)表示實體x在被度量屬性方面的度量值。
上述定義中的經驗關係系統是對被度量事物屬性的描述與刻畫,關係Ri必須能夠真實、準確地反映被度量事物屬性的性質。從數學的角度講,關係Ri還可以被定義為被度量事物Ei上的運算,如果我們用一個映射M來給每一個Ei賦予一個實數的話,三者就構成了一個完整的度量。但是,這個映射必須滿足一定的條件,即從Q到N的映射是同態的。
函式調用圖實際上是軟體功能在語法上的一種抽象表示,即通過結構來發掘對應的功能,軟體的功能是由多個子功能構成,表現為函式調用圖的多個子圖,提取函式調用圖中特徵就是通過指標來描述這些子圖和子圖之間的關係(即經驗關係系統的Q=<E,R>)。由於子功能和子圖之間m:n的關係,所以在該階段首先需要找到儘可能多的指標以及指標之間的關係(即數值關係系統N=<S,P>)。函式調用關係圖中定義的部分基本指標如圖2表示。產生這些指標的過程描述如圖3所示。
函式調用圖中的部分基本指標如下:int sumSub;//地址函式結點個數;int exterSub;//外部函式結點個數;int innerSub;//內部函式結點個數;int remoteSub;//導入名稱結點個數;int stSub=0;//入口結點個數;int sumGraphs;//有向連通圖個數;int sumNondirectGraphs;//無向連通圖個數;int startNodeId=-1;//入口結點序號;double cGraphsVar;//有向連通圖結點數絕對平均方差;double averageNodes;//有向連通圖平均度數;int extendGraphsNodes;//入口結點後擴展圖結點總數;int foreGraphsNodes;//入口結點前擴展圖結點總數;int startnodes=0;//入口結點有向連通圖結點個數;int maxGraphNodes;//最大有向連通圖結點數;int maxNondirectedGraph;//最大無向連通圖結點數;int startNondirectNodes;//入口結點無向連通圖結點數;boolean isStartMax;//入口結點連通圖是不是最大無向連通圖;int maxDegree;//結點最大度數;double averageDegree;//結點平均度數;double degreeVar;//度數的絕對平均方差;int abSub;//孤立地址函式結點個數;int abExterSub;//孤立外部函式結點個數;int abInnerSub;//孤立內部函式結點個數;int abRemoteSub;//孤立導入名稱結點個數;int finalAdressSub;//終端地址子函式結點個數;int finalExterSub;//終端外部函式結點個數;int finalInnerSub;//終端內部函式結點個數;int finalRemoteSub;//終端導入名稱結點個數。
篩選指標來精確的反應函式調用圖的特徵:我們採用了若干種屬性過濾算法,去除冗餘屬性區和分度較低的屬性,合併相關較高的屬性。例如該方法中採用數據挖掘軟體Weka中提供的CfsSubsetEval函式提供的屬性過濾功能,衡量每一個屬性的預測能力以及它們之間的冗餘度,篩選出對預測目標關聯度較高且相互之間低耦合的屬性集合。另外還選用了與分類算法相關的屬性篩選算法WrapperSubsetEval,它以指定的分類算法為參數,通過交叉驗證的方法對屬性進行衡量,最後得到該分類算法最有效的屬性集合。與分類算法相關的屬性篩選算法雖然需要耗費時間,但這種操作只是在創建訓練集使用,對軟體的檢測時間影響不大。經過篩選後的指標,不但減輕了無效指標的干擾,通過降低數據的維度提高了分類算法在檢測代碼是的速度。
產生函式調用關係圖特徵集的過程描述:
方法:CreateFeatureList//軟體函式調用關係圖特徵創建方法。
輸入:■函式調用圖描述檔案F
輸出:■特徵集合FeatureList
方法:通過對輸入檔案F處理,將檔案中保存的函式調用圖信息使用鄰接鍊表的數據結構保存,然後在該結構中計算和統計定義特徵集合FeatureList的值;
調用OperateGdl(FileinputFile);
procedurePatternsMining(inputFile);
(1)FeatureList←∅;//FeatureList為特徵集合
(2)AllNodeListt←∅;//AllNodeListt為鄰接鍊表
(3)repeat
(4)從inputFile中讀入結點和邊信息
(5)向AllNodeList中添加結點和邊信息
(6)統計結點類型及數量
(7)until讀檔案結束
(8)遍歷所有連通有向子圖,並統計結點和出、入度信息
(9)遍歷所有連通無向子圖,並統計結點和出、入度信息
(10)遍歷定義的擴展連通圖,並統計其信息
(11)將計算和統計結果給FeatureList賦值
(12)return FeatureList;
通過分類算法產生訓練集結果該過程是生成訓練集結果和決策樹的過程。首先對大量的正常軟體和惡意代碼樣本進行處理,按檢測模型的前兩步生成相應的指標,將這些指標作為輸入,通過機器學習過程,在選用的數據挖掘算法中得到訓練集結果。由訓練樣本生成訓練集結果的過程中,該方法提供了基於決策樹的C4.5算法,基於多層神經網路的BP算法(使用Weka提供的MultilayerPerceptron函式接口),Lazy分類算法中的IBK和貝葉斯分類算法中的NaiveBayes算法。這些算法基本都能夠達到較高的準確率。該方法提供了兩種產生測試集結果的方式,一種是按百分比劃分樣本和測試的數量,另一種是m foldd交叉驗證,通過這兩種方式都可以得到訓練集結果和決策樹,從中可以獲知訓練集的分類準確率,訓練集結果可以作為之後檢測PE檔案的依據,在該模型中用Weka中使用的arff類型檔案保存。圖4表示了部分決策樹結構。
產生測試結果對於被測試的PE檔案,經過產生函式調用圖和提取圖特徵指標後,將這些指標格式化成符合檢測要求的訓練記錄,用arff檔案存儲這些數據。這些訓練記錄檔案作為輸入,選用前面提到的訓練集結果就可以得到測試結果。
決策樹的部分結構:
基於函式調用關係圖特徵的惡意代碼檢測新方法
最後,由表1給出該發明方法與傳統的基於特徵碼模式、最新的局部信息挖掘模式方法之間的簡要對比與總結。
表1《基於函式調用關係圖特徵的惡意代碼檢測新方法》與傳統方法間的對比總結
表1
檢測方法
檢測zero-day惡意代碼
處理時間
準確率
樣本維護
穩定性
傳統基於特徵碼模式
不能
特徵碼數據率
較高
基於局部信息挖掘模式
較多
較高
數據挖掘後的決策樹
一般
該發明方法
較多
較高
數據挖掘後的決策樹
具體實施例:
在表2中描述了該發明方法中採用的實驗數據集的簡要信息。該實驗數據集正常檔案是實驗室中收集的Windows XP sp3中的系統檔案和應用程式;惡意代碼是從Malfeasedatasets網站下載的部分病毒檔案。樣本檔案處理的過程包括反彙編,生成函式調用圖,從其中提取圖特徵指標,將這些數據保存在arff類型檔案中。在該發明方法驗證過程採用10fold交叉驗證,在測試過程中使用了不同的分類算法。
實驗:
具體操作:分別採用CfsSubsetEval和WrapperSubsetEval篩選特徵,然後使用4種分類算法C4.5算法、BP算法、IBK算法和NaiveBayes算法對數據進行10fold交叉測試,測試結果如表3所示。
表2實驗數據描述
表2
數據類型
數據名稱
數量
PE檔案
正常檔案
2070
惡意代碼
2051
結果分析:由於WrapperSubsetEval篩選特徵時,是根據篩選剩餘特徵都是根據相對算法組合而成,因此檢測的準確率要遠高於CfsSubsetEval方式。在所有的分類算法中,C4.5算法得到的結果最好,因此在檢測惡意代碼時推薦使用該算法。
表3實驗結果描述
表3
分類算法
C4.5算法
BP算法
IBK算法
NaiveBayes算法
class
測試結果
TPRate
FPRate
TPRate
FPRate
TP Rate
FPRate
TP Rate
FP Rate
/
CfsSubsetEval
0.897
0.158
0.828
0.176
0.89
0.183
0.932
0.475
Virus
0.842
0.103
0.824
0.172
0.817
0.11
0.525
0.068
begnign
0.87
0.131
0.826
0.174
0.854
0.148
0.734
0.277
WeightedAvg
WrapperSubsetEva1
0.898
0.075
0.854
0.169
0.896
0.108
0.77
0.186
Virus
0.925
0.102
0.831
0.146
0.892
0.104
0.814
0.23
begnign
0.911
0.088
0.843
0.158
0.894
0.106
0.791
0.208
WeightedAvg
註:TP Rate指惡意代碼被正確識別的準確率;FP Rate指正常檔案被當做惡意代碼的誤判率;Weighted Avg指加權後的平均值。

榮譽表彰

2017年12月11日,《基於函式調用關係圖特徵的惡意代碼檢測新方法》獲得第十九屆中國專利優秀獎。

相關詞條

熱門詞條

聯絡我們