電腦病毒是一種對電腦作業系統的安全造成威脅或破壞的程式﹐它會變更原有系統程式或資料﹐產生損害。並且﹐病毒會在程式之間、系統之間傳播。它是由一連串的指令構成的﹐當它被執行的時候﹐就將它自己散播到其他未感染的程式或檔案之中。

典型的電腦病毒有兩項功能︰第一﹐它會自行繁衍﹐將自己拷貝到其他的檔案或程式中。第二﹐(可能是在特別的執行次數後﹐或是在特定的日期﹐)它開始執行原病毒作者所寫的其他指令﹐至於會做哪些事﹐端看作者本身的動機﹐有些是顯示某個訊息﹐有些是殺掉某些檔案﹐有些是改變電腦原先儲存的資料﹐甚至格式化硬碟。也有可能它根本沒有任何的破壞指令﹐而是吸收磁碟的空間﹐打斷網路的連接等等。

除了病毒之外﹐也有幾種類似病毒﹐但卻稱不上病毒的程式︰蠕蟲(worms)、細菌(bacteria)、兔子(rabbits)等等。與病毒相同的是﹐它們都具有自我複製的丞。而不同的是﹐worm是一種程式﹐它透過網路散播自己的複製品﹐藉著讓網路系統超過負載使其中斷。bacteria 則是當它被執行的時候﹐將自己的複製品散播給系統或是其他的使用者。rabbit主要是被設計用來消耗系統資源的﹐它並不是感染其他的程式﹐而是無限制的複製自己。

2.2 病毒的生命週期

電腦病毒就好像細菌的生長一般﹐所以我們才將它稱做「病毒」。病毒的成長﹐有下列幾個生命週期︰

A. 創造期(Creation)︰

當有一些人花了好幾個星期努力地研究出一些可以廣為散佈的程式碼﹐一隻病毒就這樣誕生了。當然﹐他們是不會這樣就算了的。他們通常都會設計一些破壞的行為。

B. 孕育期(Gestation):

這些破壞者將中毒的檔案放至一個容易向外傳播的地方。如BBS或是Internet的FTP站﹐甚至是公司、學校的檔案庫等等。由於許多人會在這些地方帶回許多的檔案﹐因此病毒也就可以更快速地傳播出去。

C. 潛伏感染期(Propagation):

在潛伏期中﹐病毒會不斷地繁殖與傳染。一個完美的病毒擁有很長的潛伏期﹐如此一來病毒就更多的時間去傳染到更多的地方、更多的使用者、一旦開始發病﹐將會造成更大的傷害。例如世界知名的「米開朗基羅病毒」﹐在每年三月六日發作前﹐有整整一年的感染期。

D. 發病期(Activation):

當一切的條件形成之後﹐病毒於是就開始了破壞動作。有些病毒會在某些特定的日期發病﹐有些則是自己有個倒數計時器來決定發病的時間。

E. 發現期(Discovery):

雖然大部份的病毒最後都會被發現,但仍然有些病毒在發病之後﹐並沒有被發現出來。其實﹐一般人們只要注意到它﹐通常都會想辦法做好隔離的動作。在美國有一個「國家電腦安全協會」(National Computer Security Association, NCSA)不斷地收集病毒的資料﹐並且將這些文件傳送給全世界的防毒軟體研發單位。對於大多數的狀況來說﹐當一個病毒對全球電腦使用者產生重大威脅前的至少一年之內﹐就會被這些訊息領袖發現。

F. 同化期(Assimilation):

進入發現期之後﹐防毒軟體商新增了新的病毒碼使得他們的產品可以偵測到這些病毒。這個過程通常要花上半年的時間﹐視軟體研發廠商的能力和病毒的複雜度而定。

G. 根除期(Eradication):

如果有夠多的防毒軟體能夠控制這些病毒﹐並且也有夠多的使用者使用防毒軟體﹐那麼這些病毒就可以幾乎完全地連根撲滅。雖然到現在為止﹐並沒有人敢宣稱某某病毒完全絕跡了。但是有一些病毒很明顯地被完全扼止了﹐如早期的Disk Killer等。它們都曾有一段風光的日子﹐並且對多數的電腦使用者造成非常大的威脅。

