(南京航空航天大學(xué) 信息中心,南京 210016)
病毒、蠕蟲和木馬都是惡意程序,然而日常在系統(tǒng)中運(yùn)行的各種程序都為合法程序,這些程序都是善意的。然而傳染性、攻擊性和破壞性是病毒和惡意程序所具有的特性。
在惡意程序權(quán)值計(jì)算公式中,可以計(jì)算每一種程序的權(quán)值。根據(jù)該公式可以知道當(dāng)某個(gè)程序的權(quán)值為正值時(shí),就可以判斷該程序?yàn)閻阂獬绦?,?dāng)某個(gè)程序權(quán)值為0或負(fù)值時(shí),則可以判斷該程序是善意程序。但是根據(jù)如上的敘述,可以知道惡意權(quán)值計(jì)算公式只能對(duì)兩種屬性程序進(jìn)行描述。
然而實(shí)際上用戶主機(jī)的系統(tǒng)中存在3種屬性程序,即惡意程序、善意程序和被惡意病毒感染的程序。但是在惡意程序權(quán)值公式的計(jì)算中,并不能對(duì)被病毒感染程序進(jìn)行判斷和描述,惡意權(quán)值計(jì)算公式只能對(duì)一種程序進(jìn)行判斷,該程序是否為惡意程序,并不能對(duì)惡意程序進(jìn)行屬性上的區(qū)分,從而判斷該程序是病毒還是被病毒感染的程序。病毒和被病毒感染的程序都具有惡意性,盡管病毒和被病毒感染的程序行為屬性具有相似性,但從屬性上來看這兩種程序具有一定區(qū)別,而在這一點(diǎn)上是惡意權(quán)值計(jì)算公式所不能計(jì)算和判斷的。根據(jù)上述原因?yàn)榱藢阂獬绦?、被病毒感染程序和善意程序進(jìn)行區(qū)分,因此在本文提出一種算法,將這3種不同屬性的程序進(jìn)行定性區(qū)分。
在文獻(xiàn)[3]中,該文還提出了惡意代碼檢測(cè)方案,最終的惡意性權(quán)值計(jì)算結(jié)果展現(xiàn)的是惡意代碼對(duì)系統(tǒng)的破壞性。根據(jù)該文獻(xiàn)[3]的定義2,可以知道計(jì)算惡意性權(quán)值反映的是惡意代碼主體執(zhí)行后,對(duì)系統(tǒng)的影響程度。病毒,合法程序和被病毒感染的程序是3種不同的程序,這3種程序?qū)ο到y(tǒng)的影響程序是有所不同的,合法程序的權(quán)值為0或?yàn)樨?fù)值,而病毒與被病毒感染程序的權(quán)值都大于0。作為有惡意行為的程序有兩種程序,即病毒和被病毒感染的程序,然而純粹的病毒與被病毒感染程序,對(duì)系統(tǒng)的影響程度有所差別,因此這兩種程序的惡意權(quán)值有所差別,權(quán)值之大小是不一致的。
中介真值程度度量知識(shí)簡介:
在三值邏輯出現(xiàn)之前,只有二值邏輯。然而在二值邏輯中只有0與1兩個(gè)真值,二值邏輯中的0與1在人們描述事物之屬性時(shí),只有對(duì)與不對(duì)和是與不是等等,因此在二值邏輯中,事物之屬性值只存在兩種屬性,即事物的矛盾對(duì)立面。但事實(shí)上并非所有的事物僅僅存在矛盾對(duì)立面,還有些事物的屬性存在反對(duì)對(duì)立面。我們把存在對(duì)立面的事物,同時(shí)又存在對(duì)立面之中介過渡狀態(tài)的事物屬性將采用一種新的邏輯去描述它,我們將能夠描述這一事物的邏輯稱為三值邏輯,這種三值邏輯通常稱為中介邏輯。
根據(jù)文獻(xiàn)[2-3]相關(guān)的定義和說明,現(xiàn)在用數(shù)軸將中介真值程度度量的方法描述表達(dá)如下:
圖1 中介真值程度度量一維函數(shù)圖
根據(jù)文獻(xiàn)[1-2]可以知道在中介真值程度度量方法中,存在著兩種距離比率函數(shù)(1)與(2),通過這兩個(gè)距離比率函數(shù),可以計(jì)算事物之屬性值與P,~P之間的距離。
1)計(jì)算事物屬性值相對(duì)于P的距離比率函數(shù)[2-3]
如果數(shù)軸上數(shù)值點(diǎn)的位置逐步接近于P,則事物A具有P的屬性逐步增強(qiáng)。
善意程序就是一種無害的程序,所謂的無害程序事實(shí)上就是為不會(huì)對(duì)其它程序造成破壞性的修改,對(duì)計(jì)算機(jī)資源使用時(shí),不會(huì)造成破壞性的消耗,另外黑客不能通過該程序非法獲取某些個(gè)人的敏感信息,這些程序都可以稱為無害程序,無害程序也就是我們通常所說的合法程序,本文中將該程序稱為善意程序。
惡意程序也可以稱為有害程序,惡意程序的有害性,體現(xiàn)在對(duì)善意程序能進(jìn)行破壞性的修改,或者成為黑客攻擊和破壞計(jì)算機(jī)用戶的系統(tǒng)和網(wǎng)絡(luò)的某種工具,例如這些工具可以是蠕蟲或木馬,這些程序都可以稱為有害程序,在本文中稱為惡意程序。
對(duì)于惡意代碼來說,具有如下幾種屬性:傳播性、激活性、保護(hù)性和破壞性,因此根據(jù)文獻(xiàn)[1]中提出的公式中,分別將這幾種行為屬性作了如下的定義:ki(v)、ke(v)、kp(v)、kd(v),分別定義為惡意代碼的自傳播性、自激活性、自保護(hù)性和自破壞性。
根據(jù)文獻(xiàn)[1]可以知道,根據(jù)可疑程序的各個(gè)可疑指標(biāo),可計(jì)算可疑程序中的每一個(gè)行為屬性,并且把某個(gè)程序不同的行為屬性指數(shù)進(jìn)行相加,就可以得出相應(yīng)的結(jié)論,即該程序是惡意程序還是善意程序。惡意程序權(quán)值的計(jì)算公式如下:
根據(jù)文獻(xiàn)[1]可以知道如下定義2。
定義2:獨(dú)立的惡意權(quán)值計(jì)算,假設(shè)以v為主體行為共存在n個(gè)客體,每個(gè)客體系統(tǒng)的影響指數(shù)為k(o)=αki(o)+βki(o)+Χkp(o)+εkd(o),那么主體惡意權(quán)值的計(jì)算公式為:
在惡意性權(quán)值計(jì)算公式中,符號(hào)ki(v)、ke(v)、kp(v)、kd(v)分別表示客體,而每個(gè)惡意程序所具有的自傳播性、自激活性、自保護(hù)性和破壞性可以分別稱為某個(gè)惡意程序的客體,而每個(gè)惡意程序可以理解為某個(gè)主體。
在文獻(xiàn)[1]中提出的計(jì)算公式,可以知道無論是惡意程序還是善意程序的某個(gè)客體值越大,則該程序行為屬性對(duì)系統(tǒng)影響的程度就越大,如果客體的值為0,則與該客體相對(duì)應(yīng)的行為屬性對(duì)系統(tǒng)沒有產(chǎn)生任何影響。惡意代碼對(duì)系統(tǒng)的影響性,主要是指惡意代碼的各種行為屬性對(duì)系統(tǒng)的影響,因此根據(jù)以上的敘述可以認(rèn)為當(dāng)某個(gè)主體的客體對(duì)系統(tǒng)沒有產(chǎn)生影響時(shí),客體的屬性值則為0。α、β、χ、δ分別表示惡意代碼行為:ki(v)、ke(v)、kp(v)、kd(v)的權(quán)重值。
根據(jù)文獻(xiàn)[1]中的惡意程序權(quán)值計(jì)算公式有如下結(jié)論:如果某個(gè)程序是惡意程序,那么該程序的權(quán)值為正值,但如果某個(gè)程序是善意程序,那么該程序的權(quán)值就為0或負(fù)值。
病毒的傳染性、激活性、破壞性和隱蔽性,都是病毒所具有的特征,然而正是由于這些行為的存在,所以通過惡意代碼權(quán)值計(jì)算公式,所計(jì)算出來的程序行為屬性的權(quán)值都不為0,并且這些權(quán)值都是正值。
由于一般合法性程序不具有病毒的傳染性、激活性、破壞性和隱蔽性,因此當(dāng)采用惡意代碼權(quán)值公式進(jìn)行計(jì)算的時(shí)候,這些行為屬性的權(quán)值都為0。事實(shí)上在合法程序中某些程序具有了病毒類似的行為,例如病毒的的傳染性、激活性、破壞性和隱蔽性等行為屬性,但此時(shí)程序權(quán)值的計(jì)算結(jié)果為負(fù)值,因此這類屬性的程序與病毒是兩種不同類別的程序,從程序權(quán)值計(jì)算的角度可以將這兩類程序相互區(qū)分。
1)根據(jù)以上的討論有如下結(jié)論。
根據(jù)以上的分析可以知道,當(dāng)程序的權(quán)值為正值時(shí),則該程序就為惡意程序。由于病毒也是一種惡意程序,因此病毒的權(quán)值也為正值,但當(dāng)?shù)贸龅臋?quán)值為0或負(fù)值時(shí),該程序就為善意程序,在這里就是通常所說的合法程序。
2)被病毒感染的程序。
如果合法程序感染了病毒,那么該程序就具有了病毒的特征。從程序權(quán)值的角度來看,此時(shí)程序的權(quán)值由0變成了正值,那么該程序的屬性就發(fā)生了變化,具有了病毒的屬性,因而此時(shí)該程序被病毒感染的可能性就很大。
如果某種病毒寄生于某個(gè)程序之后,當(dāng)病毒沒有發(fā)作之時(shí),該程序表現(xiàn)的行為是正常的。但當(dāng)病毒處于發(fā)作期的時(shí)候,那么該程序就具有了部分惡意性和攻擊性,因此根據(jù)如上的敘述,就可以知道被病毒感染的程序具有了善意性,同時(shí)也具有了惡意性。
當(dāng)程序體中的病毒處于發(fā)作期的時(shí)候,病毒和被病毒感染的程序都具有惡意性和攻擊性,因此從惡意性的角度來看,這兩種程序具有相似的行為特征。然而事實(shí)上合法程序被病毒寄生之前不具備惡意性。合法程序之所以具有惡意性和攻擊性,只是因?yàn)榇顺绦蝮w中的病毒具有了感染性和破壞性,但由于被病毒感染的程序與病毒已融為一體,因此從程序行為屬性上來看,被病毒寄生的程序確實(shí)具有了惡意性和攻擊性。
盡管被病毒感染的程序具有某種程度上的惡意性,但并不是正真的病毒,這與純粹的病毒是有的區(qū)別,因此從程序?qū)傩缘慕嵌葋砜?,被病毒感染的程序是惡意程序和善意程序之間的過渡狀態(tài)的程序,該程序部分具有惡意性同時(shí)又部分具有善意性。然而病毒是惡意代碼,本身就具有攻擊性和破壞性。根據(jù)如上的分析和敘述可以知道,病毒和被病毒感染的程序是有所區(qū)別的。
y=f(x)=某種程序當(dāng)前的權(quán)值-某種程序原始的權(quán)值
1)惡意程序權(quán)值的討論:
如果某個(gè)程序的權(quán)值為正值時(shí),則該程序就為惡意代碼。只要該惡意代碼的屬性沒有發(fā)生變化,那么權(quán)值就不會(huì)發(fā)生變化。病毒屬于惡意代碼,因此病毒的權(quán)值也始終為正值。根據(jù)上述原因有如下的結(jié)論:
當(dāng)某種病毒的當(dāng)前權(quán)值=某種病毒的原始權(quán)值>0時(shí),
則有y=f(x)=某種病毒之當(dāng)前權(quán)值-某種病毒的原始權(quán)值=0。
2)善意程序權(quán)值的討論:
①如果某個(gè)程序的原始權(quán)值為0,那么該程序則為善意程序。當(dāng)程序的權(quán)值沒有發(fā)生變化,則此時(shí)程序行為屬性就沒有發(fā)生變化,仍為善意程序,因此根據(jù)可以推斷此時(shí)程序沒有被病毒寄生和感染。
當(dāng)某種合法程序的當(dāng)前權(quán)值=某種合法程序的原始權(quán)值=0時(shí),則有y=f(x)=某種合法程序之當(dāng)前權(quán)值-某種合法程序的原始權(quán)值=0。
②如果某個(gè)程序的原始權(quán)值為0,那么則該程序?yàn)樯埔獬绦?。?dāng)程序的權(quán)值發(fā)生了變化,由0變成了正值時(shí),那么此時(shí)程序的行為屬性就發(fā)生了變化,具有了惡意性,因此可以推斷此時(shí)的合法程序很可能被病毒感染了。
當(dāng)某種合法程序的當(dāng)前權(quán)值>0時(shí),而某種合法程序的原始權(quán)值=0時(shí),則有y=f(x)=某種合法程序的當(dāng)前權(quán)值-某種合法程序的原始權(quán)值>0。
③如果某個(gè)程序的原始權(quán)值為負(fù)值,而當(dāng)前的權(quán)值沒有發(fā)生變化,仍然為負(fù)值時(shí),那么此程序的行為屬性就沒有發(fā)生變化,仍然為善意程序,因此可以推斷此時(shí)的合法程序沒有被病毒感染寄生。
當(dāng)某種合法程序的當(dāng)前權(quán)值=某種合法程序的原始權(quán)值<0時(shí),則有y=f(x)=某種合法程序的當(dāng)前權(quán)值-某種合法程序的原始權(quán)值=0。
④如果某個(gè)程序的原始權(quán)值為負(fù)值,而當(dāng)前的權(quán)值發(fā)生了變化,由目前的負(fù)值變成了正值,那么此時(shí)程序的屬性就發(fā)生了變化,由善意程序變成了惡意程序,因此可以推斷此時(shí)的合法程序很可能被病毒感染寄生了。
當(dāng)某種合法程序的當(dāng)前權(quán)值>0,但是某種合法程序的原始權(quán)值<0時(shí),則有y=f(x)=某種合法程序的當(dāng)前權(quán)值-某種合法程序的原始權(quán)值>0。
y=f(x)=某種程序當(dāng)前的權(quán)值-某種程序的原始權(quán)值
根據(jù)以上的分析和討論有如下結(jié)論:
1)采用惡意代碼權(quán)值計(jì)算公式對(duì)某個(gè)程序進(jìn)行計(jì)算。
①如果程序的權(quán)值為正值,則該程序就是惡意程序。
②如果程序的權(quán)值為0或負(fù)值,則該程序就是善意程序。
2)如果是善意程序,則有如下結(jié)論:
①如果善意程序的原始權(quán)值為0時(shí),而當(dāng)前的權(quán)值變成正值時(shí),那么該程序就感染上了病毒。
②如果善意程序的原始權(quán)值為負(fù)值時(shí),而當(dāng)前的權(quán)值變?yōu)檎禃r(shí),那么該程序同樣感染上了病毒。
1)根據(jù)程序的屬性對(duì)程序進(jìn)行分類:
惡意程序與善意程序是屬性相反的兩種程序,在中介邏輯中,將這兩種程序的屬性作為一個(gè)反對(duì)對(duì)立面。本文中所指的善意程序就是合法程序,惡意程序就是病毒。惡意和善意是兩個(gè)反對(duì)對(duì)立面,而被病毒感染的程序部分具有惡意性,同時(shí)又部分具有善意性,因此當(dāng)程序被病毒感染后,該程序所具有的屬性應(yīng)該處于中介邏輯所指出的中介過渡狀態(tài)屬性之處。
其真值為0。
②當(dāng)程序的權(quán)值為0時(shí)或?yàn)樨?fù)值,則為善意程序,在中介邏輯中用符號(hào)P來表示,
其真值為1。
③當(dāng)合法程序的權(quán)值發(fā)生了變化,則由原來的0或負(fù)值變?yōu)檎禃r(shí),該程序就被病毒感染了,在中介邏輯中用符號(hào)表示~P。
圖2 中介真值程度度量一維函數(shù)之應(yīng)用
①相對(duì)于P的距離比率函數(shù)
通過距離比率函數(shù)hT(x)對(duì)y值的計(jì)算有如下結(jié)論,
①函數(shù)hT(x)=1,y之值落在區(qū)域(αl-εl,αl+εl)中,則為善意程序。
②若函數(shù)hT(x)=0,y之值落在區(qū)域(αr-εr,αr+εr)中,則為惡意程序。
2)本文提出的算法分析:
①具有惡意行為的程序包含兩種情況:1.純粹的病毒;2.被病毒感染的程序。
當(dāng)被病毒寄生的程序體中的病毒沒有發(fā)作的時(shí)候,此時(shí)程序的行為是善意的。
當(dāng)被病毒寄生的程序體中的病毒開始發(fā)作的時(shí)候,此時(shí)程序的行為就體現(xiàn)出一定的惡意性。
如果原始程序本身就是病毒,程序的權(quán)值則始終為正值。
②在善意程序中,提取原始程序的權(quán)值與當(dāng)前程序的權(quán)值進(jìn)行比較。
如果原來是善意程序,則程序的權(quán)值沒有發(fā)生變化,那么此時(shí)仍然是善意程序。
如果程序的權(quán)值發(fā)生了變化,則由原來的0或者負(fù)值變?yōu)檎禃r(shí),那么此時(shí)該程序就被病毒感染了。
由于在被病毒感染的程序中,程序體中的病毒沒有發(fā)作時(shí),該程序體現(xiàn)出的仍然是善意性。
由于被病毒感染的程序中,如果程序體中的病毒處于發(fā)作狀態(tài)時(shí),那么該程序就表現(xiàn)出惡意性。
如果原始程序本身是善意程序,但經(jīng)過病毒的感染,使得被寄生的程序具有了惡意性,那么此時(shí)程序的權(quán)值就發(fā)生了變
化。由原來的0或者由負(fù)值變成了正值。因此當(dāng)程序的權(quán)值發(fā)生變化后,那么該程序就很可能被病毒感染了,該善意程序具有了一定的惡意性。
在通過惡意權(quán)值計(jì)算公式對(duì)程序進(jìn)行計(jì)算時(shí),可以判斷該程序是善意的還是惡意的。通過程序權(quán)值計(jì)算還可以發(fā)現(xiàn),某個(gè)程序的權(quán)值是否發(fā)生了變化。如果某個(gè)合法程序的權(quán)值發(fā)生了變化,則該程就被病毒感染了,被病毒感染的程序,就體現(xiàn)出部分惡意性和部分善意性。因此在本文中首先通過惡意權(quán)值計(jì)算公式對(duì)某個(gè)程序的屬性進(jìn)行判斷,然后再使用MMTD算法對(duì)3種屬性的程序進(jìn)行分類,由本文提出的算法就達(dá)到了對(duì)病毒檢測(cè)之目的,同時(shí)也實(shí)現(xiàn)了對(duì)不同屬性程序分類之目的[4-11]。
[1]劉巍偉,石 勇,郭 韓,等.一種基于綜合行為特征的惡意代碼識(shí)別方[J].電子學(xué)報(bào),2009(9):696-700.
[2]洪 龍,肖奚安,朱梧槚.中介真值程度的度量及其應(yīng)用(I)[J].計(jì)算機(jī)學(xué)報(bào).2006(12):2186-2193.
[3]朱梧槚,肖奚安.數(shù)學(xué)基礎(chǔ)與模糊數(shù)學(xué)基礎(chǔ)[J].自然雜志.7(1980):723-726.
[4]張波云,殷建平,張鼎興,等.基于集成神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)病毒檢測(cè)方法[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(13):26-29.
[5]賀朝暉.計(jì)算機(jī)病毒對(duì)抗檢測(cè)高級(jí)技術(shù)分析[J].計(jì)算機(jī)安全,2010(10):93-97.
[6]張海波.計(jì)算機(jī)病毒檢測(cè)技術(shù)研究[J].計(jì)算機(jī)光盤與應(yīng)用,2014(13):181-182.
[7]張?jiān)拦?范希駿,李大興.計(jì)算機(jī)病毒入侵檢測(cè)技術(shù)探討[J].微電子學(xué)與計(jì)算機(jī),2005,22(11):33-38.
[8]張森強(qiáng),郭興陽,唐朝京.檢測(cè)多態(tài)計(jì)算機(jī)病毒的數(shù)學(xué)模型[J].計(jì)算機(jī)工程,2004,30(17):24-25.
[9]陳 桓,劉曉潔,宋程粱.一種基于免疫的計(jì)算機(jī)病毒檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用研究,2005(9):111-114.
[10]劉 儉,唐朝京,張森強(qiáng).一種計(jì)算機(jī)病毒的檢測(cè)方法[J].計(jì)算機(jī)工程,2004,30(6):127-129.
[11]邢小東,侯 飛,李千路.一種應(yīng)用免疫原理的計(jì)算機(jī)病毒檢測(cè)方法研究[J].計(jì)算機(jī)安全,2011(2):39-42.