朱俚治
(南京航空航天大學(xué) 信息中心, 南京 210016)
?
一種識別病毒和蠕蟲的算法
朱俚治
(南京航空航天大學(xué) 信息中心, 南京 210016)
對現(xiàn)有的惡意軟件檢測算法進(jìn)行研究之后發(fā)現(xiàn),某些檢測算法只能檢測一種惡意軟件,并且部分傳統(tǒng)的檢測算法在檢測惡意程序時漏檢率偏高;針對目前現(xiàn)有的檢測算法缺乏綜合性檢測能力的短板,在此文中提出了一種新的檢測算法,該檢測算法具有一定的綜合檢測能力;新算法的思路如下:第一步區(qū)分某種軟件是惡意軟件還是非惡意軟件,如果是惡意軟件則提取其特征碼,然后使用決策樹根據(jù)惡意軟件的特征碼對惡意軟件進(jìn)行識別和分類,如果存在特征碼不能識別的惡意軟件,那么再根據(jù)病毒和蠕蟲的特征使用相似性計算算法對未知的惡意軟件進(jìn)行相似性計算,最后使用決策系統(tǒng)對相似性算法計算的結(jié)果進(jìn)行決策,該惡意軟件是病毒還是蠕蟲;將相似性計算算法,決策樹和決策系統(tǒng)在檢測惡意軟件算法中進(jìn)行應(yīng)用是文章的創(chuàng)新之處。
相似性;決策樹;病毒;蠕蟲;決策系統(tǒng)
惡意軟件是非用戶期望運(yùn)行的,懷有惡意目的或完成惡意功能的軟件統(tǒng)稱[4-6]。目前的惡意軟件泛指包括病毒、蠕蟲、傀儡程序、木馬、后門程序,以及可能導(dǎo)致計算機(jī)使用者信息外泄的廣告、間諜程序等[4-6]。由于惡意軟件對用戶的主機(jī)系統(tǒng)具有破壞性,因此及時的查殺惡意軟件對用戶來說是十分必要的。然而當(dāng)今的某些惡意軟件采用了加密技術(shù)和變種技術(shù),使得檢測算法的漏檢率較高。
病毒和蠕蟲是對互聯(lián)網(wǎng)絡(luò)最具危害性的兩種惡意程序,安全研究人員為了遏制病毒和蠕蟲在網(wǎng)絡(luò)中傳播,研發(fā)了各種關(guān)于病毒和蠕蟲的檢測算法,但有些算法是單純的傳統(tǒng)算法或單一的檢測算法,這些檢查算法在檢測病毒和蠕蟲時漏檢率越來越高,造成漏檢率高的原因之一是這些檢測算法缺乏綜合檢測能力。但由于傳統(tǒng)的檢測算法更為成熟,因此本文將傳統(tǒng)的檢測算法與當(dāng)今的某些智能算法相互融合形成一種新的檢測算法,該算法在一定程度上能夠減少算法的漏檢率。
本文提出的算法是從惡意軟件的角度來發(fā)現(xiàn)是否存在病毒或蠕蟲。該算法中首先使用了特征碼作為分類標(biāo)準(zhǔn),對惡意軟件進(jìn)行識別和分類。如果存在特征碼不能識別的惡意軟件再使用相似性計算算法對惡意軟件進(jìn)行相似性計算,最后使用決策系統(tǒng)對相似性計算結(jié)果進(jìn)行決策,該惡意軟件是病毒還是蠕蟲。因此本文提出的檢測算法具有一定的綜合檢測能力,這是本文的創(chuàng)新之處,也是對已有檢測算法的改進(jìn)之處。
根據(jù)程序的行為屬性可將程序分為善意程序和惡意程序。惡意程序具有破壞性和攻擊型,因此善意程序與惡意程序在程序的行為上有許多不同之處,程序行為的不同將導(dǎo)致程序行為權(quán)值的不同。
主體惡意性權(quán)值為[3]:
說明:如果某個程序是惡意程序,那么權(quán)值就為大于0,但如果某個程序是善意程序,那么權(quán)值就為負(fù)值[3]。
結(jié)論:通過程序行為權(quán)值的計算,如果是惡意程序則在第2節(jié)中使用決策樹算法對該惡意程序進(jìn)行屬性上的匹配和識別。如果該程序是善意程序則無需進(jìn)行下一步屬性上的匹配和識別。
2.1 決策樹技術(shù)簡介
在分類算法中決策樹這是一種智能性分類算法,該算法通常利用已經(jīng)標(biāo)記過的對象進(jìn)行學(xué)習(xí)構(gòu)造模型,然后用其對新對象進(jìn)行標(biāo)記[12-13],之后進(jìn)行對象的分類。決策樹分類算法對實(shí)例進(jìn)行分類時,必須根據(jù)已有的知識采用if-then算法結(jié)構(gòu)對未知的對象進(jìn)行分類。在分類過程中,使得未知對象的屬性與已知的知識之間的誤差達(dá)到最小[12-13]。
由于決策樹進(jìn)行對象分類時,必須根據(jù)已有的知識作為分類的條件,所以本文中采用惡意軟件特征庫中已知的特征碼作為決策樹的分類條件。
2.2 決策樹在惡意軟件分類上的應(yīng)用:
討論和分析:
②如果惡意特征碼的屬性值十分地接近與已知惡意特征碼的屬性值,那么這時惡意軟件就被識別。
②如果未知惡意軟件特征碼的值偏離與已知的惡意特征碼的屬性值,那么這時惡意軟件就沒有被識別。
說明:判斷對惡意軟件特征碼的屬性值匹配是否成功的條件如下:
1)當(dāng)f(x)≈0時,決策樹的判斷條件值為Y,則這時惡意軟件的特征碼匹配成功,此時由上一個節(jié)點(diǎn)到達(dá)左節(jié)點(diǎn)。
2)當(dāng)f(x)>0時,決策樹的判斷條件值為N,則這時惡意軟件的特征碼匹配不成功,此時由上一個節(jié)點(diǎn)到達(dá)右節(jié)點(diǎn)。
圖1 決策樹在檢測惡意軟件上的應(yīng)用
2)通過特征碼的匹配算法可以檢測出惡意軟件中部分病毒和蠕蟲,對于特征碼不能識別的惡意軟件,則使用以下第6節(jié)相似性計算和第7節(jié)的決策系統(tǒng)來檢測惡意軟件中是否存在病毒和蠕蟲。
3.1 病毒的特征
計算機(jī)病毒的一個重要特性是具有傳染性,一個程序是否具有傳染性是判別該程序是否為病毒的重要條件[1-2]。如果該程序不具備傳染性,那么就不是病毒[1-2]。目前大部分惡意程序都具有破壞性和潛伏性,病毒同樣具有破壞性和潛伏性,但病毒所具有的傳染性是其他惡意程序所不具備的。
3.2 蠕蟲的特征
蠕蟲是一種惡意代碼,對網(wǎng)絡(luò)具有破壞性,蠕蟲通過消耗網(wǎng)絡(luò)資源來達(dá)到攻擊的目的。蠕蟲發(fā)起攻擊時具有一定隱蔽性和突然性,并且能夠自動尋找和選擇攻擊目標(biāo),蠕蟲技術(shù)發(fā)展至今出現(xiàn)了多種變種,其攻擊方式令人防不勝防,因此蠕蟲對網(wǎng)絡(luò)仍然具有相當(dāng)?shù)奈:π?。蠕蟲最大的特點(diǎn)是一種自主形式的傳播,不需要任何載體,這是區(qū)別與病毒最主要的特征[7]。
3.3 病毒或蠕蟲具有的特性
病毒的特征屬性:①傳染性;②隱蔽性;③潛伏性;④破壞性;⑤觸發(fā)性,不可預(yù)測性。
蠕蟲的特征屬性:①攻擊性;②感染性;③傳染性;④其它功能。
3.4 病毒與蠕蟲特征的區(qū)別
1)在傳染性方面:當(dāng)病毒傳染自身代碼的時候需要寄生在其它程序中才能夠傳播,而蠕蟲在傳播自身代碼的時候是一種自主的傳播方式。
2)在破壞性方面:病毒的破壞性方面體現(xiàn)在對程序的破壞,而蠕蟲的破壞性方面體現(xiàn)在對網(wǎng)絡(luò)資源的破壞。
3)感染對象的異同之處是:病毒感染的是本地文件,而蠕蟲感染的是網(wǎng)絡(luò)計算機(jī)。
4.1 歐氏距離公式的簡介
在聚類算法中研究人員常常使用歐氏距離作為聚類對象之間相似性計算公式,常用的聚類公式有歐氏距離公式和馬氏距離公式[13-14]。因此本文采用歐氏距離公式作為相似性的計算公式。
歐氏距離計算公式[13-14]:
4.2 歐氏距離公式在相似計算中的應(yīng)用
惡意軟件A′與已知屬性的病毒A具有若干屬性:
1)惡意軟件A′有若干屬性Xi1,Xi2,…,Xip,已知病毒A有若干屬性Xj1,Xj2,…,Xjp。
2)如果惡意軟件A′某些屬性與已知病毒A的某些屬性存在最為相似的屬性時,那么有:Xi1-Xj1≈0,Xi2-Xj2≈0,…Xip-Xjp≈0。
4.3 惡意軟件與病毒或蠕蟲的相似性計算:
在本文中采用A′表示某種惡意軟件所具有的屬性,用A表示病毒或蠕蟲所具有的屬性。
說明:函數(shù)y=f(x)的含義是某種惡意軟件與病毒或蠕蟲屬性的偏離函數(shù)。
函數(shù): g(x)=1-f(x)
說明; 函數(shù)y=g(x)的含義是惡意軟件與病毒或蠕蟲相似程度的判斷函數(shù)。
分析和討論:
1)某種惡意軟件與病毒屬性的相似性計算:
②如果y=f(x)的值越小,那么g(x)=1-f(x)的值就越大,表示A′偏離A屬性的概率就越小。如果A′偏離A的概率就越小,那么A′與A的相似性就越大。根據(jù)以上的分析就有此結(jié)論:此時某種惡意軟件與病毒之間的相似度就越強(qiáng)。
2)某種惡意軟件與病毒屬性偏離程度的計算:
如果y=f(x)的值越大,那么g(x)=1-f(x)的值就越小,這時A′與A的相似性就越小,則某種惡意軟件的屬性與病毒之間的相似度就越弱。
如果y=f(x)的值越大,那么g(x)=1-f(x)的值就越小,就表示A′偏離A的屬性概率就越大。如果A′與A的相似性就越小,則某種惡意軟件與病毒之間的相似度就越弱。
3)根據(jù)以上的討論和分析有以下的結(jié)論:
①根據(jù)歐氏距離公式進(jìn)行對象相似性計算時的特點(diǎn),有以下結(jié)論:
②根據(jù)歐氏距離公式和相似性計算算法的討論和分析有結(jié)論如下:
如果某種惡意軟件與病毒的屬性滿足相似性計算結(jié)果,并且同時滿足歐氏距離公式的計算結(jié)果,那么該惡意軟件為病毒的概率很強(qiáng)。
③某種惡意軟件與蠕蟲之間的比較同樣可以利用上述的相似性計算算法得出相應(yīng)的結(jié)論。
④以下使用決策系統(tǒng)對相似性的計算結(jié)果作出決策。
5.1 決策系統(tǒng)的定義
在決策系統(tǒng)中決策條件屬性值的不同,能夠產(chǎn)生不同的決策屬性值,這些不同的決策結(jié)果能夠?qū)⒉煌瑢傩缘臉永M(jìn)行有效分類。條件屬性是決策規(guī)則的內(nèi)涵,是決策系統(tǒng)做出決策結(jié)果的重要因數(shù)[10-11]。
1)域:
U={x1,x2,x3,……,xn},其中x1,x2,……xn分別表示不同種類的軟件。
2)屬性集:
A={a1,a2,a3,a4,a5},其中α1表示惡意軟件,α2表示具有自我復(fù)制的功能,α3表示傳染需要載體,α4表示傳染不需要載體,α5表示惡意軟件識別成功。
3)值域:
V={Y,N}
5.2 惡意程序?qū)傩缘臎Q策表
在決策系統(tǒng)中如果把每一條樣例的條件屬性值部分作為規(guī)則的前件,那么決策屬性值部分就作為規(guī)則的后件,每一條樣例都對應(yīng)著一條具體的決策規(guī)則10-11],信息系統(tǒng)中的屬性集合可以分成兩部分:一部分為條件屬性集合;另一部分為決策屬性,這種信息系統(tǒng)通常稱為決策系統(tǒng)或決策表[10-11]。
在決策系統(tǒng)的決策表中,屬于條件屬性有:惡意軟件、具有自我復(fù)制的功能、傳染需要載體、自主傳播不需要載體。屬于決策屬性的有:惡意軟件識別成功。如表1所示。
表1 決策表
說明: ①當(dāng)某種軟件屬于惡意軟件時:屬性值為Y,否則屬性值為N。
②當(dāng)某種惡意軟件具有自我復(fù)制的功能時:屬性值為Y,否則屬性值為N。
③當(dāng)某種惡意軟件在傳播過程中時需要載體時:屬性值為Y,否則屬性值為N。
④當(dāng)某種惡意軟件在傳播過程中不需要載體時:屬性值為Y,否則屬性值為N。
5.3 惡意代碼的決定規(guī)則:
1)病毒的決策規(guī)則:
(屬于惡意軟件,Y)Λ(具有自我復(fù)制的功能,Y)Λ(傳播不需要載體,N)?(惡意軟件識別成功,Y)
2)蠕蟲的決策規(guī)則:
(屬于惡意軟件,Y)Λ(具有自我復(fù)制的功能,Y)Λ(傳播不需要載體,Y)?(惡意軟件識別成功,Y)6檢測病毒和蠕蟲的算法
(1)使用權(quán)值計算公式區(qū)分軟件是惡意軟件和非惡意軟件。
(2)提取惡意軟件的特征碼。
(3)根據(jù)提取的特征碼使用決策樹對惡意軟件進(jìn)行識別。
(4)分析病毒和蠕蟲屬性的共同點(diǎn)和不同點(diǎn)。
(5)使用相似性計算法計算不能識別的惡意軟件的相似性。
(6)使用決策系統(tǒng)對相似性的計算結(jié)果做出決策。
(7)根據(jù)決策的結(jié)果來區(qū)分病毒和蠕蟲。
網(wǎng)絡(luò)安全研究人員為了保護(hù)網(wǎng)絡(luò)計算機(jī)用戶的安全,開發(fā)出了多種檢測算法,具有智能性的檢測算法能夠應(yīng)對一些變體的網(wǎng)絡(luò)攻擊行為,并且也能夠檢測更多的未知的病毒,蠕蟲和木馬,為用戶提供的更好的保護(hù)措施。本文查閱了一些智能性的算法,提出了一種檢測蠕蟲和病毒的算法,該檢測算法中融合了決策樹算法,粗糙集中的決策系統(tǒng)以及相似性計算算法。本文將這幾種算法在檢測惡意軟件中進(jìn)行應(yīng)用是本文的創(chuàng)新之處,本文提出的檢測在一定的程度上能夠提高對惡意軟件檢測時的智能性。
[1] 鄭 晶,王春生.新一代病毒檢測技術(shù)研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2009,(9):23-25.
[2] 王培昌.走進(jìn)計算機(jī)病毒[M].北京:人民郵電出版社,2010.
[3] 劉巍偉,石 勇,郭 熠,等.一種基于綜合行為特征的惡意代碼識別方法[J].電子學(xué)報,2009,37(4):696-700.
[4] 陳 健,范明鈺.基于惡意軟件分類的特征碼提取方法[J].計算機(jī)應(yīng)用,2011,31(1):83-87.
[5] 盧 浩,胡明平,劉 波.惡意軟件分類方法研究[J].計算機(jī)應(yīng)用,2006,31(S):4-12.
[6] 陳洪泉.惡意軟件檢測中的特征選擇問題[J].電子科技大學(xué)學(xué)報,2009,38(S):53-56.
[7] 伊俊艷.蠕蟲病毒傳播機(jī)理研究機(jī)器實(shí)現(xiàn)[J].湖南科技學(xué)院學(xué)報,2005,26(11):112-113.
[8] 謝 辰.計算機(jī)病毒行為特征的檢測分析方法[J].網(wǎng)絡(luò)安全,2012(4):37-39.
[9] 董 旭,魏振軍.一種加權(quán)歐氏距離聚類方法[J].信息工程大學(xué)學(xué)報,2005,6(1):23-25.
[10] 胡清華,于達(dá)仁.應(yīng)用粗糙集計算[M].北京:科學(xué)出版社,2012.
[11] 陳德剛著.模糊粗糙集理論與方法[M].北京:科學(xué)出版社,2013.
[12] TomM.Mitchell.機(jī)器學(xué)習(xí)[M].北京:機(jī)械工業(yè)出版社,2013.
[13] 孟海東,張玉英,宋飛燕.一種基于加權(quán)歐氏距離聚類方法的研究[J].計算機(jī)應(yīng)用,2006,26(12):152-153.
[14] 董 旭,魏振軍.一種加權(quán)歐氏距離聚類方法[J].信息工程大學(xué)學(xué)報,2005,6(1):23-25.
[15] 史旭寧.惡意軟件及其檢測方法[J].電腦知識與技術(shù),2012,8(24):5810-5812.
[16] 高 鵬.分布式蠕蟲流量檢測技術(shù)[J].信息安全與通信保密,2009(12):93-95.
[17] 宋 程,李 濤,陳 桓,等.基于人工免疫原理的未知病毒檢測方法[J].計算機(jī)工程與設(shè)計,2005,26(3):583-584.
Algorithm for Identifying Viruses and Worms
Zhu Lizhi
(Information Center, Nanjing University of Aeronautics and Astronautics, Nanjing 210016,China)
After existing malware detection algorithm study found that certain detection algorithm can detect only a certain kind of malware and high missing rate in detecting malicious programs. Aiming at the existing detection algorithm lack of comprehensive capacity, we propose a new detection algorithm in this article, the detection algorithm has some integrated detection capabilities. The new algorithm ideas are as follows: The first step is to distinguish between a non-malicious software or software malware, malicious software if its signature is extracted, and then use the decision tree based on malware signatures of malware identification and classification, if signature does not recognize the existence of malware, then according to the characteristics of viruses and worms use similarity calculation algorithm for unknown malware similarity calculation, the final decision system using the algorithm to calculate the similarity of the results of decision-making, the malicious software is a virus or a worm. The similarity calculation algorithm, decision tree and decision-making system in the application of algorithms to detect malicious software is the innovation of this paper.
Similarity; decision trees; viruses; worms; decision system
2015-09-17;
2015-11-05。
朱俚治(1980-),男,江蘇宜興人,工學(xué)學(xué)士學(xué)位,工程師,主要從事計算機(jī)技術(shù),信息安全方向的研究。
1671-4598(2016)03-0224-04
10.16526/j.cnki.11-4762/tp.2016.03.061
TP3
A