文/楊建偉
(天津商業(yè)大學信息工程學院 天津市 300134)
所謂計算機病毒,指的是在計算機程序中,制造者蓄意插入計算機硬件和數(shù)據(jù)的代碼,而這些硬件和代碼具有破壞性,同時,這些計算機病毒具有極強的自我復制能力。它具有很多特性,如傳播性、可激發(fā)性、隱蔽性和破壞性。本文就計算機病毒的傳染方式、寄生方式、觸發(fā)條件、破壞的表現(xiàn)形式以及如何預防展開論述,同時,也針對計算機病毒的運行機制,如病毒的傳染模型和破壞模型展開研究。
計算機病毒的工作過程,如圖1。
1.1.1 文件型病毒
它還有一個學名叫“寄生病毒”,它通常是文件感染者,感染的文件類型,通常擴展名是COM、EXE、SYS等,它的運行場所在計算機存儲器中。
1.1.2 引導區(qū)型病毒
引導區(qū)型病毒的感染方式如下,它主要通過軟盤在操作系統(tǒng)中傳播,繼而感染到引導區(qū),進而再蔓延到硬盤中,這種病毒破壞性較大,同時還能感染到硬盤中的“主引導記錄”。
1.1.3 宏病毒
宏病毒是一種宏代碼,這種代碼存在于Office文檔中用BASIC語言編寫的病毒程序,這種病毒對文檔的各種操作都是有影響的。
1.2.1 源碼型病毒
此類病毒主要攻擊由高級語言編寫的程序,即在這段程序被編譯之前就在源程序中找到一個恰當?shù)奈恢?,既可以隱蔽自己在編譯時成為合法程序的一部分,又可以尋找恰當?shù)臅r機開始進攻
1.2.2 操作系統(tǒng)型病毒
這種病毒一般將自己的程序寫入操作系統(tǒng)區(qū)中,眾所周知,計算機的啟動必然驅使操作系統(tǒng)區(qū)中病毒的運行,然后才是對啟動程序進行運行,這類病毒會導致系統(tǒng)癱瘓,甚至是無法啟動系統(tǒng)。
1.2.3 外殼型病毒
這種病毒程序主要隱藏在目標宿主程序的開頭和結尾部分,對原來的主程序的修改范圍不是很大。在宿主程序執(zhí)行之前,病毒程序首先被激活并且進行執(zhí)行,這樣病毒就會進行發(fā)作,進而進行感染和繁衍。此種病毒的編寫是很容易的,也是最常見的,數(shù)量也是最多的。
1.2.4 入侵型病毒
入侵型病毒也叫“嵌入型病毒”,此病毒的寄生方式如下:它會對宿主程序進行一定程度上的修改,一般是找空隙將自己嵌入到宿主程序里,進而將自己變?yōu)楹戏ǔ绦虻囊徊糠?,從而達到與目標程序成為一體的效果。這種病毒的編寫和查殺十分困難:第一,需要在目標程序中找到一個恰當?shù)奈恢?;第二,在該恰當位置插入病毒程序時不僅不能影響正常程序的運行,還需要在恰當?shù)臅r機完成傳染或攻擊;第三這類病毒一般都存在目標程序中的主程序,所以查殺此類病毒無異于徹底刪除主程序,喪失目標程序應有能力。
圖1
圖2
(1)以時間為為觸發(fā)條件的病毒,它基本上是在某一特定日期或某一時間觸發(fā),一旦日期與病毒預設日期符合,病毒就開始發(fā)作。比較具有代表性的例子就是“黑色星期五”計算機病毒,它的觸發(fā)條件是13 and星期五。換句話說,當病毒進入系統(tǒng)后,他會不斷地檢測系統(tǒng)的時鐘,一旦檢測到是13號,然后再檢測看是否是星期五,當這些條件同時滿足時,病毒就開始發(fā)作。還有一個典型例子就是“小球病毒”,它也是通過時間來判斷的,當這種病毒進入系統(tǒng)RAM中,就會讀取系統(tǒng)的時鐘,如果發(fā)現(xiàn)系統(tǒng)的時間是整點或者半點的時候,他就會發(fā)作。
(2)通過擊鍵和鼠標觸發(fā),有些病毒他是可以檢測到用戶的擊鍵動作的,當某一時刻,某個特定鍵被檢測到時,這時候,這種病毒就會被激活。鍵盤的觸發(fā)形式多種多樣,常見的例子比如發(fā)熱啟動觸發(fā),擊鍵的次數(shù)觸發(fā),組合鍵觸等。另外還有一些是監(jiān)控用戶的鼠標動作來發(fā)作,比如一些木馬病毒,他就是通過操作系統(tǒng)的漏洞來監(jiān)測,一旦檢測到鼠標有拖放的操作時,病毒就會發(fā)作。
(3)利用系統(tǒng)的漏洞來觸發(fā)一些病毒,這種情況,我們常見的就是求職信病毒,在這種情況下,只要用戶電腦存在IFRAME漏洞,用戶不需要打開附件,只要在預覽附件的時候,這種病毒就會被激活發(fā)作。
(4)通過調用中斷功能觸發(fā),這種情況很容易理解,他的觸發(fā)條件就是對中斷調用的次數(shù)進行計數(shù)。相信大家在在操作系統(tǒng)中都學習過I/O中斷,在虛擬內存中每當缺少一個段或頁,就需要CPU中斷從磁盤調出段或頁,但是病毒恰恰利用這一特點,每當調用到特殊段頁或者中斷調用的次數(shù)達到特定值,病毒就要開始對你的電腦“大開殺戒”。
(5)通過誘使用戶點擊運行,這種病毒是隨機發(fā)作的,他們已經不以時間為觸發(fā)條件了而是通過發(fā)送一些郵件,這些郵件通常具有誘惑性,用戶很容易被欺騙打開,但是病毒往往潛藏在被打開的圖片或者文件中,用戶一旦點擊運行,病毒就會立即發(fā)作。
(6)主板型號觸發(fā),這種情況不太常見,他的觸發(fā)條件是通過識別運行主板型號,當主板型號對應的某個函數(shù)值和病毒的條件期許值相一致,病毒即可觸發(fā)。
(7)通過啟動系統(tǒng)來觸發(fā),這種病毒是隨操作系統(tǒng)一起運行的,他不是在被下載到電腦本地時立刻就發(fā)作,而是當用戶再次啟動計算機時才發(fā)作,因為重新啟動系統(tǒng),CPU才會重新執(zhí)行啟動程序,這樣程序里的病毒也就隨之激活。
計算機病毒的觸發(fā)條件復雜多樣。以上闡述的只是冰山一角,而且很多病毒是融合了好幾種的觸發(fā)機制,遠比我們想象的要復雜。
計算機病毒程序結構如圖2所示。
2.1.1 條件判斷子模塊
(1)感染控制。病毒程序的傳染一般有他形成的特定條件,一旦滿足這個條件才進行判斷標記。例如CIH病毒只有在32位的Windows 95/98的環(huán)境下,才有CIH病毒傳染的可能。
(2)感染判斷。每一個病毒獨有自己的專屬記號,當符合病毒的傳染條件時,病毒會判斷傳染對象是否存在這個記號。如果存在,則放棄傳染,否則會被傳染對象發(fā)現(xiàn);如果不存在,則對其進行感染。例如CIH病毒的標記是做在內存的 DR0寄存器中,CIH的作者在網上免費發(fā)放該病毒的免疫程序,在每次開機時系統(tǒng)就會立刻自動執(zhí)行疫苗程序,在寄存器中做一個記號,這樣CIH病毒偵測到此盤或文件已被感染標記,就不會再去感染。
隨便編寫一段病毒傳染判斷機制代碼:
2.1.2 實施子模塊
它一旦滿足前兩個條件,就開始感染,感染的操作基本都是通過竊取INT 13H(或INT26H,或INT21H中的磁盤操作功能調用)來進行的,換句話說,就是在用進行磁盤操作的同時,也進行感染操作的方法。
隨便編寫一段病毒傳染實施機制代碼:
病毒最大的特點就是自我復制,病毒的分類有很多種,但是在條件判斷階段做的事情主要有兩件:
(1)在不影響其他程序正常工作的情況下,讓病毒程序能復制給其他程序,同時使他具備繼續(xù)復制的能力。
(2)在一定條件下,使它產生某種發(fā)作效果。
計算機病毒他的最終目標就是進行破壞,他的破壞手段有很多,比如對文件進行刪除,對數(shù)據(jù)進行修改,對系統(tǒng)資源進行占用,對系統(tǒng)正常的運行進行干擾等等。破壞機理也不同,破壞的機理是隨病毒程序而改變的。例如CIH病毒的發(fā)作是用垃圾碼覆蓋硬盤的引導區(qū)、分區(qū)表、直至整個硬盤數(shù)據(jù),而且還用垃圾碼寫入 FlashBIOS芯片中,從而能導致主板損壞,進而使系統(tǒng)無法重新啟動。
2.2.1 條件判斷子模塊
當病毒滿足某個激發(fā)條件時,它就開始破壞。例如CIH病毒的1.2和1.3版當時間滿足是4月26日時,就會開始破壞用戶計算機。
2.2.2 實施子模塊
一些病毒破壞計算機的簡單程序函數(shù):
(1)隱藏窗口
ShowWindow(false);
(#include 主程序)
(2)程序暫停一秒后繼續(xù)執(zhí)行
Sleep(1000);
(#include 主程序)
(3)刪除文件
System(del"文件路徑");
(4)運行文件
System("文件路徑")
(5)復制文件
System(remove"文件路徑")
如:對外來軟盤的使用要進行嚴格控制,盡量避免軟盤的外借。
當某臺計算機存在病毒,一旦被發(fā)現(xiàn),就要進行及時的處理,這樣計算機病毒就不容易擴散。
我們應該有一個良好的習慣,就是對重要的文件和磁盤的引導區(qū)進行備份,以免再病毒感染后,因為無力殺毒,而丟失重要數(shù)據(jù)。所以,提前備份好重要數(shù)據(jù),將計算機病毒感染的文件粉碎或者全盤格式化,最后再把備份好的數(shù)據(jù)拷入磁盤。
殺毒軟件有很多種,比如大家熟知的360安全衛(wèi)士等等。但是病毒的制造者也在隨著社會的進步和科技的發(fā)展對自己設計的病毒“更新?lián)Q代”,所以他們或多或少的存在一些弊端,因此給大家推薦幾種殺毒軟件:瑞星和小紅傘;在這里主要說一下小紅傘,因為這種軟件不僅有定時查殺功能,而且相較于360安全衛(wèi)士,它會針對不斷出現(xiàn)的新病毒進行每周一次的升級,擴充病毒識別庫里的病毒種類,然后對其進行分析研究,尋找破解的方法,當再有計算機因相同類型的病毒而被感染時,會立即查殺。