防毒軟件是如何防毒的? (4之3)
撰文: Frank Wong - 專業網絡教學導師
上回簡單說明了電腦病毒的3種分類,分別為木馬 / 蠕蟲 / 巨集。雖然電腦病毒千變萬化,但只要安裝防毒軟件,可將感染電腦病毒的機會降低百分之九十九。本文將會淺談防毒軟件是如何消滅電腦病毒。
防毒軟件消滅電腦病毒的方法十分單純,可大致上分為3個步驟:
取得病毒數據庫。當防毒軟件開始殺毒程序,會先到其防毒軟件生產商的電腦病毒數據庫中取得目前世界上已知的所有病毒特徵碼。
掃描電腦記憶體上的程式和檔案。取得所有病毒特徵碼後,便會展開掃描程序,將電腦記憶體上的程式和檔案原碼與病毒特徵碼作出對比 (這步驟稱為查殼),如對比後發現出與病毒特徵碼相似的原碼,那代表該程式或檔案有很大機會已受病毒感染。
清除發現病毒的程式或檔案。掃描後,防毒軟件會列出懷疑被感染的程式或檔案,並以與病毒特徵碼的相似程度排出風險類別,並建議使用者將有關程式或檔案刪除。只有將有關程式或檔案刪除,才算是成功清除電腦病毒。 美國的Norton Antivirus、McAfee、PC-cillin,俄羅斯的Kaspersky Anti-Virus,斯洛伐克的NOD32等防毒軟件在國際上口碑較好,但殺毒、查殼能力都有限,目前病毒庫總數量也都僅在數十萬個左右。因此防毒軟件並不能完全封殺所有電腦病毒。
避過防毒軟件查殺的免殺技術
道高一尺魔高一丈,駭客總能想出能夠避過防毒軟件查殺的方法,我們稱這類技術為免殺技術。防毒軟件最大的漏洞是它不能主動判斷某程式是否有病毒程式,而是依靠與電腦病毒數據庫中已知痛毒的特徵碼進行對比而已。即是說,如果某新型電腦病毒感染了電腦後,該電腦的使用者又沒有通報給防毒軟件公司,那麼防毒軟件便不可能偵測出該新型電腦病毒。這些不能被防毒軟件偵測出來的電腦病毒,稱為免殺病毒。
通常病毒剛從病毒作者手中傳播出去前,本身就是免殺的,或可以說「病毒比防毒軟體還新,所以防毒軟體根本無法識別它是病毒」,但由於傳播後部份用戶中毒,用戶再向防毒軟件公司舉報,就會引起公司的注意並將之特徵碼收錄到自己的病毒庫當中,病毒就會被防毒軟體所識別。
但是,病毒作者可以通過對病毒進行再次保護,如使用彙編加花指令或者給文件加殼就可以輕易躲過防毒軟體的病毒特徵碼庫偵測,而免於被防毒軟件查殺。簡單地說,病毒作者幫病毒易容,改變其特徵碼編寫方式,從而讓防毒軟件無法進行對比。自我更新性是近年來電腦病毒的又一新特徵,即是病毒不用依靠作者進行易容,而是自己幫自己易容。自我更新性的電腦病毒可以藉助網路進行變種更新,得到最新的免殺版本的病毒會因為防毒軟件無法識別,繼而可在感染了的電腦上運行。( 隨機加密、多態及隱蔽也是免殺技術的手段之一,但在此不多論綴。)
除了自身免殺及自我更新之外,還有駭客設計出來專門對付防毒軟件的電腦病毒。這種電腦病毒一旦被執行,便會自動破壞電腦上所安裝的防毒軟件。其破壞防毒軟件的方法包括對防毒軟件發出「檢查已完成」等假指令,讓防毒軟件誤以為殺毒程序已完成,自行結束殺毒程序;又或者病毒透過主動修改系統時間,導致一些防毒軟件廠商的正版認證作廢以致防毒軟件作廢。
免殺技術的氾濫使得同一種原型病毒理論上可以衍生出近乎無窮無盡的變種,給主要依靠與特徵碼進行對比的防毒軟件帶來很大困擾。近年來,國際反病毒行業普遍開展了各種前瞻性技術研究,試圖扭轉過分依賴特徵碼所產生的不利局面。目前比較有代表性的是基於虛擬機技術的啟發式掃瞄軟體,代表廠商有NOD32,和基於行為分析技術的主動防毒軟件,代表廠商有中國的微點防毒軟件等。
雖然防毒軟件並非萬能,但相比起沒有安裝防毒軟件的電腦,安裝了防毒軟件的電腦還是好太多了!下回,我們將會探討禦防電腦病毒的措施和注意事項。
(完)
_____________________
關於KidsCode
KidsCode IT Education Centre which is the pionner of Kids Coding Education, provides kids code / kids coding / kids programming services.
Sponsored by Each Online