摘要:文章講述了計算機病毒及其檢測要點事項等等。本文選自:《計算機應(yīng)用》,《計算機應(yīng)用》創(chuàng)刊于1981年,是中國計算機學會會刊。以介紹計算機應(yīng)用技術(shù)為重點,以推動經(jīng)濟發(fā)展和科
文章講述了計算機病毒及其檢測要點事項等等。本文選自:《計算機應(yīng)用》,《計算機應(yīng)用》創(chuàng)刊于1981年,是中國計算機學會會刊。以介紹計算機應(yīng)用技術(shù)為重點,以推動經(jīng)濟發(fā)展和科技進步為宗旨,以促進計算機開發(fā)應(yīng)用創(chuàng)新為目標。

摘要:計算機病毒按傳染對象及其載體可分為操作系統(tǒng)型病毒及文件型病毒。操作系統(tǒng)型病毒在系統(tǒng)引導時先于正常系統(tǒng)的引導,將其病毒程序?qū)胂到y(tǒng)中,從而傳染至軟盤引導扇區(qū)、硬盤主引導扇區(qū)和硬盤DOS分區(qū)引導扇區(qū)。當病毒截得一定的中斷向量時,由激發(fā)模塊激發(fā)病毒,從而向內(nèi)向外進行傳染,在滿足一定條件時,便向載體計算機進行破壞。
關(guān)鍵詞:計算機病毒,計算機檢測,計算機工程,計算機論文
1 計算機病毒的基本概念
圖1 病毒的靜態(tài)結(jié)構(gòu)圖2 病毒的動態(tài)結(jié)構(gòu)
計算機病毒這個術(shù)語最早由L.M.Aleman引入,而以形式化的定義來對計算機病毒進行概括的則是F.Cohen。計算機病毒在F.Cohen的形式化定義里很難以自然語言進行描述,但他同時也指出,計算機病毒是“一個程序,它能夠通過把自身(或自己的一個變體)包含在其他程序中來進行傳染。通過這種傳染性質(zhì),一個病毒能夠傳播到整個的計算機系統(tǒng)或網(wǎng)絡(luò)(通過用戶的授權(quán)感染他們的程序)。每個被病毒傳染的程序表現(xiàn)得像一個病毒,因此傳染不斷擴散。”①而實質(zhì)上,隨著計算機技術(shù)的發(fā)展和對計算機病毒的研究,我們可以把計算機病毒定義為一種在計算機運行過程能把自身精確復制和有修改的復制到其他程序體內(nèi)的一種程序,它的本質(zhì)是一種非授權(quán)的程序加載,剽竊系統(tǒng)軟硬件資源作為其生存、繁殖和擴散的保障。一般情況下,計算機病毒主要由以下三部分組成:病毒引導模塊、病毒傳染模塊、病毒激發(fā)與表現(xiàn)模塊,如圖1、2所示:②
正是通過病毒內(nèi)部的這三個模塊,由引導模塊把病毒導入系統(tǒng),而由傳染模塊向計算機的其他部件進行傳染,再由激發(fā)模塊激活計算機病毒對計算機實施干擾或破壞,從而使計算機不能正常工作,導致系統(tǒng)癱瘓,信息喪失。
而文件型病毒一般是對系統(tǒng)中的可執(zhí)行文件進行感染,這種病毒的依附有其自主性,它可以選擇可執(zhí)行文件的首部、中部或者尾部進行依附,就目前的病毒來看,一般是首部或尾部。在病毒依附于可執(zhí)行文件之后,一旦可執(zhí)行文件運行,病毒便能首先獲得系統(tǒng)的控制權(quán),以此完成自身病毒的傳染和對系統(tǒng)的破壞,當激發(fā)模塊完成病毒的傳染和對計算機的破壞之后,繼而修改可執(zhí)行文件。
2 計算機病毒的特征
計算機病毒的感染與運行產(chǎn)生對計算機破壞的作用是由計算機病毒的特征所決定的。我們從下面這個典型的計算機病毒的偽碼序列就可看出它的基本特征:(見圖3)
以上的偽碼序列我們可以清楚的觀察出計算機病毒具有傳染性、破壞性以及偽裝性。
傳染性是計算機病毒的顯著特色,也是衡量一個程序是不是計算機病毒的重要標志,它具有很強的再生機制,只要一接觸便會被傳染,無論是否是可執(zhí)行程序,而傳染上之后,計算機病毒一般會隱藏在可執(zhí)行文件中,或者是首部或者尾部,只要一運行,便又迅速傳染其他文件。
破壞性是計算機病毒被設(shè)計出來的主要目的,更是它的主要特征。當計算機系統(tǒng)感染病毒之后,病毒便會根據(jù)設(shè)計者的指示,或者破壞系統(tǒng)資源,或者破壞系統(tǒng)中的數(shù)據(jù),又或者干擾計算機的正常運行以竊取用戶的作息,甚至破壞整個系統(tǒng),使計算機系統(tǒng)的運行遭到全面的摧毀。概括起來,計算機的攻擊和破壞主要集中在三個方面:③(1)感染和破壞計算機硬盤或軟盤的引導扇區(qū),改寫Flash BIOS芯片中的系統(tǒng)程序;(2)感染系統(tǒng)文件和可執(zhí)行文件;(3)刪除或更改軟盤和硬盤中的文件。
偽裝性是計算機病毒寄生于計算機的某一個合法程序與系統(tǒng),悄悄隱藏起來,在用戶不察覺的情況下對計算機其他文件進行傳染,在完成自己傳染和對計算機系統(tǒng)的破壞后,又把控制權(quán)交回宿主程序,繼續(xù)完成宿主程序的功能。在很多情況下,它會覆蓋多種文件或程序,以此隱藏它們的惡意功能,這就是它們的偽裝性。
當然,計算機病毒還有其他的特征,如非授權(quán)可執(zhí)行性、潛伏性、可觸發(fā)性等,但這些在實質(zhì)上可以歸于以上三個主要特性。
3 計算機病毒的檢測
遭受計算機病毒后,計算機會有一些顯著的表現(xiàn),如電腦運行速度降低;程序訪問磁盤頻次增加;程序訪問不應(yīng)訪問的磁盤驅(qū)動器;磁盤可用空間迅速減少;正常運行程序時出現(xiàn)異常現(xiàn)象或無法運行,屏幕出現(xiàn)不正常文字、圖畫;顯示屏出現(xiàn)異常文字及黑洞、小球、兩點等畫面;文件異常消失;文件部分丟失或整個文件被替代;出現(xiàn)不明來源的數(shù)據(jù)文件目錄④等等。
因此,用戶在使用計算機的過程中很有必要對計算機病毒進行檢測。下面介紹幾種檢測方法:
(1)通過行為異常來檢測,即behavioral abnormality;在這種方法里,將一個病毒監(jiān)控器軟件(virus montor)裝下機器,用它來監(jiān)視計算機系統(tǒng)在日常應(yīng)用中的不同行為。這種監(jiān)控器軟件知道病毒有一些試圖傳染和逃避檢測的典型活動,如試圖寫根扇區(qū)、修改中斷向量、寫系統(tǒng)文件等。這種方法最大的好處在于它適用于所有的病毒,包括已知與未知的,并且在病毒的傳染前就發(fā)現(xiàn)它,及時提醒用戶。
(2)通過仿真來檢測,即emulation;所謂仿真檢測就是被檢測的程序由病毒檢測程序來進行仿真,它用來決定程序的運行行為。這種方法與前面行為異常的檢測的方法不同在于,監(jiān)控器軟件的監(jiān)控是讓程序真正運行的,而該方法只在特定樣本輸入的情況下進行仿真,在仿真過程如一旦發(fā)現(xiàn)一個程序試圖修改中斷向量或打開敏感文件,則該程序便就是可疑的。這種檢測有一個缺點就是檢測的結(jié)果不夠精確,不可能總是正確地判定一個程序是否是計算機病毒。
(3)通過效驗和來檢測,即checksum;這種方法是為了保護程序不被修改或破壞,一個基于程序內(nèi)容的效驗和被計算機出來并以加密方式存貯在程序內(nèi)部或外部。通過校驗和這樣的方式,由于加密使用意向函數(shù)(one-way function),病毒傳染后要偽造一個同樣的檢驗和在計算上基本上不可能,從而檢測出是否遭受計算機病毒的感染與攻擊。
(4)通過動態(tài)的程序的完整性來檢測,即program integrity;這種方法是保證可執(zhí)行程序在運行時的完整性,或在程序的完整性和運行之間檢測是否傳染。這種方法的基本途徑在于針對一個事先定義的程序“顆粒”,先計算一個加密的校驗和,事先對每個基本塊計算一個加密的效驗和,并把它存在基本塊⑤中。當每一次控制流入基本塊的頂部,重新計算校驗和,并把加密后的校驗和與存貯的檢驗和比較,這就能檢測出基本塊內(nèi)部指令的完整性,從而知道是否感染計算機病毒。
(5)通過特征碼掃描來檢測,即signature scanning;這種方法是檢測計算機系統(tǒng)中或可執(zhí)行程序中是否感染病毒最常見也是最簡單的方法,但這種方法只能針對已知病毒,對未知的病毒無法檢測,也不能直接應(yīng)用于自我加密的病毒。
(6)通過手工檢測;對一些未知的病毒或已經(jīng)變形的病毒,直截了當?shù)姆椒ň褪菍γ恳粋€未知的病毒或變形的病毒逐行編制一套特殊的程序去檢測不同的代碼序列。當然,這種方法在普通用戶中并不實用,極費時間又代價昂貴。