認識電腦病毒
1.何謂電腦病毒(ComputerVirus)
第一隻電腦病毒出現於1980年中旬。到了1990,電腦病毒也大概只有百種。但今日卻有超過五萬種病毒存在,而常見的只有一百種左右。
所謂「電腦病毒」,事?上就是一電腦程式,與一般電腦程式不同的地方,是病毒程式會?阂獾匮}製自己,將病毒程式植入其他電腦檔案。有這種舉動的程式,便可稱是「病毒」。電腦病毒在特別的設計下,電腦使用者無法察覺,造成電腦系統的損害或使用者的困擾。
上述這種感染式的做法,除了透過磁片及網路,隨著Internet的盛行,透過電子郵件夾帶病毒附件、Script碼(_javascript、_VBscript)、網路元件(Javaapplet、ActiveX)的傳染方式如今相當普遍。
電腦病毒的生命週期,主要階段有?摲??infectionphase)及發病期(attackphase),說明如下:
創造期:當電腦駭客們花了數天或數週努力的研究出一些可以?V為散?训某淌酱a,電腦病毒就這樣誕生了。當然,他們是不會這樣就算了的,他們通常都會設計一些破壞的行為在其中。
孕育期:這些電腦駭客們會將這些含有電腦病毒的檔案放在一些容易散播的地方。如BBS站,Internet的FTP站,甚至是公司或是學校的網路中等等。
?摲?冢涸?摲?谥校?娔X病毒會不斷地繁殖與傳染。一個完美的病毒擁有很長的?摲?冢?绱艘?聿《揪陀懈?嗟臅r間去傳染到更多的地方,更多的使用者,一旦發病將會造成更大的傷害。例如世界知名的米開朗基羅病毒,在每年三月六日發作前,有整整一年的?摲?凇?r
發病期:當一切條件形成之後,病毒於是就開始破壞的動作。有些病毒會在某些特定的日期發病,有些則自己有個倒數計時裝置?頉Q定發病的時間。雖然有些病毒?K沒有發病時的破壞動作,但是它們仍然會?讚?恍┫到y資源,而降低系統運作的效率。\r
根除期:如果有夠多的防毒軟體能夠偵測及控制這些病毒,?K且有夠多的使用者?買了防毒軟體,那麼這些病毒就有機會被連根撲滅。雖然到現在為止,?K沒有人敢宣稱某一隻病毒完全絕跡,但是有些病毒已經很明顯的被完全制止了–如早期的DiskKiller等。
2.病毒(virus)、木馬(trojan)、電腦蟲(worm)、愚弄郵件(hoax)、玩笑程式(joke)
木馬:源自希臘木馬屠城神話,木馬程式偽裝成有用的程式,隱藏著危害電腦系統的程式。木馬程式本身沒有複製能力,而是透過病毒、電腦蟲、愚弄程式、郵件附檔植入電腦系統。
例子:1989年,有人以AIDS資?名義,寄送大量磁片給大眾。只要電腦讀取磁片,便偷偷地將木馬程式植入電腦。之後當電腦開機?M90次,?摲?哪抉R程式會將硬碟機上的所有檔案更名及隱藏。
另一個木馬是PictureNote,它是藉由郵件掛上一個Picture.exe附檔,經由Internet寄給無知的收信者。一旦收信者執行Picture.exe,便會把電腦系統中「美國線上(AOL)」的帳號資料寄給特定帳號。
電腦蟲:與一般病毒不同,它是藉由網路將自己複製給網路上的其他電腦,而不是感染其他檔案。電腦蟲不需要使用者介入啟動,透過電腦機制自動擴散,造成網路中斷或傷害網路電腦。
例子:1988年,名為Morris的電腦蟲迅速散?鸯毒W路上,不斷複製至網路電腦,造成網路癱瘓。
ExploreZip利用MS-Outlook及MAPI指令,取得Outlook收信匣內的?硇诺刂罚瑢⒆约恨D寄給這些地址。收到信的人會以為是認識的人所寄送過?怼?xploreZip電腦蟲會複製自己至使用者目錄中,同時改寫win.ini系統起始檔,以致每當電腦開機,便啟動ExploreZip,散發電腦蟲郵件。
愚弄郵件:經由電子郵件傳遞,警告收信者做出無意義的操作或大量轉寄,否則會傷害電腦系統或其他不利情況發生。其中可能是真?的病毒,務必小心分辨。
例子:
http://www.symantec.com/avcenter/hoax.html
http://www.f-secure.com/news/hoax
http://vil.mcafee.com/hoax.asp?
玩笑程式:假裝成病毒程式,令使用者以為中毒。對電腦是無害的。
例子:
http://library.thinkquest.org/C005965F/viralinfo/only_a_joke.htm
3.電腦病毒型態分?
(1)檔案型
檔案型病毒通常寄生在可執行檔(如*.COM,*.EXE等)中。當這些檔案被執行時,病毒的程式就跟著被執行。檔案型的病毒依傳染方式的不同,又分成非常駐型以及常駐型兩種:
(A)非常駐型病毒(Non-memoryResidentVirus):非常駐型病毒將自己寄生在*.COM,*.EXE或是*.SYS的檔案中。當這些中毒的程式被執行時,就會嘗試地去傳染給另一個或多個檔案。
(B)常駐型病毒(MemoryResidentVirus):常駐型病毒躲在記憶體中,其行為就好像是寄生在各?的低階功能一般(如Interrupts),由於這個原因,常駐型病毒往往對磁碟造成更大的傷害。一旦常駐型病毒進入了記憶體中,只要執行檔被執行,它就對其進行感染的動作,其效果非常顯著。將它趕出記憶體的唯一方式就是冷開機(完全關掉電源之後再開機)。
(2)開機型
開機型病毒是藏匿在磁碟片或硬碟的第一個磁區。因為DOS的架構設計,使得病毒可以於每次開機時,在作業系統還沒被載入之前就被載入到記憶體中,這個特性使得病毒可以針對DOS的各?中斷(Interrupt)得到完全的控制,?K且擁有更大的能力去進行傳染與破壞。開機型病毒都是常駐型。
(3)巨集型
巨集病毒是目前最熱門的話題,它主要是利用軟體本身所提供的巨集能力?碓O計病毒,所以凡是具有寫巨集能力的軟體都有巨集病毒存在的可能,如Word,Excel,AmiPro都相繼傳出巨集病毒危害的事件,在台灣最著名的例子正是TaiwanNO.1Word巨集病毒。
(4)多型病毒(Polymorphic/MutationVirus):
多型病毒可怕的地方,在於每當它們繁殖一次,就會以不同的病毒碼傳染到別的地方去。每一個中毒的檔案中,所含的病毒碼都不一樣,對於掃描固定病毒碼的防毒軟體?碚f,無疑是一個嚴重的考驗!如Whale病毒依附於.COM檔時,幾乎無法找到相同的病毒碼,而Flip病毒則只有2byte的共同病毒碼(好像戴面具只剩兩個眼睛露出??。
(5)隱型病毒(StealthVirus):
隱型病毒又稱作中斷截取者(InterruptInterceptors)。顧名思義,它藉由控制DOS的中斷向量?碜屪鳂I系統以及防毒軟體誤認為所有的檔案都是乾淨的。隱型病毒是常駐型,會欺騙電腦系統,不知病毒存在或檔案已受破壞。
(6)新型態網路病毒
JAVA和ActiveX的執行方式,是把程式碼寫在網頁上,當你連上這個網站時,瀏覽器就把這些程式碼抓下?恚?会嵊檬褂谜咦约合到y裡的資源去執行它。可是如此一?恚?褂谜呔蜁?谏癫恢?聿挥X的狀態下,執行了一些?砺凡幻鞯某淌健;貧w到第一代病毒?砜矗?《臼羌纳?凇缚蓤绦械摹钩淌酱a中,伺機對系統進行破壞,因為病毒本身也就是一段「可執行的」程式碼而已。也因此,在以往病毒都是存在於「可執行檔」中,因為具有「可執行的」程式碼的檔案,就只有「可執行檔」。
但是,文件病毒的流行,讓人對這個定義有了疑問,而其??K不違背。因為所謂的文件病毒,也只是利用文件中巨集寫成的,而巨集本身也是「可執行的」程式碼,當然也能成為病毒的溫床囉!現在再?砜纯此?^的第二代病毒,它就是利用網頁編寫所用的JAVA或ActiveX這些語言。由這些語言可以寫出一些「可執行的」程式碼,而在使用者瀏覽網頁時,一?阆螺d下?碓谙到y裡執行。既然JAVA或ActiveX可寫成一些「可執行的」程式碼,那就沒什麼理由不能讓病毒藏身其中。
4.病毒防治
病毒碼掃描法
將新發現的病毒加以分析後,根據其特徵,編成病毒碼,加入資料庫中。以後每當執行掃毒程式時,便能立刻掃描程式檔案,?K作病毒碼比對,即能偵測到是否有病毒。病毒碼掃描法又快又有效率,大多數防毒軟體均採用這種方式,但其缺點是無法偵測到未知的新病毒及以變種病毒。
加總比對法(Check-sum)
根據每個程式的檔案名稱、大小、時間、日期及內容,加總為一個檢查碼,再將檢查碼附於程式的後面,或是將所有檢查碼放在同一個資料庫中,再利用此Check-sum系統,追蹤?K記錄每個程式的檢查碼是否遭更改,以判斷是否中毒。一個很簡單的例子就是,當您把車停下?碇?幔瑢⒗锍瘫淼臄底謱懴?怼D屈N下次您再開車時,只要比對一下里程表的數字,那麼您就可以斷定是否有人偷開了您的車子。這種技術可偵測到各式的病毒,但最大的缺點就是誤判斷高,且無法確認是哪種病毒感染的。對於隱形病毒,亦無法偵測到。
人工智慧陷阱(Rule-based)
人工智慧陷阱是一種監測電腦行為的常駐式掃描技術。它將所有病毒所產生的行為歸納起?恚?坏┌l現記憶體的程式有任何不當的行為,系統就會有所警覺,?K告知使用者。這種技術的優點是執行速度快、手續簡便,且可以偵測到各式病毒;其缺點就是程式設計難,且不容易考慮週全。不過在這千變萬化的病毒世界中,人工智慧陷阱掃描技術是一個至少具有保全功能的新觀點,以達到預防重於治療的目標。
軟體模擬掃描法
軟體模擬技術專門用?韺Ω抖嘈筒《?Polymorphic/MutationVirus)。多型病毒在每次傳染時,都以不同的隨機?y數加密於每個中毒的檔案中,傳統病毒碼比對的方式根本就無法找到這種病毒。軟體模擬技術則是成功地模擬CPU執行,在其設計的DOS虛擬機器(VirtualMachine)下假執行病毒的變體引擎解碼程式,安全?K確?地將多型體病毒解開,使其顯露原本的面目,再加以掃描。
VICE(VirusInstructionCodeEmulation)-先知掃描法
VICE先知掃描技術是繼軟體模擬後的一大技術上突破。既然軟體模擬可以建立一個保護模式下的DOS虛擬機器,模擬CPU動作?K假執行程式以解開變體引擎病毒,那麼應用?似的技術也可以用?矸治鲆话愠淌綑z查可疑的病毒碼。因此VICE將工程師用?砼袛喑淌绞欠裼胁《敬a存在的方法,分析歸納成專家系統知識庫,再利用軟體工程的模擬技術(SoftwareEmulation)假執行新的病毒,則可分析出新病毒碼對付以後的病毒。
即時的I/O掃描(RealtimeI/OScan)
RealtimeI/OScan的目的在於即時地對資料的輸入/輸出動作做病毒碼比對的動作,希望能夠在病毒尚未被執行之前,就能夠防堵下?怼@碚撋希?@樣的即時掃描程式雖然會影響到整體的資料傳輸速率,但是使用RealtimeI/Oscan,檔案傳送進?碇?幔?偷褥稈哌^了一次毒,整體?碚f,是沒有什麼差別的。
文件巨集病毒陷阱(MacroTrap)
MacroTrap是結合了病毒碼比對與人工智慧陷阱的技術,依病毒行為模式(Rulebase)?韨蓽y已知及未知的巨集病毒。其中,配合OLE2技術,可將巨集與文件分開,使得掃描速度變得飛快,而且更可有效地將巨集病毒?氐浊宄?
5.病毒碼及病毒掃瞄引擎
什麼是病毒碼(VirusPattern)?
所謂的病毒碼其?可以想像成是犯人的指紋,當防毒軟體公司收集到一隻新的病毒時,他們就會?倪@個病毒程式中截取一小段獨一無二而且足以表示這隻病毒的二進位程式碼(BinaryCode),?懋斪鰭叨境淌奖嬲J此病毒的依據,而這段獨一無二的二進位程式碼就是所謂的病毒碼。說到這裡又有人要問,什麼叫二進位程式碼呢?在電腦中所有可以執行的程式(如*.EXE,*.COM)幾乎都是由二進位程式碼所組成,也就是電腦的最基本語言--機械碼。就連當紅的文件巨集病毒,雖然它只是包含在Word文件檔案中的巨集,可是它的巨集程式也是以二進位碼的方式存在於Word文件檔中。
病毒碼是如何產生的?
上面提到病毒碼就是一小段二進位程式碼的組合,可是一個執行檔或是一個Word文件病毒要怎麼取得病毒碼?又如何才算是獨一無二的病毒碼呢?其?病毒碼必須依照各種不同格式的檔案及病毒感染的方式?砣〉谩Ee例?碇v,如果有一個Windows的程式被病毒染感,那麼我們就必須先研究出Windows檔案的格式,看看Windows檔案是怎麼被系統執行,以便找出Windows程式的進入點,因為病毒就是藏身在這個地方?砣〉每刂茩?K進行傳染及破壞,知道病毒程式在一個Windows檔案中所存在的位置之後,就可以?倪@個區域中?碚页鲆欢翁厥獾牟《敬a供掃毒程式使用。
在防毒軟體公司中都會有一組電腦功力高?姷娜耍瑢iT在為各種不?型的檔案或病毒抓病毒碼,可是當病毒愈?碛?啵??页雒恳浑b病毒都獨一無二的病毒碼可能就不太容易,有時後甚至這些病毒碼還會誤判到一些不是病毒的正常檔案,所以通常防毒軟體公司在將病毒碼送給客戶前都必須先經過一番嚴格的測試,比方說拿這些病毒碼去掃描前100大(Top100)軟體都不會造成任何誤判現象,而且都能偵測到所有的病毒才能出貨,經過這些手續之後一個病毒碼定義檔才算是真正完成,可放在Internet或BBS上供使用者自由Download。
何謂掃毒引擎(ScanEngine)?
掃毒引擎可以說是防毒軟體中最精華的部份。當您使用一套防毒軟體時,不論它的畫面是否精美,操作是否簡便,功能是否完善,這些其?都還不足以證明一套防毒軟體的好壞,事?上,當您操作防毒軟體去掃描某一個磁碟機或目錄時,它其?是把這個磁碟機或目錄下的檔案一一送進掃毒引擎?磉M行掃描,也就是說您所看到的漂亮畫面其?只是一個使用者介面(UI,UserInterface),真正影響掃描速度及偵測率的因素就是掃毒引擎,掃毒引擎是一個沒有畫面,沒有包裝的核心程式,它被放在防毒軟體所安裝的目錄之下,就好像汽車引擎平常是無法直接看見的,可是它卻是影響汽車性能最主要的關鍵。有了病毒碼,有了掃毒引擎,再配合一個精美的操作畫面,就成了市面上您所看到的防毒軟體。
為什麼要更新掃瞄引擎和病毒碼?
在一開始提到過絕大多數的人都以為安裝了一套防毒軟體之後,就可以?拇烁哒頍o憂,這是一個絕對錯誤的觀念,因為病毒的種?及型態一直在改變,新病毒也每天不斷的被產生,如果不經常更換最新的病毒碼以及掃瞄引擎,再?姾返姆蓝拒涹w也會有失靈的一天。舉個最明顯的例子?碚f,在還沒有出現巨集病毒以前,全世界沒有任何一家防毒軟體?S商支援巨集病毒掃描能力,當然如果您還在沿用數年前的防毒軟體,就無法偵測到巨集病毒了,所以您必須使用能掃到到巨集病毒的病毒碼及支援巨集病毒的掃毒瞄引擎。
若只單單更換病毒碼或掃毒引擎還是不夠的,因為舊的病毒碼檔可能還沒加入巨集病毒的病毒碼,或者是舊的掃毒引擎跟本還沒支援文件檔的掃毒,因此這樣的組合還是沒辦法發揮防毒的效果。病毒碼和掃毒引擎是防毒工作中相當重要的一環,目前一些比較大的防毒軟體?S商都有將病毒碼及掃毒引擎放在網站上供人免費下載,請記得定期更新防毒元件(病毒碼及掃瞄引擎)。
6.判斷電腦是否中毒的簡易方法,
其?電腦少根筋時,是有跡可尋的,由於電腦病毒會影響電腦系統,所以,當使用者發現使用的電腦有下列狀況時,應該要考慮是否有病毒感染的問題:
(1)檔案長度、日期改變:一般套裝軟體執行檔的時間,應該都是該產品的出?S日期,如果檔案的時間無緣無故變成系統時間時,或是檔案長度和原先的不一樣時,這表示檔案內容曾經被更改過,電腦很有可能被病毒感染了。
(2)系統執行速度下降:覺得電腦執行速度越?碓铰??蚴窍到y載入執行檔的時間越?碓介L時,可能是因為電腦中毒了。一般常駐型的電腦病毒在常駐記憶體後,會?姄孋PU的時間及記憶體空間,而非常駐型電腦病毒則會在寄主程式被載入系統的那一剎那間,伺機感染3~5個檔案,這兩種行為,都會造成系統執行速度變慢。
(3)檔案無故消失、I/O動作改變:有些病毒會刪除檔案,造成檔案無故的消失;另有些病毒會使得列印失效、DIR不同的軟碟卻得到相同的內容...等I/O動作的改變,造成電腦使用的阻礙。
(4)奇怪的錯誤?息、演奏美妙音樂:當螢幕上好端端的突然出現一些?息,如:"TodayisSunday!Whydoyouworksohard?...."、或是螢幕上出現了一堆鬼臉符號或字不斷的往下墜落、或是電腦突然演奏起美妙音樂、或是出現"釣魚台是中華民國領土…."等,這些都是病毒所為。
(5)系統經常無故當機:有些病毒如"Crash","512","Datacrime"等,都會造成系統當機,所以,當使用者感覺到電腦常常當機時,除了懷疑硬體問題外,還應當考慮到病毒的問題。根據一些電腦維修中心的人員透露:大約一半以上送?S維修的電腦,都是病毒的問題,所以,如有上述現象時,不妨先用掃毒程式檢查一下,以減少額外的維修費。
7.日常防毒保健
電腦病毒的傳染途?剑?饕?墙浻纱牌?開機型病毒)與檔案(檔案型病毒)兩種媒介傳播,因此,要防止電腦中毒,除非是該台電腦完全不和其它電腦有磁片或檔案的交換,否則就無法保證不中毒了,但事?上,誰都無法作如此的保證。
(A)避免使用盜版軟體
(B)?量用硬碟開機,如無硬碟,則開機磁片要記得貼上防寫貼紙
(C)要裝置真正有效的防毒軟體(如Norton-Antivirus、PC-cillin),以達到預防重於治療的目的。
(D)開啟Email附件或至Internet下載檔案時,要先用防毒軟體所附之掃毒程式檢查過,才可放入硬碟內(一般防毒軟體會提供即時偵測)。
(E)定期更新病毒碼,啟動防毒軟體掃瞄整個電腦系統。
(F)養成每日備份資料。