朱俚治
(南京航空航天大學(xué) 信息化處,南京 210016)
計(jì)算機(jī)病毒在互聯(lián)網(wǎng)中肆意地傳播,給互聯(lián)網(wǎng)造成了重大破壞,嚴(yán)重威脅著網(wǎng)絡(luò)正常運(yùn)行。由于計(jì)算機(jī)新技術(shù)不斷地出現(xiàn),從而有了多態(tài)病毒,加殼病毒和變形病毒。文獻(xiàn)[1]指出多態(tài)病毒,加殼病毒,變形病毒是不同種類的病毒,其中變形病毒對(duì)網(wǎng)絡(luò)的危害最大,也是最難查殺的病毒。
根據(jù)文獻(xiàn)[2]可知病毒主要的感染對(duì)象是.com,.exe,.ovl等可執(zhí)行文件,文獻(xiàn)[3-4]指出計(jì)算機(jī)病毒可以通過電子郵件,網(wǎng)絡(luò)文件和網(wǎng)頁傳播,還可以通過跨站腳本漏洞,以及跨站請(qǐng)求偽造攻擊等這些渠道傳播。文獻(xiàn)[3]還指出新型病毒還可以通過無線局域傳播等。
目前計(jì)算機(jī)病毒的檢測(cè)算法主要有特征碼,特征字,校驗(yàn)和法,啟發(fā)式掃描等[5-7],長(zhǎng)度檢測(cè)法,病毒標(biāo)記檢測(cè)法,校驗(yàn)和法,行為檢測(cè)法和感染實(shí)驗(yàn)法是常用的病毒檢測(cè)算法,長(zhǎng)度檢測(cè)法和校驗(yàn)和法只能判斷某個(gè)程序可能感染了病毒,不能確定該程序是否確實(shí)感染了病毒[4,8]。
文獻(xiàn)[5]指出特征碼,校驗(yàn)和法,特征字檢測(cè)不能有效應(yīng)對(duì)多態(tài)病毒和變形病毒。啟發(fā)式病毒掃描技術(shù)的不足之處在于準(zhǔn)確度較差,錯(cuò)誤率較高,檢測(cè)效果較差等[5]。目前基于行為的病毒檢測(cè)算法可以有效地應(yīng)對(duì)變形病毒,多態(tài)病毒[4]。然而目前病毒變種速度快,傳播速度快等特點(diǎn),因此有必要對(duì)基于行為病毒的檢測(cè)算法進(jìn)行改進(jìn)[4]。文獻(xiàn)[2-5]還指出當(dāng)今的病毒檢測(cè)算法需要智能化,根據(jù)文獻(xiàn)[14]可以知道智能光譜掃描檢測(cè)技術(shù)是一種新的病毒檢測(cè)技術(shù)。
根據(jù)文獻(xiàn)[8-10,12-13]可以知道,一維變形病毒,二維變形病毒,三維變形病毒和四維變形病毒具有如下特征:
1)一維變形病毒的特征是:一維變形病毒進(jìn)行傳染時(shí),通過病毒樣本分析,可以知道前一個(gè)病毒的代碼與后一個(gè)病毒的代碼幾乎沒有連續(xù)的3個(gè)字節(jié)是相同的,然而字節(jié)的相對(duì)位置也沒有發(fā)生變化。
2)二維變形病毒的特征是:二維變形病毒具有一維變形病毒的特征,二維變形病毒進(jìn)行復(fù)制時(shí)能夠改變字節(jié)與字節(jié)的相對(duì)位置,變化代碼之間的相對(duì)位置的變化也是相對(duì)變化。
3)三維變形病毒的特征是:三維病毒具有二維變形病毒的特征,三維變形病毒除了能對(duì)字節(jié)的本身,字節(jié)的相對(duì)位置進(jìn)行變化外,它具有最大的特征就是能將整個(gè)病毒代碼進(jìn)行分散隱藏,將分解的代碼隱藏到不同的文件中,也可以在引導(dǎo)扇區(qū)的不同位置,當(dāng)病毒被激后把分散的病毒代碼重新成一個(gè)完整的病毒。
4)四維變形病毒的特征是:四維變形病毒具有一維,二維和三維變形病毒的特征,四維變形病毒最大的特點(diǎn)就是病毒的代碼結(jié)構(gòu)能隨著時(shí)間的變化而變化,四維變形病毒不進(jìn)行復(fù)制時(shí)也能使代碼處于隨機(jī)變化中。
基于長(zhǎng)度比較法,校驗(yàn)和法是病毒經(jīng)典的檢測(cè)算法,但這兩種方法只能判斷某個(gè)程序十分有可能被病毒感染了,但不能確定該程序是否真的被病毒感染了[9-10],這是這兩種檢測(cè)算法的不足之處。
比較法和校驗(yàn)和法是兩種不同的算法,比較法有基于長(zhǎng)度的比較法,基于內(nèi)容的比較法和基于中斷的比較法[4,8]?;诔绦蛲庥^的比較法就是一種基于長(zhǎng)度的比較法,基于長(zhǎng)度的比較法,也就是對(duì)程序體大小進(jìn)行檢測(cè),校驗(yàn)和法中的校驗(yàn)和值是程序體中數(shù)據(jù)項(xiàng)的和,是一種基于程序內(nèi)容的檢測(cè)算法[4,8]。
一維變形病毒,二維變形病毒,三維變形病毒和四維變形病毒采用了不同的變形機(jī)制,不同的變形原理,因此構(gòu)成4種不同的變形病毒,這也就代表著4種變形病毒的校驗(yàn)和值不同,病毒校驗(yàn)和值的不同將導(dǎo)致病毒體長(zhǎng)度大小的不同,但如果是變形病毒感染文件后,存在原位替換的變形方式,被感染的宿主程序長(zhǎng)度有可能不發(fā)生變化,然而比較法無法檢測(cè)該病毒,因此這時(shí)需要校驗(yàn)和法來檢測(cè)出病毒。
基于變形病毒的特點(diǎn),單獨(dú)采用的比較法,校驗(yàn)和法是不理想的。為了有效地應(yīng)對(duì)變形病毒,本文將比較法,校驗(yàn)和法與基于行為特征的病毒檢測(cè)算法結(jié)合在一起對(duì)變形病毒進(jìn)行檢測(cè),從而提出一種新的檢測(cè)算法。
病毒寫入其它程序后就能改變宿主體中的數(shù)據(jù),宿主的數(shù)據(jù)發(fā)生了變化,那么程序的校驗(yàn)和值也發(fā)生了變化。變形病毒是一種特殊的程序,能不斷地復(fù)制,每傳染一次都改變一次代碼中的數(shù)據(jù),同時(shí)也改自身的校驗(yàn)和值,校驗(yàn)和值發(fā)生了改變,這就意味對(duì)該程序進(jìn)行了寫操作,因此變形病毒的復(fù)制,傳染時(shí)是一個(gè)寫的過程,是個(gè)隨機(jī)動(dòng)態(tài)變化的過程。
校驗(yàn)和值是程序體中數(shù)據(jù)項(xiàng)的和[4,8],因此當(dāng)某個(gè)程序只讀不寫,程序的數(shù)據(jù)不會(huì)發(fā)生變化的,程序的校驗(yàn)和值也不會(huì)發(fā)生變化。然而病毒對(duì)宿主程序進(jìn)行感染時(shí),就是寫入的過程,因此當(dāng)病毒寄生程序后,就能改變宿主的數(shù)據(jù),也能使原程序的校驗(yàn)和值發(fā)生變化。
對(duì)當(dāng)某個(gè)程序僅僅只是復(fù)制,不進(jìn)行寫操作,程序的校驗(yàn)和值不會(huì)發(fā)生變化。具有變形能力的病毒,每復(fù)制一次就是一次寫的過程[4,8],復(fù)制時(shí)會(huì)改變一次代碼的結(jié)構(gòu),產(chǎn)生一個(gè)新病毒,此時(shí)變形病毒的校驗(yàn)和值也發(fā)生了改變。然而不具備變形能力的病毒在復(fù)制時(shí),校驗(yàn)和值則不發(fā)生變化。
宿主程序進(jìn)行子自動(dòng),自我復(fù)制時(shí),宿主體內(nèi)的病毒也進(jìn)行了相應(yīng)的復(fù)制,如果宿主程序復(fù)制了自身的副本,并且副本的校驗(yàn)和值發(fā)生了變化,其原因是該程序被變形病毒感染了,因此在本文提出的算法中,比較運(yùn)行前后宿主的校驗(yàn)和值,來發(fā)現(xiàn)某個(gè)程序是否有可能被變形病毒感染了。
如果宿主感染的病毒是非變形病毒,那么當(dāng)宿主進(jìn)行自身復(fù)制時(shí),被病毒感染的宿主的校驗(yàn)和值不會(huì)發(fā)生變化。
當(dāng)病毒寄生于宿主后,就改變了宿主的校驗(yàn)和值,宿主的校驗(yàn)和值發(fā)生了改變是由體內(nèi)病毒寄生而引起的。然而病毒寄生于宿主后,與宿主就融為了一體,因此此時(shí)宿主校驗(yàn)和值并不是病毒體本身校驗(yàn)和值,而是病毒與宿主校驗(yàn)和的總值,同時(shí)這就給計(jì)算宿主體內(nèi)病毒的校驗(yàn)和值造成了困難。
當(dāng)病毒寄生于宿主后也改變了原程序的長(zhǎng)度[4,8],原程序的大小發(fā)生了變化。因此當(dāng)宿主程序進(jìn)行復(fù)制時(shí),宿主體中的變形病毒隨著宿主的復(fù)制而復(fù)制,并且隨著宿主的復(fù)制而變形,宿主程序每復(fù)制一次都將改一次宿主程序的大小,但如果是變形病毒感染文件后,存在原位替換的變形方式,被感染的宿主程序長(zhǎng)度有可能不發(fā)生變化,然而比較法無法檢測(cè)該病毒,因此這時(shí)需要校驗(yàn)和法來檢測(cè)出病毒。而變形病毒每復(fù)制一次,也都將改變一次病毒體的代碼結(jié)構(gòu)[8-12],此時(shí)變形病毒的校驗(yàn)和值發(fā)生了變化的,同時(shí)變形病毒體的大小也發(fā)生了變化,變形病毒進(jìn)行復(fù)制時(shí)引起病毒體大小的變化,必然引起宿主體大小的變化。
文件的最小單位是字節(jié),在本文提出的算法中采用字節(jié)作為計(jì)算宿主以及病毒體大小的基本單位。因此在本文中將原始文件的大小保存在數(shù)據(jù)庫中,由于文件只是進(jìn)行了復(fù)制,沒有寫操作,那么在檢測(cè)過程中將原始文件的大小與宿主的大小進(jìn)行比較,就能得出文件大小的變化值,這個(gè)變化值就是寄生于宿主體內(nèi)病毒的大小。本文將未知病毒大小與樣本病毒體大小的值進(jìn)行對(duì)比,從而檢測(cè)寄生于宿主中的病毒。
在本文提出的算法中,如果通過比較法檢測(cè)出宿主,副本的大小發(fā)生了變化,則采用下一步,通過計(jì)算機(jī)病毒權(quán)值計(jì)算公式來計(jì)算該文件是否被病毒感染了。
傳染性是計(jì)算機(jī)病毒的重要特征[2-7,14],如果某個(gè)程序具備了復(fù)制,傳播和寄生這3個(gè)屬性,那么就可以判斷程序是病毒[2-5,14],根據(jù)文獻(xiàn)[2-5,14]可以知道:傳染性是計(jì)算機(jī)病毒的重要屬性。
計(jì)算機(jī)病毒的傳染性可以分為兩個(gè)過程:復(fù)制過程、寄生過程。
本文中采用計(jì)算機(jī)病毒的復(fù)制,寄生這兩種功能作為檢測(cè)病毒的重要標(biāo)準(zhǔn),其中寄生為病毒最顯著的特征,因此權(quán)重值為最大的值,傳播性是所有惡意代碼都具有的屬性,作為次重要特征,權(quán)重值的次弱。其次復(fù)制特征,作為計(jì)算機(jī)病毒最次要的特征屬性,將其權(quán)重值設(shè)為最小值。
在文獻(xiàn)[15]中提到了惡意代碼權(quán)重的計(jì)算公式,而由本文也提出了計(jì)算機(jī)病毒代碼權(quán)重計(jì)算公式,該公式為:
g(x)=αgi(x)+βgj(x)+γgm(x)
gi(x),gj(x),gm(x),分別表示病毒:復(fù)制,傳播和寄生3種行為屬性,αβγ則分別表示病毒:復(fù)制,傳播,寄生3種屬性的權(quán)重值。
綜上所述,采用計(jì)算機(jī)病毒代碼權(quán)值計(jì)算公式進(jìn)行病毒行為檢測(cè)時(shí),首先判斷一個(gè)程序是否具有復(fù)制特性,如果具有了復(fù)制性,則繼續(xù)判斷該程序是否具有傳播性和寄生性。
當(dāng)某個(gè)程序被病毒感染了,病毒就寄生于宿主體內(nèi),與宿主融為一體。當(dāng)宿主體內(nèi)的病毒沒有發(fā)作時(shí),則該宿主與善意的程序沒有差別,然而當(dāng)宿主體內(nèi)的病毒發(fā)作時(shí),該宿主就具有了惡意性,因此當(dāng)某個(gè)程序具有了復(fù)制,傳播和寄生的3種特性后,就可以判斷該程序?yàn)椴《净蛟摮绦虮徊《靖腥玖恕?/p>
計(jì)算機(jī)代碼權(quán)值計(jì)算公式對(duì)某個(gè)程序行為屬性上進(jìn)行計(jì)算和判斷,該過程是一種基于行為準(zhǔn)則的病毒檢測(cè)過程。經(jīng)過計(jì)算機(jī)代碼權(quán)值計(jì)算公式對(duì)程序進(jìn)行屬性計(jì)算后,就可以判斷該善意程序是否成為宿主程序或該程序就是一個(gè)病毒。
如果某個(gè)程序成為宿主,則采用夾角余弦公式對(duì)宿主體內(nèi)的病毒對(duì)進(jìn)行相似性計(jì)算,從而完成對(duì)未知病毒的檢測(cè)。
為了描述兩個(gè)實(shí)例的相似度,通常采用相似性系數(shù)表示它們的相似性,以下采用夾角余弦公式來度量?jī)蓚€(gè)實(shí)例的相似度。
夾角余弦公式[16]:
對(duì)于m維空間中的兩個(gè)對(duì)象xi和xj,rij表示對(duì)象j和i的相似性系數(shù),rij則滿足以下條件[22]:
1)相似性系數(shù)的絕對(duì)值不大于1:即對(duì)任意對(duì)象i和j,恒有|rij|≤1;當(dāng)且僅當(dāng)xi=xj時(shí),rij=1。
2)用兩個(gè)向量的余弦為作為相似性系數(shù),范圍[-1,1],當(dāng)兩個(gè)向量正交時(shí)取值為0表示完全不相似。
3)相似性系數(shù)的值越大,則表示這兩個(gè)實(shí)例的相似程度就越強(qiáng)。
在前面兩個(gè)檢測(cè)過程完成后,就能判斷該程序被病毒感染了或就是病毒,如果判斷該程序被病毒感染了或就是病毒,則以下采用相似算法來判斷該未知病毒屬于那種病毒。
4.2.1 相似性系數(shù)程度度量與變形病毒
本文選擇已知變形病毒的樣本作為比較的實(shí)例,未知病毒則為被比較的實(shí)例。
在夾角余弦公式中有:rij為相似性系數(shù),經(jīng)過對(duì)夾角余弦公式研究后,有以下結(jié)論:相似性系rij與1差值為:δ。
1)如果未知病毒與樣本病毒的相似性系數(shù)值有:rij與1的差值δ為0時(shí),則表明rij與1的偏差概率為百分之零,這時(shí)兩個(gè)病毒相似程度最高,進(jìn)行比較的這兩種病毒實(shí)體最為相似,為同一種病毒。
2)如果未知病毒與樣本病毒的相似性系數(shù)值有:rij與1的差值δ小于0.5,則表明rij與1的偏差概率小于50%時(shí),則表明相似性系數(shù)rij與1的值越接近,進(jìn)行比較的這兩種病毒實(shí)體的相似程度就越強(qiáng),兩者就越相似。
3)如果未知病毒與樣本病毒的相似性系數(shù)值有;與1的差值大于0.5,則表明與1的偏差概率大于50%時(shí),則表明相似性系數(shù)與1的值偏離程度越大,進(jìn)行比較的這兩種病毒實(shí)體時(shí)的相似程度就越弱,不相似程度就越明顯。
4.2.2 相似區(qū)間與變形病毒的分類檢測(cè)
1)變形病毒可以產(chǎn)生一維,二維,三維和四維的變形,并且二維變形病毒具有一維變形病毒的特征,三維變形病毒具有二維變形病毒的特征,四維變形病毒具有三維變形病毒的特征[11-13],可見這四種類型的變形病毒,其代碼結(jié)構(gòu)是不一樣的,它們的校驗(yàn)和值也不同。不同變形病毒體的校驗(yàn)和值存在差異,同時(shí)這也導(dǎo)致病毒體大小的差異,這里病毒體大小存在差異,隨著校驗(yàn)和值的變化而變化,但如果是變形病毒感染文件后,存在原位替換的變形方式,被感染的宿主程序長(zhǎng)度有可能不發(fā)生變化,及文件的長(zhǎng)度不變,然而比較法無法檢測(cè)該病毒,因此這時(shí)需要校驗(yàn)和法來檢測(cè)出病毒。如果是一維變形的病毒,采用一維病毒變形的方式,那么未知病毒體大小值的變化應(yīng)該是相似的。對(duì)于二維變形病毒,三維變形病毒和四維變形病毒依次類推可以得出類似的結(jié)論。
2)變形病毒每復(fù)制一次,程序的大小必定發(fā)生一次變化,在本文中設(shè)定的變形病毒的變化區(qū)間,需要一定數(shù)量的一維變形病毒,二維變形病,三維變形病毒和四維變形病毒的樣本大小作為劃分的依據(jù),最后經(jīng)過相似性計(jì)算從4個(gè)不同區(qū)間中,選擇一個(gè)最優(yōu)的區(qū)作為未知病毒的檢測(cè)區(qū)間。
作為4個(gè)變形病毒的不同區(qū)間:這4個(gè)區(qū)間在于a的值不同而不同,a分別表示樣本變形病毒樣本體的大小值,根據(jù)a值的進(jìn)行4個(gè)區(qū)間的劃分。
一維變形病毒,樣本病毒體大小的變化范圍:[0,a)∪(a,a+g],a與g均自然數(shù),單位為K。
二維變形時(shí)病毒,樣本病毒體大小的變化范圍:[0,a)∪(a,a+g],a與g均自然數(shù),單位為K。
三維變形時(shí)病毒,樣本病毒體大小的變化范圍:[0,a)∪(a,a+g],a與g均自然數(shù),單位為K。
四維變形時(shí)病毒,樣本病毒體大小的變化范圍:[0,a)∪(a,a+g],a與g均自然數(shù),單位為K。
根據(jù)夾角余弦計(jì)算公式得出的相似性系數(shù)計(jì)算,可以找到較為相似的兩種病毒,根據(jù)變形病毒再選擇一個(gè)最優(yōu)區(qū)間,作為未知病毒的識(shí)別區(qū)間。
3)通過余弦夾角公式的計(jì)算可以得出以下的結(jié)論:
根據(jù)余弦夾角公式可以知道,當(dāng)兩個(gè)病毒的相似性系數(shù)值越大,則這兩個(gè)病毒就越相似,
如果被檢測(cè)的未知病毒與一維變形樣本病毒的相似性系數(shù)的值最大,并且這兩種病毒的功能差不多或完全一樣,同時(shí)這兩種病毒的相似功能又落在了同一變化區(qū)間內(nèi),那么該病毒為一維病毒的可能性就很大。
如果被檢測(cè)的未知病毒與二維變形樣本病毒的相似性系數(shù)的值最大,并且這兩種病毒的功能差不多或完全一樣,同時(shí)這兩種病毒的相似功能又落在了同一變化區(qū)間內(nèi),那么該病毒為二維病毒可能性就很大。
如果被檢測(cè)的未知病毒與三維變形樣本病毒的相似性系數(shù)的值最大,并且這兩種病毒的功能差不多或完全一樣,這兩種病毒的相似功能又落在了同一變化區(qū)間內(nèi),那么該病毒為三維病毒的可能性就很大
如果被檢測(cè)的未知病毒與四維變形樣本病毒的相似性系數(shù)的值最大,并且這兩種病毒的功能差不多或完全一樣,同時(shí)這兩種病毒的相似功能又落在了同一變化區(qū)間內(nèi),那么該病毒為四維病毒的可能性就很大。
在虛擬機(jī)中運(yùn)行,根據(jù)文獻(xiàn)[24]對(duì)比參照感染文件和感染前參照文件[24-25],可以得出病毒片段的位置。根據(jù)病毒片段的插入位置計(jì)算相對(duì)位置,統(tǒng)計(jì)多個(gè)樣本相對(duì)位置均值、標(biāo)準(zhǔn)差以及標(biāo)準(zhǔn)差的標(biāo)準(zhǔn)差,其中相對(duì)位置標(biāo)準(zhǔn)差的標(biāo)準(zhǔn)差體現(xiàn)了變形病毒變形的特征;進(jìn)一步收集系統(tǒng)文件感染的變形特征,和不同系統(tǒng)時(shí)間下的變形特征,這些統(tǒng)計(jì)值組合成為特征值集合[24]。
一維變形樣本病毒特征提取如圖1所示。
圖1 特征提取示意圖
二維變形樣本病毒特征提取如圖2所示。
圖2 特征提取示意圖
三維變形樣本病毒體增加系統(tǒng)文件感染特征,采用類似的統(tǒng)計(jì)方法,只是統(tǒng)計(jì)文件范圍擴(kuò)大[24]。
四維變形樣本病毒體增加時(shí)間變化特征,采用類似的統(tǒng)計(jì)方法,只是設(shè)置虛擬機(jī)的初始條件,造成時(shí)間上差異[24]。
5.2.1 第一階段:檢測(cè)對(duì)象是否含有疑似病毒
1)選定某兩到3個(gè)原始文件,計(jì)算這些原始程序的校驗(yàn)和值,程序的大小值。
再將校驗(yàn)和法檢測(cè)出的結(jié)果,比較法得出值都保存在正常文件中保存作為今后比較的依據(jù)。
2)在一個(gè)星期后再將這些前面提到的過的文件,程序提出,計(jì)算這些文件,程序的校驗(yàn)和值。
3)如果原始序的校驗(yàn)和值,比較法的值發(fā)生了改變,那么該程序就可能被病毒感染了,則此再計(jì)算該程序的大小值。
4)如果程序的大小與原始程序的大小出現(xiàn)了差異,則下一步采用計(jì)算機(jī)行為權(quán)值計(jì)公式進(jìn)行計(jì)算,判斷該程序是否是病毒。
檢測(cè)流程如圖3所示。
圖3 檢測(cè)是否含有疑似病毒流程圖
5.2.2 第二階段:確認(rèn)檢測(cè)對(duì)象含有病毒:
1)在采用計(jì)算機(jī)病毒代碼權(quán)值計(jì)算公式計(jì)算時(shí),首先判斷該程序是否具有復(fù)制性。
2)如果未知程序具有復(fù)制的功能,不在人工干預(yù)條件下自動(dòng)產(chǎn)生了一個(gè)完全相同的程序,則再進(jìn)一步判斷該程序是否能夠與其他善意的程序相互融合,如果該程序具有感染性,能夠與別地程序融為一體,那么該程序就病毒。
3)最后如果個(gè)某個(gè)程序具有以上兩個(gè)行為屬性,又具有寄生性,就能判斷該這個(gè)程序就是病毒。
5.2.3 第三階段:變形病毒在虛擬機(jī)種的檢測(cè)和運(yùn)行
1)取出有兩個(gè)或多個(gè)不同的已知病毒的特征值作為夾角余弦公式計(jì)算相似性系數(shù)的依據(jù)。
圖4 確認(rèn)檢測(cè)對(duì)象含有病毒流程圖
2)在算法中需要建立一個(gè)衡量,相似性系數(shù)強(qiáng)度的標(biāo)準(zhǔn)函數(shù),在算法中采用夾角余弦公式該函數(shù)對(duì)未知病毒與已知病毒進(jìn)行相似性計(jì)算。
3)虛擬機(jī)和沙箱只是一個(gè)運(yùn)行環(huán)境,對(duì)被懷疑的程序進(jìn)行檢測(cè)需要算法。
4)先通過夾角余玄的公式,尋找到與未知病毒體大小十分相似的已知病毒體。
5)從未知病毒行為和功能上的觀察和分析,確定未知病毒與已知同一病毒是否具有相同的功能,病毒機(jī)理,變形機(jī)制。
6)變形病毒能產(chǎn)生4種形式的變形,但4種變形機(jī)制不一樣,能產(chǎn)生不同種類的病毒,通過未知病毒在虛擬機(jī)中的運(yùn)行,觀察4種變形病毒的各種功能,變形機(jī)制,變形機(jī)理再對(duì)這4種變形病毒進(jìn)行功能上的判斷,就判斷該未知病毒是一維病毒,二維病毒,三維病毒和四維病毒。
7)根據(jù)上述幾個(gè)步驟,采用夾角余玄的公式計(jì)算對(duì)未知病毒與已知病毒進(jìn)行的相似性計(jì)算,就能得出未知程序和已知程序的檢測(cè)結(jié)果。
8)如果兩個(gè)病毒體的大小值相似性很強(qiáng),十分相似,并且在病毒體現(xiàn)的各種功能又落在同一個(gè)區(qū)間內(nèi),那么這兩種病毒,就可以是一維病毒,二維病毒,三維病毒或四維病毒。確認(rèn)流程如圖5所示。
圖5 變形病毒種類確認(rèn)流程圖
因沒有真實(shí)病毒,模擬了3種病毒進(jìn)行試驗(yàn),如下:
1)一維變形病毒myVirus1:感染QQ.exe和微信.exe,具有3個(gè)病毒片段,片段中內(nèi)容變化。
圖6 模擬QQ和微信感染一維病毒
2)二維變形病毒myVirus2:感染QQ.exe和微信.exe,具有3個(gè)病毒片段,片段中內(nèi)容變化,相對(duì)位置變化。
圖7 模擬QQ和微信感染二維病毒
3)三維變形病毒myVirus3:感染QQ.exe、微信.exe和svchost.exe,具有3個(gè)病毒片段,片段中內(nèi)容變化,相對(duì)位置變化,同時(shí)感染系統(tǒng)文件,需系統(tǒng)文件中的片段構(gòu)成完整的病毒。
四維變形病毒原理相似,引入時(shí)間變化即可,此處不展開。
采用本文中檢測(cè)算法結(jié)果如圖8~圖10和表1所示。
表1 檢測(cè)結(jié)果
圖8 myVirus1相似度計(jì)算
圖9 myVirus2相似度計(jì)算
圖10 myVirus3相似度計(jì)算
在本文中研究了已有的病毒檢測(cè)算法,得知當(dāng)前病毒檢測(cè)算法存在不足之處。目前變形病毒對(duì)互聯(lián)網(wǎng)的危害最大,因此本人結(jié)合已有的病毒檢測(cè)算法,從病毒的行為,校驗(yàn)和法,比較法的角度提出了一種基于行為,校驗(yàn)和值與比較法的新病毒檢測(cè)算法。