陸濤
摘 要: 惡意程序的入侵方式簡(jiǎn)單、隱藏方式多且更新速度快,傳統(tǒng)惡意程序檢測(cè)算法檢測(cè)誤報(bào)率高、惡意程序更新追蹤能力不佳,為此設(shè)計(jì)了基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法。該算法由行為特征提取模塊、行為特征檢測(cè)模塊和惡意程序輸出模塊組成,行為特征提取模塊將被測(cè)網(wǎng)絡(luò)中程序的行為特征提取出來(lái),經(jīng)由行為特征檢測(cè)模塊對(duì)其中的具體行為和隱含行為進(jìn)行動(dòng)態(tài)檢測(cè),給出程序惡意程度文件,惡意程序輸出模塊以程序惡意程度文件作為輸入,根據(jù)設(shè)計(jì)的線(xiàn)性疊加函數(shù)和深度檢測(cè)流程圖檢測(cè)出其中的惡意程序并輸出。經(jīng)實(shí)驗(yàn)證明,設(shè)計(jì)的算法檢測(cè)誤報(bào)率低、惡意程序更新追蹤能力強(qiáng)。
關(guān)鍵詞: 惡意程序; 檢測(cè)算法; 惡意程度文件; 檢測(cè)誤報(bào)率
中圖分類(lèi)號(hào): TN915.08?34; TP309.5 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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年,源于某視頻網(wǎng)站遭受的惡意程序非法入侵,致使網(wǎng)絡(luò)服務(wù)器出現(xiàn)癱瘓,使電子信息廠商對(duì)惡意程序檢測(cè)算法的研究與實(shí)現(xiàn)格外關(guān)注[1?3]。惡意程序的入侵方式較為簡(jiǎn)單、隱藏方式眾多,且更新速度非???,導(dǎo)致傳統(tǒng)的惡意程序檢測(cè)算法無(wú)法對(duì)其進(jìn)行有效應(yīng)對(duì),檢測(cè)誤報(bào)率高且惡意程序更新追蹤能力不佳。因而,設(shè)計(jì)了一種基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法[4?6]。
文獻(xiàn)[7]對(duì)基于人腦解析的惡意程序檢測(cè)算法進(jìn)行設(shè)計(jì),這種算法的設(shè)計(jì)人員意識(shí)到對(duì)惡意程序特征的準(zhǔn)確提取是算法高水平檢測(cè)的基礎(chǔ),而計(jì)算機(jī)往往無(wú)法對(duì)惡意程序特征進(jìn)行深度挖掘,故利用構(gòu)建人腦解析模型增強(qiáng)算法的惡意程序更新追蹤能力。這種算法需要大量技術(shù)人員實(shí)時(shí)監(jiān)管,實(shí)現(xiàn)較為不易。文獻(xiàn)[8]對(duì)基于貝葉斯定理的惡意程序檢測(cè)算法進(jìn)行設(shè)計(jì),其檢測(cè)誤報(bào)率較低,但這種算法需要在相對(duì)獨(dú)立的環(huán)境中進(jìn)行檢測(cè)工作,這一點(diǎn)將惡意程序的更新隔絕在檢測(cè)環(huán)境外,因此幾乎不具備惡意程序更新追蹤能力。文獻(xiàn)[9]對(duì)基于機(jī)器學(xué)習(xí)的惡意程序檢測(cè)算法進(jìn)行設(shè)計(jì),這種方法的惡意程序更新追蹤能力較強(qiáng),但機(jī)器學(xué)習(xí)只能針對(duì)以往出現(xiàn)過(guò)的惡意程序進(jìn)行檢測(cè),因此算法的檢測(cè)誤報(bào)率較高。文獻(xiàn)[10]對(duì)基于線(xiàn)性疊加的惡意程序檢測(cè)算法進(jìn)行設(shè)計(jì),這種方法的檢測(cè)誤報(bào)率較低且擁有較強(qiáng)的惡意程序更新追蹤能力。但線(xiàn)性疊加只考慮到了惡意程序的具體行為對(duì)網(wǎng)絡(luò)造成的傷害,若想進(jìn)一步提高該算法的檢測(cè)水平,還需通過(guò)特定手段對(duì)惡意程序的隱含行為進(jìn)行挖掘和雙向檢測(cè)。
通過(guò)對(duì)傳統(tǒng)惡意程序檢測(cè)算法進(jìn)行分析,設(shè)計(jì)了基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法,利用概率論手段對(duì)惡意程序的行為進(jìn)行深度分析,對(duì)惡意程度文件進(jìn)行線(xiàn)性疊加檢測(cè),減少算法的檢測(cè)誤報(bào)率,增強(qiáng)算法的惡意程序更新追蹤能力。
1 惡意程序檢測(cè)算法設(shè)計(jì)
基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法由行為特征提取模塊、行為特征檢測(cè)模塊和惡意程序輸出模塊組成。行為特征提取模塊對(duì)被測(cè)網(wǎng)絡(luò)中程序的行為特征進(jìn)行提取,行為特征檢測(cè)模塊利用概率論手段對(duì)程序行為特征的惡意程度進(jìn)行分析。惡意程序輸出模塊利用線(xiàn)性疊加函數(shù)檢測(cè)惡意程序并輸出。
1.1 行為特征提取模塊設(shè)計(jì)
基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法的行為特征提取模塊主要由控制芯片組、網(wǎng)絡(luò)交互器和模擬器組成,其結(jié)構(gòu)如圖1所示。
由圖1可知,控制芯片組決定著整個(gè)行為特征提取模塊的工作水平,其負(fù)責(zé)對(duì)模塊提取工作中產(chǎn)生的中斷請(qǐng)求和直接內(nèi)存訪(fǎng)問(wèn)進(jìn)行控制,控制芯片組的接口電路圖如圖2所示。網(wǎng)絡(luò)交互器可實(shí)現(xiàn)程序在被測(cè)網(wǎng)絡(luò)和行為特征提取模塊間進(jìn)行數(shù)據(jù)交互。模擬器用于對(duì)被測(cè)網(wǎng)絡(luò)進(jìn)行虛擬化,并提供程序數(shù)據(jù)交互接口。網(wǎng)絡(luò)交互器和模擬器均有兩組,分別安放在網(wǎng)絡(luò)入口和出口處。
由圖2可知,基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法每進(jìn)行一次檢測(cè)工作,都要利用特征提取模塊從被測(cè)網(wǎng)絡(luò)提取程序的行為特征,這有助于增強(qiáng)算法的惡意程序更新追蹤能力。為了提高行為特征提取模塊的整體效率,需要在控制芯片組中寫(xiě)入PE文件。
PE文件是能夠在網(wǎng)絡(luò)中進(jìn)行直接提取的文件的統(tǒng)稱(chēng),這類(lèi)文件是在設(shè)計(jì)基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法前經(jīng)由多次實(shí)踐獲取到的。PE文件的內(nèi)容主要是網(wǎng)絡(luò)共通非惡意程序,這些程序的內(nèi)部機(jī)制較為完善,永久不會(huì)被惡意行為特征入侵。因此,行為特征提取模塊可以對(duì)PE文件進(jìn)行忽略提取,以提高模塊整體效率。同時(shí),用戶(hù)也可手動(dòng)開(kāi)啟行為特征提取模塊對(duì)PE文件進(jìn)行提取。
隨后,行為特征檢測(cè)模塊將對(duì)行為特征提取模塊的提取結(jié)果進(jìn)行分析。
1.2 行為特征檢測(cè)模塊設(shè)計(jì)
行為特征檢測(cè)模塊基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法,對(duì)特征提取模塊提取結(jié)果的分析使用概率論手段,旨在獲取惡意程序的具體行為和隱含行為。惡意程序行為包括具體行為和隱含行為,如圖3所示。
由圖3可知,具體行為是指惡意程序直接利用網(wǎng)絡(luò)漏洞進(jìn)行入侵的行為,這種行為比較容易被發(fā)現(xiàn);隱含行為是指惡意程序設(shè)計(jì)者模仿非惡意程序行為進(jìn)行設(shè)計(jì),用于迷惑用戶(hù)發(fā)出不正當(dāng)指令的行為,包括行動(dòng)指令行為和指令調(diào)用行為,這種行為具有一定的傳播和侵蝕能力,而且分析較為困難。
行為特征檢測(cè)模塊對(duì)惡意程序行為的分析是一種動(dòng)態(tài)檢測(cè)方式。在具體行為下,惡意程序的惡意代碼會(huì)直接體現(xiàn)在行為文件中,行為文件數(shù)據(jù)量很大,用戶(hù)通常不會(huì)主動(dòng)查閱,這就需要借助概率論構(gòu)建概率論測(cè)試文件對(duì)行為文件中的具體行為進(jìn)行定位和審查,得出程序惡意程度文件,再經(jīng)由惡意程序輸出模塊進(jìn)行深度檢測(cè)。
在惡意程序的隱含行為下,指令行為和指令調(diào)用行為均會(huì)在惡意程序的行為文件中嵌入指令代碼,這些指令代碼可用概率論進(jìn)行動(dòng)態(tài)檢測(cè),如圖4所示。
由圖4可知,行為特征檢測(cè)模塊先進(jìn)行惡意文件隱含行為的文件格式分析,利用概率論對(duì)文件格式進(jìn)行模擬,建立概率論測(cè)試文件。行為特征檢測(cè)模塊可根據(jù)概率論測(cè)試文件獲取虛擬程序和程序中的二進(jìn)制代碼,對(duì)二者同時(shí)進(jìn)行動(dòng)態(tài)檢測(cè)可獲取程序惡意程度文件。
將程序的具體行為和隱含行為的程序惡意程度文件組合起來(lái),共同傳至惡意程序輸出模塊進(jìn)行深度檢測(cè)。
2 惡意程序檢測(cè)算法軟件設(shè)計(jì)
基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法在軟件中給出行為特征檢測(cè)模塊的概率論分析函數(shù),以及惡意程序輸出模塊的線(xiàn)性疊加函數(shù)和深度檢測(cè)流程。
2.1 概率論分析函數(shù)和線(xiàn)性疊加函數(shù)設(shè)計(jì)
概率論分析函數(shù)的作用是對(duì)程序行為特征的惡意程度進(jìn)行挖掘。將行為特征提取模塊的提取結(jié)果組成集合[K],選取[K]中閾值的最大值[KMAX]和最小值[KMIN](下角標(biāo)代表二者的位置坐標(biāo)值),則惡意程序與非惡意程序間閾值的概率差[M]可表示為:
式中[Lk]表示行為特征[k]的閾值。[Bk]值越大,程序行為特征的惡意程度就越高。
用[Ak]表示程序的被測(cè)點(diǎn),[ak]表示被測(cè)點(diǎn)行為閾值,則線(xiàn)性疊加函數(shù)[T]可表示為:
2.2 惡意程序輸出模塊流程設(shè)計(jì)
基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法設(shè)計(jì)的惡意程序輸出模塊的深度檢測(cè)流程,如圖5所示。
由圖5可知,惡意程序輸出模塊的檢測(cè)實(shí)質(zhì)是利用線(xiàn)性疊加函數(shù)將特征檢測(cè)模塊的程序惡意程度文件串聯(lián)起來(lái),給出線(xiàn)性疊加函數(shù)[T]值?;诟怕收摵途€(xiàn)性疊加的惡意程序檢測(cè)算法對(duì)誤報(bào)率的要求在0.4%以下,故根據(jù)經(jīng)驗(yàn)將惡意程序的預(yù)設(shè)值設(shè)為15,如果[T≥15]則判定被測(cè)程序?yàn)閻阂獬绦颉?/p>
惡意程序被檢測(cè)出來(lái)后,惡意程序輸出模塊將構(gòu)建惡意程序行為文件,作為日后檢測(cè)工作的參考數(shù)據(jù),并將該文件上傳至云端,同時(shí)向用戶(hù)發(fā)出警報(bào)。
3 實(shí)驗(yàn)驗(yàn)證
實(shí)驗(yàn)對(duì)本文算法、人腦解析算法和機(jī)器學(xué)習(xí)算法的檢測(cè)誤報(bào)率和惡意程序更新追蹤能力進(jìn)行對(duì)比驗(yàn)證。在被測(cè)網(wǎng)絡(luò)中給出100個(gè)程序并產(chǎn)生2 000個(gè)程序行為,其中的惡意行為有300個(gè),惡意程序有18個(gè)。
3.1 檢測(cè)誤報(bào)率驗(yàn)證
惡意程序檢測(cè)算法的檢測(cè)誤報(bào)率分為惡意程序漏報(bào)率和非惡意程序誤報(bào)率。記錄下實(shí)驗(yàn)中檢測(cè)到第15,30,45,60,85,100個(gè)程序時(shí),算法的惡意程序漏報(bào)率和非惡意程序誤報(bào)率的各自合計(jì)值,如圖6,圖7所示。
由圖6,圖7可知,本文算法的惡意程序漏報(bào)率和非惡意程序的誤報(bào)率均明顯低于其他兩種算法,證明本文算法的檢測(cè)誤報(bào)率低。
3.2 惡意程序更新追蹤能力驗(yàn)證
隨機(jī)選擇被測(cè)網(wǎng)絡(luò)中的70個(gè)非惡意程序和15個(gè)惡意程序進(jìn)行更新,使惡意程序更難被檢測(cè)到。用算法對(duì)更新后惡意程序的檢測(cè)時(shí)間表示其惡意程序更新追蹤能力,實(shí)驗(yàn)曲線(xiàn)如圖8所示。
由圖8可知,本文算法對(duì)更新后惡意程序花費(fèi)的檢測(cè)時(shí)間最少,證明本文算法惡意程序更新追蹤能力強(qiáng)。
4 結(jié) 論
本文通過(guò)對(duì)傳統(tǒng)的惡意程序檢測(cè)算法進(jìn)行分析,設(shè)計(jì)了一種基于概率論和線(xiàn)性疊加的惡意程序檢測(cè)算法,其由行為特征提取模塊、行為特征檢測(cè)模塊和惡意程序輸出模塊組成。行為特征提取模塊主要由控制芯片組、網(wǎng)絡(luò)交互器和模擬器組成,算法每進(jìn)行一次檢測(cè)工作都要利用以上三種元件從被測(cè)網(wǎng)絡(luò)中提取程序行為特征,提取到的行為特征將通過(guò)行為特征檢測(cè)模塊和惡意程序輸出模塊檢測(cè)出其中的惡意程序。實(shí)驗(yàn)結(jié)果說(shuō)明設(shè)計(jì)的算法具有檢測(cè)誤報(bào)率低、惡意程序更新追蹤能力強(qiáng)的優(yōu)點(diǎn)。
參考文獻(xiàn)
[1] 韓奕,姜建國(guó),仇新梁,等.基于云計(jì)算的惡意程序檢測(cè)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2014,40(4):26?31.
[2] 張躍騫,何涇沙.基于機(jī)器學(xué)習(xí)的Windows環(huán)境下惡意程序檢測(cè)系統(tǒng)[J].重慶郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,26(6):778?784.
[3] 熊皓,陳杰,江坤航.一種基于行為分析的Android系統(tǒng)惡意程序檢測(cè)模型[J].湖北理工學(xué)院學(xué)報(bào),2015,31(3):42?46.
[4] 張葉慧,彭新光,蔡志標(biāo).基于類(lèi)別以及權(quán)限的Android惡意程序檢測(cè)[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(5):1568?1571.
[5] 劉曉蔚.基于數(shù)據(jù)挖掘的惡意程序智能檢測(cè)研究[J].東莞理工學(xué)院學(xué)報(bào),2015,22(1):38?42.
[6] 吳志忠,周學(xué)海.基于用戶(hù)行為周期的移動(dòng)設(shè)備異常檢測(cè)方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(4):184?189.
[7] 田朔瑋,楊岳湘,何杰,等.基于統(tǒng)計(jì)特征的隱匿P2P主機(jī)實(shí)時(shí)檢測(cè)系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2015,35(7):1892?1896.
[8] 朱俚治.一種識(shí)別病毒和蠕蟲(chóng)的算法[J].計(jì)算機(jī)測(cè)量與控制,2016,24(3):224?227.
[9] 曹海英,元元.程序代碼抄襲檢測(cè)中串匹配算法的研究[J].信息安全與技術(shù),2015,6(2):34?36.
[10] 秦紹輝,胥光申,沈丹峰,等.基于LabVIEW的噴氣織機(jī)綜合水平測(cè)試系統(tǒng)[J].西安工程大學(xué)學(xué)報(bào),2016,30(1):107?111.