朱俚治 王興虎
摘要:在惡意代碼中病毒出現(xiàn)的最早,至今已有數(shù)十年了??蒲腥藛T為了查殺病毒,已研了發(fā)眾多的病毒檢測算法,然而病毒在這些殺毒軟件面前仍然四處傳播,然而之所以出現(xiàn)以上的原因那是因為計算機(jī)病毒是一種智能程序?;谏鲜鲈蚝透鶕?jù)對計算機(jī)病毒的研究,為了使得廣大網(wǎng)絡(luò)用戶對計算機(jī)病毒有更多的了解,該文對計算機(jī)病毒進(jìn)行了相應(yīng)的介紹。在該文中第一部分介紹了計算機(jī)病毒與程序行為屬性之間的關(guān)系,第二部分陳述了智能性的概念,其次介紹了計算機(jī)病毒具有的功能與其行為屬性所體現(xiàn)出來的智能性。
關(guān)鍵詞:病毒;智能性;行為;屬性
當(dāng)今的惡意代碼除病毒外,還有蠕蟲和木馬。病毒能夠?qū)⒆陨淼拇a寄生于其他程序中,并且能夠?qū)Τ绦蛟斐善茐?,因此計算機(jī)病毒具有攻擊性和破壞性,事實上計算機(jī)病毒是一種惡意程序。
病毒具有傳染性,隱藏性,破壞性和激活性等行為屬性,然而這些行為是其他普通程序所不具有的。對于一般的非智能程序,要實現(xiàn)程序的功能在大多數(shù)情況下,都要在人為因素干預(yù)之中,才能夠完成。然而病毒能夠自主的完成病毒的傳染性和破壞性等一系列的行為和功能。
計算機(jī)病毒不同于其他惡意代碼最顯著的特征就是具有傳染性,然而作為一種惡意代碼,還有一個特征就是有破壞性。盡管蠕蟲也是一種惡意代碼,同樣具有復(fù)制的功能,但蠕蟲的復(fù)制過程與病毒的傳染過程存在明顯的區(qū)別。病毒的某些屬性與蠕蟲,木馬有相似之處,但又存在不同的地方,因此病毒不等同于蠕蟲,也不等同于木馬。病毒具有的行為是與其他程序進(jìn)行區(qū)分的最好標(biāo)準(zhǔn),也是作為檢測和判定該程序是否為病毒的最好依據(jù)。如果在檢測病毒的算法中,從行為屬性的角度來檢測病毒,那將徹底解決病毒的問題,這樣也許將結(jié)束病毒肆意傳播的時代。在基于病毒行為的檢測算法面前不論是變形病毒,加密病毒,多態(tài)病毒還是加殼病毒都能夠顯出原形?;谏鲜鲈颍瑸榱耸沟萌藗儗Σ《居懈顚哟蔚牧私?,本文從病毒行為屬性的特征,對病毒具有的功能進(jìn)行一定程度上的介紹。
1病毒與程序的屬性
人們編寫程序之目的,是為了實現(xiàn)某種功能而設(shè)計和編寫的。不同種類的程序具有不同的功能,而每種程序都有獨自的行為屬性。而程序的每一種功能都可以通過程序的行為屬性體現(xiàn)出來,從而展現(xiàn)在人們面前,不同種類程序體現(xiàn)出不同行為屬性和功能。程序功能的不同也代表著程的不同屬性,程序的屬性是其本質(zhì),而功能和程序的行為是其具體的表現(xiàn)。例如病毒具有傳染性,那么其表現(xiàn)形式就是能與符合條件的程序融為一體。病毒和其他程序融為一體的過程體現(xiàn)了病毒寄生的功能,然而正是因為病毒具有寄生功能,才能使得人們認(rèn)識到計算機(jī)病毒具有傳染性。
人們可以通過對程序功能的觀察,從而了解該程序所具有的屬性。然而人們對惡意程序和善意程序的劃分,就是通過對程序行為的觀察,從而得出的結(jié)論。如果某種程序具有某些功能,那么該程序的功能就對應(yīng)著某種行為,程序的行為是其功能的具體執(zhí)行者,因此通過對程序行為的觀察,就能夠檢測出該程序具有哪些功能。
程序的每一種屬性都對應(yīng)著一種功能,如果程序不具有某種屬性,那么這也就意味著該程序不具備此功能。如果某個程序的行為發(fā)生變化,那么意味該程序的功能,以及程序的部分屬性發(fā)生了改變。例如某個程序未被病毒感染時,該程序就不具備攻擊性和惡意性,然而當(dāng)某個程序被某種病毒感染后,原來的程序變成了一個新程序,這時病毒就成為了新程序的一部分。既然是一個新程序,那么該程序就具有它的新功能和行為。然而病毒程序進(jìn)行傳染時,人們是無法察覺的,同時病毒檢測軟件也無法檢測出這一過程,因此當(dāng)一個程序被病毒感染后,從表面上看該程序沒有發(fā)生任何變化,但實質(zhì)上該程序的部分屬性發(fā)生了變化,被病毒寄生的程序已不是原來的程序,而是部分具有了病毒屬性的新程序。根據(jù)上述的理由可以有以下的結(jié)論:當(dāng)某個程序的行為發(fā)生了變化,那么該程序?qū)⑹且粋€新程序,原來程序的部分功能和屬性已經(jīng)發(fā)生了變化。
2病毒的屬性與其智能性
2.1什么是智能性
一個事物的智能性主要是指其具有自主性,當(dāng)某個事物執(zhí)行某個動作或其他的一系列動作時,指令都是由該物體自身所發(fā)出和控制的,那么該事物就初步具有了一定的智能性。然而引起這些動作的原因可能來自于該事物的本身,同時也可能是來自于外界。一個事物具智能性的主要表現(xiàn)為,該事物具有自主性,能夠獨立自主地完成某些動作和行為。事實上人們可以從一個事物的行為特征,就能判斷該事物是否具有自主性,如果一個事物具有自主性,就具有了一定智能性。
不同事物具有的智能性有所差別,智能性有高低之分,例如感染動物細(xì)胞的病毒就是一種生物,自然界的病毒具有自我復(fù)制性,傳染性和破壞性,這些功能都體現(xiàn)了該生命體的自主性,因此從自主性的角度來看,可以認(rèn)為自然界的病毒具有一定的智能性,智能性是生命體的特征之一。
人工智能就是一種智能技術(shù),使得機(jī)器具有自主性,能夠獨立自主的完成某項人們給出的任務(wù),體現(xiàn)了機(jī)器的智能性。因此根據(jù)以上的敘述可以知道當(dāng)某些算法能使得機(jī)器具有自主的能力,能夠在不為人為因素干預(yù)條件下獨立的完成某個任務(wù),這時機(jī)器就具有了一定的智能性,同時這樣的算法可以稱為智能算法。
2.2計算機(jī)病毒具有的屬性
盡管計算機(jī)病毒是一段程序,但計算機(jī)病毒具有傳染性,破壞性,隱藏性,由于病毒能夠自主的完成預(yù)先設(shè)定的功能,因此從某種角度來看,計算機(jī)病毒具有一定的智能性。根據(jù)對病毒各種行為研究后,可以發(fā)現(xiàn)計算機(jī)病毒的智能性主要體現(xiàn)在以下幾個方面:病毒的傳染過程,對寄生程序的選擇,對被感染位置的選擇,以及對被寄生程序進(jìn)行破壞等這一系列過程中。
2.3計算機(jī)病毒在傳染過程中體現(xiàn)出的智能性
自然界的病毒對目標(biāo)進(jìn)行選擇時,必須將目前的信息與已知信息的相互比較,才能夠?qū)δ繕?biāo)作出選擇。然而計算機(jī)病毒對寄生程序作出選擇前,同樣必須經(jīng)過相應(yīng)的判斷過程,只有計算機(jī)病毒進(jìn)過了判斷,才可能作出選擇,因此此時就體現(xiàn)了計算機(jī)病毒在某種程度上的智能性。
當(dāng)計算機(jī)病毒對程序進(jìn)行感染時,分為兩個過程:第一步是判斷該程序是否符合感染條件,第二步是判斷該程序是否已被該種病毒感染。在判斷該程序是否符合感染條件時,就體現(xiàn)了計算機(jī)病毒一定的智能性,只有具有智能性的程序才具有判斷能力。計算機(jī)病毒只有完成以上兩個過程后,才有可能對某個程序成功地進(jìn)行感染。當(dāng)一個病毒檢測某個程序是否被同一個病毒感染時,這一過程也體現(xiàn)了病毒的某些智能性,然而病毒之所以不能感染同一個程序的原因是,病毒的反復(fù)感染能夠?qū)Τ绦蝮w中的病毒產(chǎn)生破壞,因此同一個計算機(jī)病毒不能夠重復(fù)感染同一個程序,這也體現(xiàn)了病毒的某種智能性。
然而計算機(jī)病毒對符合條件的程序進(jìn)行感染時,必須對目標(biāo)進(jìn)行刪選,在刪選的過程需要將程序的某些屬性進(jìn)行比較,因此病毒對目標(biāo)的感染時不是沒有目標(biāo)的,而是具有選擇性。例如文件型病毒只能感染后綴名為“com”和“exe”的文件,然而不符合這個條件的程序,病毒則不進(jìn)行感染,因此病毒具有選擇性這一功能代表了該病毒對目標(biāo)具有一定的判斷力,能夠?qū)Ρ患纳某绦蜻M(jìn)行識別,同時能夠確定該程序是否為該病毒感染的目標(biāo),能夠?qū)δ繕?biāo)進(jìn)行選擇就體現(xiàn)了該程序具有一定的智能性。
2.4計算機(jī)病毒的破壞性及其智能性
計算機(jī)病毒是一段程序,不同種類的病毒存在一定地差異,這些差異主要體現(xiàn)在計算機(jī)病毒采用了何種技術(shù),例如采用了加密技術(shù),采用了加殼技術(shù)和采用了變形技術(shù)等技術(shù)的病毒。雖然這些計算機(jī)病毒都可以統(tǒng)稱為病毒,但是這些病毒確實存在明顯的差異,事實上不管計算機(jī)病毒采用什么樣的技術(shù),病毒所具有的基本屬性是改變不了的,失去了病毒的基本屬性,這些的惡意代碼則不是病毒,因此不論是什么樣的計算機(jī)病毒都具有共同特征,病毒的行為屬性決定了其是惡意代碼。
某種計算機(jī)病毒寄生于程序后,當(dāng)程序體中的病毒處于發(fā)作時,就能夠?qū)纳绦虍a(chǎn)生破壞,只要當(dāng)被寄生的程序處于運(yùn)行中,此時處于程序體中的病毒也處于運(yùn)行中。如果處于活動中的病毒,只是不斷地復(fù)制自身的代碼,那么計算機(jī)病毒就無法體現(xiàn)出病毒的惡意性,因此計算機(jī)病毒也不能被稱為惡意代碼,事實上正是計算機(jī)病毒存在傳染性和破壞性,人們才將其稱為惡意代碼。具有破壞性是計算機(jī)病毒和其他惡意代碼所共同具有的行為,正是因為計算機(jī)病毒和惡意代碼具有了破壞性才使得這些代碼具有了惡意陛。
計算機(jī)病毒的破壞性體現(xiàn)在對原程序的修改上,然而病毒只對符合條件的程序進(jìn)行修改,如果不符合條件,病毒則不進(jìn)行寄生和破壞。計算機(jī)病毒的種類不同,寄生的對象也不相同,因此病毒進(jìn)行破壞的對象有所區(qū)別。例如引導(dǎo)型病毒只感染用戶主機(jī)硬盤的引導(dǎo)扇區(qū),而大部分文件型病毒只感染后綴名為“com”和“exe”的可執(zhí)行文件。由于病毒進(jìn)行寄生時是有所選擇性的,因此病毒對目標(biāo)程序進(jìn)行破壞時同樣具有選擇性。當(dāng)一個計算機(jī)病毒寄生于某個程序后,對程序的破壞性上也不是隨意的修改,而是有目標(biāo)有目的地進(jìn)行修改。由于病毒的種類上存在不同,因此病毒對寄生程序采用的破壞方式也存在差異,例如引導(dǎo)型病毒,對硬盤引導(dǎo)扇區(qū)的程序進(jìn)修改時,會采取替換和覆蓋兩種方式。對程序中的某些代碼進(jìn)行替換操作,則能夠改變原程序的某些功能,當(dāng)程序的某些代碼發(fā)生了改變,那么該程序原來具有的功能就被病毒破壞了,此時程序就不能實現(xiàn)原來的行為屬性。引導(dǎo)型病毒的另一種破壞方式則采用覆蓋的技術(shù),對原程序的某些代碼進(jìn)行覆蓋操作,也就是用當(dāng)前的代碼來替換原有代碼,借此來破壞原來程序的功能,因此這兩種破壞方式有相似之處,也有不同之處。
當(dāng)文件型病毒感染了某個程序后,程序體中的病毒就能夠進(jìn)行一定程度上的破壞。病毒對程序代碼任意的進(jìn)行刪除,剪貼,復(fù)制和粘貼等等這些操作都能夠使得寄生程序發(fā)生改變。然而當(dāng)程序的代碼發(fā)生改變后,該程序就不是原來的程序,而是被病毒修改后的程序。事實上當(dāng)一個程序的源代碼被非法修改后,程序具原來的功能就被破壞了,就無法實現(xiàn)其原來的功能,此時計算機(jī)病毒就達(dá)到了對寄生程序破壞之目的。當(dāng)計算機(jī)病毒對寄生程序進(jìn)行修改時,是具有一定的選擇性,沒有目標(biāo)的修改,則有可能達(dá)不到病毒對程序預(yù)先的破壞目的。事實上正是因為病毒種類的不同,病毒之間存在差異,因此病毒對寄生程序采用了不同的破壞方式和方法。計算機(jī)病毒對寄生程序有選擇性的,有目的地修改,體現(xiàn)了病毒完成這一功能的自主性,因此從某種角度上來看,病毒有選擇性的修改寄生程序體現(xiàn)了病毒破壞性這一方面的智能性。
不同的計算機(jī)病毒對寄生程序進(jìn)行破壞時,具有一定的選擇性,然而對目標(biāo)進(jìn)行選擇前,必須對目標(biāo)程序的特征和屬性進(jìn)行判斷,然而具有判斷能力的程序就具有了一定智能性,自主性是智能的代表屬性,因此計算機(jī)病毒就體現(xiàn)出了一定的智能性。
2.5計算機(jī)病毒的激活特性
當(dāng)計算機(jī)病毒隨著載體從一個系統(tǒng)進(jìn)入另一個系統(tǒng)時,或病毒再次感染一個新程序時,此時的病毒并未處于活動中,而處于潛伏中的病毒是相對靜止的。如果使得計算機(jī)病毒由相對靜止,轉(zhuǎn)化為活動中的病毒,則需要一定的條件,只有滿足某些條件后,病毒才能夠被激活。
計算機(jī)病毒由相對靜止,轉(zhuǎn)變?yōu)榛顒又械牟《?,可以體現(xiàn)病毒一定的智能性。事實上激活病毒的條件是由外部條件決定的,但并不是所有的外部條件都能夠激活病毒,因此處于潛伏期的病毒并非處于完全靜止中。處于潛伏期的病毒,對于外界條件的變化是能夠感知的,如果病毒不能感知外部條件的變化,那么處于潛伏期的病毒則永遠(yuǎn)不可能被激活。一段程序能夠感知外部條件的變化,這是具有生命體征的一個行為屬性,因此從某個角度上看處于潛伏期的計算機(jī)病毒能夠感知外部條件的變化,可以看作計算機(jī)病毒某個方面的智能性。
計算機(jī)病毒能夠感知外部條件的變化,是因為對外部具有感知力,這是激活病毒的條件之一。病毒要激活自身的代碼必須經(jīng)過兩個過程,首先是對外界的變化具有感知力,其次是在這些外部條件中,只有符合一定要求后才能激活病毒。在以上兩個過程中,病毒需要將某些外部條件和自身的某些屬性進(jìn)行對照和匹配,才能夠?qū)崿F(xiàn)激活潛伏中的病毒。然而事實上只有具有生命特征的事物才具有將外部條件的屬性與該生命體的內(nèi)部屬性進(jìn)行比較和判斷,計算機(jī)病毒作為一段程序,但具有這一功能,因此從某個角度上看,雖然是一段程序,但該程序同樣具有與生命體一樣的智能性。
2.6計算機(jī)病毒躲避殺毒軟件檢測時的智能性
當(dāng)今的計算機(jī)病毒,將多種計算機(jī)技術(shù)與自身的技術(shù)相互融合,例如在計算機(jī)病毒技術(shù)中采用了加密技術(shù),變形技術(shù)和加殼技術(shù)等,當(dāng)病毒融合了這些技術(shù)后,越發(fā)使得自身具有更強(qiáng)的躲避殺毒軟件對其進(jìn)行檢測的能力,因此此時計算機(jī)病毒再次展現(xiàn)了它的破壞威力。
將加密技術(shù),加殼技術(shù)和變形技術(shù)等這些技術(shù)在病毒中進(jìn)行應(yīng)用,更加凸顯了病毒的智能性。具有變形能力的病毒有個核心部件,在該病毒體中有一個變形引擎,在變形引擎的作用下,計算機(jī)病毒的代碼結(jié)構(gòu)都能夠隨著時間的改變而發(fā)生變化,或者隨著病毒復(fù)制這一過程而變化。
變形病毒每變形一次都能產(chǎn)生一個新病毒,新病毒在結(jié)構(gòu)上與原來的病毒有一定的差異,但實際上這個病毒是原來病毒的復(fù)制品,因此從某個角度來看新病毒是具有變形能力病毒的一種進(jìn)化。變形病毒能夠產(chǎn)生四種形式的變形,分別是:一維變形,二變維形,三維變形和四維變形,在這四種變形中,每一種病毒變形時所采用的變形機(jī)制有所不同,每一種變形機(jī)制在改變病毒代碼結(jié)構(gòu)時都有各自的特點,病毒的每一次變形都是為了躲避殺毒軟件對該病毒的檢測和查殺。一維變形是最簡單的變形,但就是病毒的一維變形就能夠使得特征碼病毒檢測算法失去了一定的作用,使其無法正確有效地檢測出變形后的病毒,由此可以看出變形病毒與傳染病毒相比具有更強(qiáng)的智能性。
變形病毒與傳統(tǒng)病毒相比較有很大的不同之處,傳統(tǒng)型的病毒不能使得病毒的外觀發(fā)生改變,傳統(tǒng)的病毒進(jìn)行傳染時,只能簡單地復(fù)制自身的代碼,然而變形病毒在傳染的時,除了能夠復(fù)制自身代碼外,還能夠?qū)Υa的外觀和結(jié)構(gòu)進(jìn)行變形。病毒將自身的代碼進(jìn)行復(fù)制的時候就是體現(xiàn)了某個方面的智能性,因此從病毒能夠自主的完成復(fù)制和改變自身代碼外觀,從某個角度上看,病毒在傳染過程中的確體現(xiàn)了一定的智能性。變形病毒的一維變形,二維變形和三維變形這三種變形的方式雖然能改變代碼的外觀,但是進(jìn)行代碼外觀改變時,需要一定的條件,其條件是只有當(dāng)病毒進(jìn)行復(fù)制代碼時才能夠?qū)崿F(xiàn),然而具有四維變形能力的病毒,隨著時間的變化,其特征碼能夠呈現(xiàn)出動態(tài)的隨機(jī)變化,此時基于特征碼的病毒檢測算法更難檢測出此類變形病毒,因此具有四維變形能力的病毒具有更強(qiáng)的躲避檢測軟件對其檢測的能力,事實上變形病毒與其他病毒相比較具有更高的智能性。
3結(jié)束語
計算機(jī)病毒出現(xiàn)至今已有數(shù)十年之久,然而大部分人們認(rèn)為計算機(jī)病毒只是一段程序,這個觀點不錯,但具有一定的片面性,計算機(jī)病毒具有其他程序不具備的特殊行為屬性,具有一定的智能性。因此為了使得人們對計算機(jī)病毒有更多的了解,在參考了相應(yīng)的計算機(jī)病毒文獻(xiàn)后,由作者撰寫了這篇論文。該論文首先介紹了程序行為屬性與程序功能之間的聯(lián)系,而在這之后介紹了計算機(jī)病毒具有的某些行為屬性,以及這些特征行為屬性所對應(yīng)的功能,因此該論文與其他計算機(jī)病毒論文相比有他的特殊之處,有一定的新意,同時此論文也有一定的參考價值。