2.3 病毒種類



A. 開機型病毒

開機型病毒的感染對象是作業系統的開機區﹐也就是所謂的BOOT磁區。它是藉由開機動作侵入記憶體的﹐如果用了已感染病毒的開機片來開機﹐則病毒將立即感染到硬碟中。開機型病毒又可分為︰

傳統開機型病毒 經由軟碟傳染﹐進入電腦中再伺機傳染其他檔案。

隱形開機型病毒 感染硬碟開機磁區﹐偽造開機資料﹐使防毒軟體以為系統是正常的。

目錄型病毒 只感染檔案配置表 (FAT)﹐使得檔案讀寫不正常﹐甚至失去檔案。

著名的開機型病毒︰

BRAIN︰感染軟碟開機區﹐會將原來的開機磁區內容放在別的地方。

BLOODY︰感染硬碟的分割紀錄表﹐每使用硬碟開機六次﹐病毒就發作一次。開機128次則顯示六四天安門事件的訊息。

DISK KILLER︰感染軟硬碟的開機磁區﹐會修改BIOS﹐使病毒本身不會被查出﹐會修改檔案配置表﹐以及中斷向量表的INT 13H的位址。

SWAP︰感染軟碟開機磁區﹐開機後常駐在記憶體中﹐病毒載入記憶體十分鐘之後﹐畫面上所有的字會像下雨一樣﹐紛紛掉落到螢幕底部。

B. 檔案型病毒

檔案型病毒主要是感染 .COM 檔或是 .EXE 檔。近年來﹐檔案型病毒的感染目標又擴及到 .OVL檔和.BIN檔。檔案型病毒又有分︰

傳統檔案型病毒

以破壞檔案為目的﹐通常是把病毒自己放進被傳染的檔案裡。又分為兩種︰

迅速感染型 進入記憶體後就立即尋找檔案﹐發現沒有中毒的檔案就立刻感染。

常駐型 等待有程式被執行而進入記憶體時﹐才進行感染。

隱形檔案型病毒 把自己植入作業系統中﹐當有程式像作業系統要求中斷服務時﹐它就「順便」感染那個提出要求的程式。

著名的檔案型病毒︰

AIDS︰感染 .COM及.EXE檔﹐中毒時會在螢幕上顯示很大的AIDS字樣。

MACGYVER︰感染 .EXE檔﹐留在硬碟分割表中﹐但不會破壞啟動區。改變 INT 21H 的內容﹐即使用DIR也看不出檔案長度的變化﹐發作時會發出音樂﹐檔案日期會增加100年。

FRIDAY THE 13TH︰感染 .COM及.EXE檔﹐此病毒為常駐型﹐必在十三號星期五發作。

BEE︰感染 .COM及.EXE檔﹐由十三號星期五病毒演變而來﹐發作時會演奏小蜜蜂的曲子。

C. 混合型病毒

混合型病毒具有開機型病毒和檔案型病毒的能力﹐主要是利用檔案感染時伺機感染開機區﹐因而具有雙重行動力。此外它們的傳染、繁殖速度也很驚人。著名的混合型病毒︰

GREENSLEEVES︰感染 .EXE及 .COM的檔案﹐以及軟硬碟的開機磁區。同時也是一種常駐型病毒﹐使用暖開機 (Ctrl + Alt +Del) 時﹐病毒就被引爆。

DARK AVENGER︰感染.EXE、.COM、.OVL的檔案﹐以及COMMAND.COM檔。當中毒的檔案被執行的時候﹐每個磁區有百分之六到七的機率會中毒。

D. 隱形飛機型病毒

隱型飛機式病毒又稱作中斷攔截者(Interrupt Interceptors)。它藉由控制DOS的中斷向量來讓DOS以及防毒軟體認為所有的檔案都是乾淨的。在正常的狀況﹐應用程式發出一個中斷要求時﹐通常都會很正常地被導引到一個正常的中斷向量表(Interrupt Table)並正確地執行。一旦病毒截取了這些中斷要求﹐它就可以誤導這些程式﹐去做一些它們想要做的事。隱型飛機式病毒由於可以躲在中斷向量表中﹐所以它可以很有效率地藏起來﹐很難被偵測到。著名的隱形飛機型病毒︰

