陸濤
摘 要: 惡意程序的入侵方式簡單、隱藏方式多且更新速度快,傳統惡意程序檢測算法檢測誤報率高、惡意程序更新追蹤能力不佳,為此設計了基于概率論和線性疊加的惡意程序檢測算法。該算法由行為特征提取模塊、行為特征檢測模塊和惡意程序輸出模塊組成,行為特征提取模塊將被測網絡中程序的行為特征提取出來,經由行為特征檢測模塊對其中的具體行為和隱含行為進行動態檢測,給出程序惡意程度文件,惡意程序輸出模塊以程序惡意程度文件作為輸入,根據設計的線性疊加函數和深度檢測流程圖檢測出其中的惡意程序并輸出。經實驗證明,設計的算法檢測誤報率低、惡意程序更新追蹤能力強。
關鍵詞: 惡意程序; 檢測算法; 惡意程度文件; 檢測誤報率
中圖分類號: TN915.08?34; TP309.5 文獻標識碼: A 文章編號: 1004?373X(2017)03?0085?04
Research and implementation of malicious program detection algorithm
LU Tao
(College of Information Engineering, Nanning University, Nanning 530200, China)
Abstract: Since the malicious program has simple invasion way, massive hidden ways and fast update speed, and the traditional detection algorithm dealing with the malicious program has high false alarm rate of the detection, poor update and tracking ability, a malware program detection algorithm based on probability theory and linear superposition was designed. The algorithm is composed of the behavior feature extraction module, behavior feature detection module and malicious program output module. The program behavior feature in the network under test are extracted by means of the behavior feature extraction module, and its concrete behavior and hidden behavior are dynamically detected via the behavior feature detection module. The malicious degree file of the program is given, and taken as the input of the malicious program output module. According to the designed linear superposition function and depth detection flow chart, the malicious program was detected and output. The experimental results show that the algorithm has low false alarm rate of the detection, and good capacity to track the updated malicious program.
Keywords: malicious program; detection algorithm; malicious degree file; false alarm rate of detection
0 引 言
2009年,源于某視頻網站遭受的惡意程序非法入侵,致使網絡服務器出現癱瘓,使電子信息廠商對惡意程序檢測算法的研究與實現格外關注[1?3]。惡意程序的入侵方式較為簡單、隱藏方式眾多,且更新速度非常快,導致傳統的惡意程序檢測算法無法對其進行有效應對,檢測誤報率高且惡意程序更新追蹤能力不佳。因而,設計了一種基于概率論和線性疊加的惡意程序檢測算法[4?6]。
文獻[7]對基于人腦解析的惡意程序檢測算法進行設計,這種算法的設計人員意識到對惡意程序特征的準確提取是算法高水平檢測的基礎,而計算機往往無法對惡意程序特征進行深度挖掘,故利用構建人腦解析模型增強算法的惡意程序更新追蹤能力。這種算法需要大量技術人員實時監管,實現較為不易。文獻[8]對基于貝葉斯定理的惡意程序檢測算法進行設計,其檢測誤報率較低,但這種算法需要在相對獨立的環境中進行檢測工作,這一點將惡意程序的更新隔絕在檢測環境外,因此幾乎不具備惡意程序更新追蹤能力。文獻[9]對基于機器學習的惡意程序檢測算法進行設計,這種方法的惡意程序更新追蹤能力較強,但機器學習只能針對以往出現過的惡意程序進行檢測,因此算法的檢測誤報率較高。文獻[10]對基于線性疊加的惡意程序檢測算法進行設計,這種方法的檢測誤報率較低且擁有較強的惡意程序更新追蹤能力。但線性疊加只考慮到了惡意程序的具體行為對網絡造成的傷害,若想進一步提高該算法的檢測水平,還需通過特定手段對惡意程序的隱含行為進行挖掘和雙向檢測。
通過對傳統惡意程序檢測算法進行分析,設計了基于概率論和線性疊加的惡意程序檢測算法,利用概率論手段對惡意程序的行為進行深度分析,對惡意程度文件進行線性疊加檢測,減少算法的檢測誤報率,增強算法的惡意程序更新追蹤能力。
1 惡意程序檢測算法設計
基于概率論和線性疊加的惡意程序檢測算法由行為特征提取模塊、行為特征檢測模塊和惡意程序輸出模塊組成。行為特征提取模塊對被測網絡中程序的行為特征進行提取,行為特征檢測模塊利用概率論手段對程序行為特征的惡意程度進行分析。惡意程序輸出模塊利用線性疊加函數檢測惡意程序并輸出。
1.1 行為特征提取模塊設計
基于概率論和線性疊加的惡意程序檢測算法的行為特征提取模塊主要由控制芯片組、網絡交互器和模擬器組成,其結構如圖1所示。
由圖1可知,控制芯片組決定著整個行為特征提取模塊的工作水平,其負責對模塊提取工作中產生的中斷請求和直接內存訪問進行控制,控制芯片組的接口電路圖如圖2所示。網絡交互器可實現程序在被測網絡和行為特征提取模塊間進行數據交互。模擬器用于對被測網絡進行虛擬化,并提供程序數據交互接口。網絡交互器和模擬器均有兩組,分別安放在網絡入口和出口處。
由圖2可知,基于概率論和線性疊加的惡意程序檢測算法每進行一次檢測工作,都要利用特征提取模塊從被測網絡提取程序的行為特征,這有助于增強算法的惡意程序更新追蹤能力。為了提高行為特征提取模塊的整體效率,需要在控制芯片組中寫入PE文件。
PE文件是能夠在網絡中進行直接提取的文件的統稱,這類文件是在設計基于概率論和線性疊加的惡意程序檢測算法前經由多次實踐獲取到的。PE文件的內容主要是網絡共通非惡意程序,這些程序的內部機制較為完善,永久不會被惡意行為特征入侵。因此,行為特征提取模塊可以對PE文件進行忽略提取,以提高模塊整體效率。同時,用戶也可手動開啟行為特征提取模塊對PE文件進行提取。
隨后,行為特征檢測模塊將對行為特征提取模塊的提取結果進行分析。
1.2 行為特征檢測模塊設計
行為特征檢測模塊基于概率論和線性疊加的惡意程序檢測算法,對特征提取模塊提取結果的分析使用概率論手段,旨在獲取惡意程序的具體行為和隱含行為。惡意程序行為包括具體行為和隱含行為,如圖3所示。
由圖3可知,具體行為是指惡意程序直接利用網絡漏洞進行入侵的行為,這種行為比較容易被發現;隱含行為是指惡意程序設計者模仿非惡意程序行為進行設計,用于迷惑用戶發出不正當指令的行為,包括行動指令行為和指令調用行為,這種行為具有一定的傳播和侵蝕能力,而且分析較為困難。
行為特征檢測模塊對惡意程序行為的分析是一種動態檢測方式。在具體行為下,惡意程序的惡意代碼會直接體現在行為文件中,行為文件數據量很大,用戶通常不會主動查閱,這就需要借助概率論構建概率論測試文件對行為文件中的具體行為進行定位和審查,得出程序惡意程度文件,再經由惡意程序輸出模塊進行深度檢測。
在惡意程序的隱含行為下,指令行為和指令調用行為均會在惡意程序的行為文件中嵌入指令代碼,這些指令代碼可用概率論進行動態檢測,如圖4所示。
由圖4可知,行為特征檢測模塊先進行惡意文件隱含行為的文件格式分析,利用概率論對文件格式進行模擬,建立概率論測試文件。行為特征檢測模塊可根據概率論測試文件獲取虛擬程序和程序中的二進制代碼,對二者同時進行動態檢測可獲取程序惡意程度文件。
將程序的具體行為和隱含行為的程序惡意程度文件組合起來,共同傳至惡意程序輸出模塊進行深度檢測。
2 惡意程序檢測算法軟件設計
基于概率論和線性疊加的惡意程序檢測算法在軟件中給出行為特征檢測模塊的概率論分析函數,以及惡意程序輸出模塊的線性疊加函數和深度檢測流程。
2.1 概率論分析函數和線性疊加函數設計
概率論分析函數的作用是對程序行為特征的惡意程度進行挖掘。將行為特征提取模塊的提取結果組成集合[K],選取[K]中閾值的最大值[KMAX]和最小值[KMIN](下角標代表二者的位置坐標值),則惡意程序與非惡意程序間閾值的概率差[M]可表示為:
式中[Lk]表示行為特征[k]的閾值。[Bk]值越大,程序行為特征的惡意程度就越高。
用[Ak]表示程序的被測點,[ak]表示被測點行為閾值,則線性疊加函數[T]可表示為:
2.2 惡意程序輸出模塊流程設計
基于概率論和線性疊加的惡意程序檢測算法設計的惡意程序輸出模塊的深度檢測流程,如圖5所示。
由圖5可知,惡意程序輸出模塊的檢測實質是利用線性疊加函數將特征檢測模塊的程序惡意程度文件串聯起來,給出線性疊加函數[T]值。基于概率論和線性疊加的惡意程序檢測算法對誤報率的要求在0.4%以下,故根據經驗將惡意程序的預設值設為15,如果[T≥15]則判定被測程序為惡意程序。
惡意程序被檢測出來后,惡意程序輸出模塊將構建惡意程序行為文件,作為日后檢測工作的參考數據,并將該文件上傳至云端,同時向用戶發出警報。
3 實驗驗證
實驗對本文算法、人腦解析算法和機器學習算法的檢測誤報率和惡意程序更新追蹤能力進行對比驗證。在被測網絡中給出100個程序并產生2 000個程序行為,其中的惡意行為有300個,惡意程序有18個。
3.1 檢測誤報率驗證
惡意程序檢測算法的檢測誤報率分為惡意程序漏報率和非惡意程序誤報率。記錄下實驗中檢測到第15,30,45,60,85,100個程序時,算法的惡意程序漏報率和非惡意程序誤報率的各自合計值,如圖6,圖7所示。
由圖6,圖7可知,本文算法的惡意程序漏報率和非惡意程序的誤報率均明顯低于其他兩種算法,證明本文算法的檢測誤報率低。
3.2 惡意程序更新追蹤能力驗證
隨機選擇被測網絡中的70個非惡意程序和15個惡意程序進行更新,使惡意程序更難被檢測到。用算法對更新后惡意程序的檢測時間表示其惡意程序更新追蹤能力,實驗曲線如圖8所示。
由圖8可知,本文算法對更新后惡意程序花費的檢測時間最少,證明本文算法惡意程序更新追蹤能力強。
4 結 論
本文通過對傳統的惡意程序檢測算法進行分析,設計了一種基于概率論和線性疊加的惡意程序檢測算法,其由行為特征提取模塊、行為特征檢測模塊和惡意程序輸出模塊組成。行為特征提取模塊主要由控制芯片組、網絡交互器和模擬器組成,算法每進行一次檢測工作都要利用以上三種元件從被測網絡中提取程序行為特征,提取到的行為特征將通過行為特征檢測模塊和惡意程序輸出模塊檢測出其中的惡意程序。實驗結果說明設計的算法具有檢測誤報率低、惡意程序更新追蹤能力強的優點。
參考文獻
[1] 韓奕,姜建國,仇新梁,等.基于云計算的惡意程序檢測平臺設計與實現[J].計算機工程,2014,40(4):26?31.
[2] 張躍騫,何涇沙.基于機器學習的Windows環境下惡意程序檢測系統[J].重慶郵電大學學報(自然科學版),2014,26(6):778?784.
[3] 熊皓,陳杰,江坤航.一種基于行為分析的Android系統惡意程序檢測模型[J].湖北理工學院學報,2015,31(3):42?46.
[4] 張葉慧,彭新光,蔡志標.基于類別以及權限的Android惡意程序檢測[J].計算機工程與設計,2014,35(5):1568?1571.
[5] 劉曉蔚.基于數據挖掘的惡意程序智能檢測研究[J].東莞理工學院學報,2015,22(1):38?42.
[6] 吳志忠,周學海.基于用戶行為周期的移動設備異常檢測方法[J].計算機系統應用,2015,24(4):184?189.
[7] 田朔瑋,楊岳湘,何杰,等.基于統計特征的隱匿P2P主機實時檢測系統[J].計算機應用,2015,35(7):1892?1896.
[8] 朱俚治.一種識別病毒和蠕蟲的算法[J].計算機測量與控制,2016,24(3):224?227.
[9] 曹海英,元元.程序代碼抄襲檢測中串匹配算法的研究[J].信息安全與技術,2015,6(2):34?36.
[10] 秦紹輝,胥光申,沈丹峰,等.基于LabVIEW的噴氣織機綜合水平測試系統[J].西安工程大學學報,2016,30(1):107?111.