NATAS︰感染 .EXE及 .COM的檔案﹐以及硬碟的開機磁區。會改變 INT 13H 和 INT 21H。開檔的時候感染﹐感染後並看不出檔案大小變化﹐執行過中毒的檔案後﹐檔案長度會恢復到原來的大小。

E. 變體病毒

變體引擎(Mutation Engine)病毒程式每繁殖一次﹐就會以不同的病毒碼傳染到別的地方去﹐每個中毒的檔案中所含的病毒碼都不一樣﹐對於掃描固定病毒碼的防毒軟體﹐便是一種重大的考驗。這類病毒目前已出現在歐洲﹐如WHALE病毒依附於.COM檔時,幾乎無法找到相同的病毒碼;而FLIP病毒則只有2 byte的Pattern可找﹐是非常詭異的病毒。著名的有︰

WHALE︰感染硬碟啟動區﹐軟碟啟動區﹐或是硬碟分割區。會以TSR型式留在記憶體裡。

POGUE︰感染.COM檔﹐發病時會使系統五月一日或每日早上八點到九點發出奇怪的聲音。

F. 網路系統病毒

網路是病毒最愛的傳染途徑﹐但只有少數專門針對網路弱點所設計的網路特定病毒﹐才能在NetWare下運作。這類型的網路特定病毒會主動入侵、感染並破壞網路伺服器中檔案﹐其中最有名的為Novell Netware網路系統上的網路特定病毒GP1(Get Password 1)﹐它會利用搜集來的使用者帳號及密碼﹐突破Supervisor的權限﹐更改檔案伺服器上的檔案屬性﹐並進行感染和刪除的動作﹐而且病毒之間還能交換訊息﹐所以一旦病毒在網路上活躍﹐後果將不勘設想。

G. 文字巨集病毒

巨集病毒是目前熱門的話題﹐它主要是利用軟體本身所提供的巨集能力來設計病毒﹐所以凡是具有寫巨集能力的軟體都有巨集病毒存在的可能﹐Word, Excel, Amipro 都相繼傳出危害﹐在台灣最有名的例子正是Taiwan No.1。

所謂「巨集」(Macro)是指眾多指令的集合﹐巨集通常可以允許使用者自行設計以便能夠一次執行連串的指令或動作。它的概念就很類似在DOS環境下的批次檔。通常巨集都是伴隨著主程式啟動時一起被載入記憶體中﹐以Microsoft Word為例﹐當我們啟動Word之後﹐Word內定會替我們載入一個Normal.DOT的範本檔以設定如字型﹐行距等等相關資訊。這也正是巨集病毒最愛下手的目標。只要一份文件中夾帶了具有自我複製能力或破壞的行為﹐例如開啟舊檔﹐開新檔案﹐另存新檔等動作同時﹐甚至連Word只要一啟動﹐都會執行到這些巨集。而這些不懷好意的巨集就是所謂的「文件巨集病毒」。

有些程式寫作的專家不認為文件病毒是真正的病毒﹐因為它並非獨立可執行的程式﹐而是一些重量級文書或試算表軟體的「一連串執行步驟」而已。或許只能算是搗蛋的動作﹐但仍能夠造成損壞。著名的巨集病毒︰

DMV Macro︰教人如何寫巨集病毒的Demo病毒。

AAAZAO Macro︰世界第一隻正式發表的巨集病毒。

13號 TAIWAN NO.1︰世界第一隻中文WORD巨集病毒﹐每月13號發作。

RainBow Macro︰世界第一隻會改變視窗桌面顏色的巨集病毒。

G. 反防毒病毒

反防毒病毒專門攻擊特定的防毒軟體。這種病毒幾乎非常地少﹐但是對於一些防毒軟體來說﹐由於它的存在﹐使得整台原來有做防毒措施的電腦頓時失去了保護﹐因此破壞力也不可忽視。