病毒攻擊已確實成為 IT 安全性的頭號威脅。 它們不僅導致財務損失,更帶來其他種種的安全性威脅,例如機密資訊竊盜與針對敏感性資料的未授權存取。 為因應此等威脅,防毒業界推出許多新方法,用以保護 IT 基礎建設 - 舉少數為例,包括免疫技術、疫情爆發時的緊急更新、更加頻繁的防毒資料庫更新等。本文件屬於一系列文章中首先公佈者,將就防毒公司所採用的最新技術提供更進一步的資訊,並協助使用者更客觀地判斷這些技術的有效程度。 在本文章中,我們將專注於免疫技術。
病毒攻擊造成巨大的損失,與此具備相同嚴重性的,則是惡意程式碼的種類數量正加速成長。 在 2005 年,惡意程式數量呈現爆炸性的成長:據卡巴斯基實驗室統計,截至該年底為止,每月偵測到的平均病毒數量已達 6,368 種。 與上一年度的 93% 比較起來,年度整體成長率高達 117%。
同樣的,威脅本身的本質業已改變。 惡意程式不但變得更多,也變得比以前更加危險。 為回應此種挑戰,防毒業界採用一連串的新防毒方法,包括免疫技術、更快速地回應可能爆發疫情的新威脅,以及更加頻繁地更新防毒資料庫。 本文章提供免疫防護的詳盡分析,免疫防護常被廠商宣稱為對抗所有現存,甚至是未來病毒的萬靈丹。
免疫技術概論
當代防毒產品使用兩種主要方法偵測惡意程式碼 - 以病毒碼為基準的分析,與免疫式/探索式分析。 第一種方法相當簡單:將使用者電腦上的物件與已知病毒的範本 (例如病毒碼) 作比較。 此種技術牽涉到新型惡意程式的持續追蹤,並根據其性質建檔,包含於病毒碼資料庫中。 因此,防毒公司應擁有追蹤及分析惡意程式碼的有效服務 (亦即防毒實驗室)。 評估病毒碼方法有效程度的主要標準,包括新威脅的回應時間、更新頻率及偵測率。
以病毒碼為基準的方法有幾項明顯的缺點。 主要的缺點是在對應新威脅上會出現延遲。 病毒的出現與病毒碼釋出之間,必定存有延遲時間。 而當代的病毒可以在非常短的時間內感染數百萬台電腦。
因此,免疫式/探索式的病毒偵測方法逐漸普及。 免疫式方法不需要釋出病毒碼。 相對的,防毒程式會分析掃描到的物件程式碼,及/或啟動的應用程式行為,並根據預先設定的規則,判定軟體是否為惡意軟體。
理論上,此種技術可用於偵測未知的惡意程式,因此許多防毒軟體開發者爭先恐後地宣傳免疫方法是對付新興惡意軟體的萬靈丹。 但事實不然。 如果要評估免疫式方法的有效程度,以及其是否可獨立於以病毒碼為基準的方法之外單獨使用,我們必須先了解免疫式技術所根據的原理。
免疫防護可透過數種方法達成。 在此我們將探討其中兩種最普遍的方式:啟發式分析器與行為攔截工具。
啟發式分析
啟發式分析器是分析物件程式碼的程式,使用間接方式判定物件是否具惡意。 不同於以病毒碼為基準的方法,啟發式分析器可以偵測出已知和未知的病毒 (亦即在啟發式分析器寫成之後才問世的病毒)。
分析器通常會先由掃描程式碼開始,尋找具備惡意程式特徵的可疑屬性 (命令)。 此方法稱為靜態分析。 舉例說明,許多惡意程式會搜尋執行檔,然後開啟找到的檔案並加以修改。 啟發式分析器檢視應用程式之程式碼,並在找到可疑命令時增加該應用程式的「可疑指數」。 若檢查完全部程式碼後的指數值超過預設的標準,該物件即歸類為可疑物件。
此方法的優勢包括便於實施,以及具備高效能。 然而,此方法對新型惡意程式碼的偵測率較低,而誤判率也較高。
因此,在目前的防毒程式中,靜態分析會與動態分析並用。 此種綜合型方式背後的概念,是讓應用程式實際於使用者電腦上執行前,先在安全的虛擬環境 (又稱模擬緩衝區或「沙盤」) 中進行模擬 。 在廠商的行銷資料中,亦稱作 - 「虛擬 PC 模擬」。
動態啟發式分析器會將應用程式的程式碼部份複製到防毒程式的模擬緩衝區中,並使用特別的「技巧」模擬其執行。 若在此「模擬執行」中偵測到可疑的動作,該物件將歸類為惡意物件,且該物件於電腦上執行時將遭封鎖。
由於以動態方法為基準的分析須使用受到保護的虛擬環境,此方法因而比靜態方法需要更多的系統資源,而應用程式在電腦上執行時也將因為完成分析所需的時間量而造成若干延遲。 然而,比起靜態方法,動態方法提供較高的惡意軟體偵測率,誤判率也較低。
防毒產品使用啟發式分析器已有相當之歷史,因此,目前所有防毒解決方案所採用的啟發式分析器,或多或少都是較為進階的版本。
行為攔截工具
行為攔截工具是在應用程式執行時分析其行為,並封鎖任何危險活動的程式。 不同於在模擬模式中追蹤可疑動作的 (動態) 啟發式分析器,行為攔截工具乃是在實際的環境中作業。
第一代行為攔截工具並不太成熟。 每當偵測到潛在危險的動作時,使用者便收到提示,詢問是否封鎖該動作。 雖然此種方法在許多場合中有效,但正常的程式有時也會執行「可疑」的動作 (包括作業系統本身),而未必熟悉此類過程的使用者,常無法理解系統的提示。
新一代的行為攔截工具分析的對象是一連串的作業,而非個別的動作。 這代表在判定應用程式行為是否具危險性時,根據的是更加純熟的分析。 如此有助於大幅減少系統提示的出現次數,並增加偵測惡意軟體的可靠度。
如今的行為攔截工具可監控系統中各式各樣的事件。 其主要目的在於控制危險的活動 - 亦即分析所有執行於系統中的處理程序行為,並將所有對檔案系統與登錄檔作出的變更作為資訊儲存。 若應用程式執行危險的動作,使用者會收到警示,指出處理程序帶有危險性。 封鎖工具亦可攔截任何意圖將程式碼注入其他處理程序的行為。 此外,封鎖工具可偵測到 Rootkit - 此種程式會隱藏惡意程式碼對檔案、資料夾與註冊機碼的存取,並導致使用者無法發現程式、系統、服務、驅動程式與網路連線。
行為攔截工具另一項特別值得一提的功能,便是其控制應用程式與 Microsoft Windows 系統登錄檔完整性的能力。 就後者而言,封鎖工具會監控針對註冊機碼所進行的變更,並可定義不同應用程式對註冊機碼的存取權限規則。 因此便可在偵測到系統中危險的活動,或甚至當未知的程式執行惡意活動後,回復變更,藉以還原系統至感染前的狀態。
不同於現代防毒程式普遍使用的啟發式分析器,行為攔截工具較為少見。 包括於卡巴斯基實驗室產品中的 Proactive Defense Module (免疫防護模組) 便是有效的新世代行為攔截工具之其中一例。
該模組包含上述所有功能,以及同樣重要的,一套便利的系統,可通知使用者任何與偵測到的可疑動作有關的危險性。 任何行為封鎖器都需要使用者某種程度的輸入;因此使用者也必須具備相當之能力。 實際上,使用者通常不具所需之知識,因此資訊支援 (實際說來,應是決策支援) 是任何當代防毒解決方案皆不可或缺的一部份。
總結上述的討論,行為攔截工具可預防已知及未知 (亦即在封鎖工具開發完畢以後才寫成的) 病毒擴散,這是此類防護方式無庸置疑的優勢。 但另一方面,即使是最新世代的行為攔截工具也有重要的缺點:部份正常程式的動作可能遭辨識為可疑動作。 此外,決定應用程式是否具惡意,尚需要使用者輸入,這代表使用者必須具備足夠的知識。
免疫防護與軟體缺陷
部份防毒廠商在其廣告與行銷資料中加入聲明,表示免疫/探索防護是針對新威脅的萬靈丹,不需更新,因此隨時可以封鎖攻擊,甚至可以對付尚未存在的病毒。 更甚者,在手冊與資料單中,不但常把這類的宣稱套用到利用已知弱點的威脅上,更包括了所謂的「零時差」攻擊。 換句話說,根據這些廠商所言,他們的免疫技術甚至可以封鎖利用應用程式中未知缺陷 (尚未有修補檔) 的惡意程式碼。
不幸的是,這些宣傳資料的作者若不是有意欺騙,便是根本還不太了解此技術。 具體而言,與惡意程式碼對抗的戰爭可說是病毒寫作者與自動化方法 (免疫/探索) 間的戰爭。 在實際生活中,則是人與人之間的戰鬥 - 病毒寫作者對抗防毒專家。
上述之免疫防護方法 (啟發式分析器與行為攔截工具) 乃植基於與惡意程式典型可疑動作相關的「知識」。 然而,這套「知識」(亦即一組與行為有關的規則) 原是防毒專家藉由分析已知病毒行為所取得,並輸入程式中。 因而,針對那些在規則開發完畢以後才問世,使用全新方法滲透並感染電腦系統的惡意程式碼而言,免疫技術可說是無用武之地 - 這就是零時差威脅的真相。 此外,病毒寫作者不斷努力找出新方法,藉以避開現存防毒系統使用的行為規則,如此終將導致免疫方法的有效性大打折扣。
防毒開發者別無選擇,只能更新他們的行為規則,並升級啟發式分析器,以因應新威脅的崛起。 比起病毒碼 (程式碼範本) 的更新頻率,此類更新在頻率上當然不會那樣頻繁,但仍需定期執行。 隨著新威脅的數量增加,這類更新的頻率也將無可避免地隨之上升。 因而,免疫防護將發展為病毒碼方法的一系分支,只不過它所根據的並非程式碼模式,而是「行為」。
部份防毒廠商向使用者隱瞞更新免疫防護的需求,事實上就是在欺騙其企業與個人客戶以及媒體。 結果導致大眾在免疫防護技術的能力方面擁有不太正確的概念。
免疫 vs. 病毒碼方法
儘管有其缺陷,免疫式方法的確能在相關病毒碼發行前偵測到部份威脅。 以防毒解決方案針對稱為 Email-Worm.Win32.Nyxem.e (Nyxem) 的蠕蟲,所採取的因應之道為例。
Nyxem 蠕蟲 (亦稱 Blackmal、BlackWorm、MyWife、Kama Sutra、Grew 及 CME-24) 可在使用者開啟內含色情圖片、色情網站或檔案連結 (存於公開網路資源上) 的電子郵件附件時滲透電腦。 病毒只需極短時間便能刪除硬碟中的資訊。 影響所及的檔案格式多達 11 種 (包括 Microsoft Word、Excel、PowerPoint、Access、Adobe Acrobat)。 病毒會以無意義的字元組覆寫一切有用的資訊。 Nyxem 另外一項重要特徵是只在每個月的三號發作。
整體而言,有八種防毒產品使用免疫式方法偵測到 Nyxem。 然而這代表免疫技術可以取代「傳統」的病毒碼方法嗎? 當然不能。 為了證明其有效性,免疫防護有效性之分析應根據大量病毒的測試結果,而非個別病毒,無論其惡名昭彰之程度為何。
Andreas Clementi (www.av-comparatives.org) 根據大量病毒資料分析防毒產品所使用的免疫式方法,而他也是這方面少數受到公認的獨立研究人員之一。 為找出哪種防毒程式能夠偵測到尚未存在的威脅,可利用最近出現的病毒測試解決方案,例如三個月內的病毒。 當然,防毒程式必須執行三個月以前發行的病毒碼資料庫,這樣一來它們所面對的便是「未知」的威脅。 Andreas Clementi 關注的是此類測試的結果。
根據 2005 年所進行的測試結果,Eset、Kaspersky Anti-Virus 與 Bitdefender 解決方案所使用的啟發式分析器最為有效。
在此應註明,啟發式分析器所展現出的高偵測率亦有其負面影響:誤判率同樣很高。 為使作業正常,防毒程式應在偵測率與誤判率間取得平衡。 對於行為攔截工具而言,亦是如此。
由 AV-comparatives.org 與 AV-Test.org 所進行的分析結果,確實說明了單獨使用免疫式方法無法提供必要的偵測率。 防毒廠商非常清楚這一點,因此無論他們將免疫技術說得如何天花亂墜,仍持續在他們的解決方案中使用傳統的病毒碼偵測方法。 純免疫式解決方案的開發廠商 (Finjan、StarForce Safe'n'Sec) 必須由協力廠商處購買「傳統」病毒碼技術的授權,以使用於他們的產品中,在在說明了這點。
以病毒碼為基準的方法當然也有其缺點,但截至目前為止,防毒業界仍無法提出任何可取代此一傳統方法的手段。 因此,衡量防毒解決方案有效性的主要標準,仍將包括免疫式防護的品質,以及面對新病毒威脅的反應時間 (將相關病毒碼加入資料庫中,並將更新傳送給使用者)。
下列資訊是領先的防毒廠商所展示,於 2005 年間針對主要防毒威脅的平均反應時間。Magdeburg 大學研究團隊 (AV-Test.org) 分析開發者發行相關病毒碼更新的時間。 分析涵蓋 2005 年最常見 16 種蠕蟲的不同變形,包括 Bagle、Bobax、Bropia、Fatso、Kelvir、Mydoom、Mytob、Sober 與 Wurmark。
總結
上述討論可歸納出幾點重要的結論。 首先,對抗惡意程式的免疫式方法是防毒業界針對在數量以及擴散速度上不斷成長的新型惡意軟體所作出的反應。 現存的免疫式方法的確有助於對抗許多新威脅,但是免疫技術可取代定期更新作為防毒保護的概念是錯誤的。 事實上,免疫式方法與病毒碼方法同樣需要更新。
現存的免疫技術本身不足以確保高惡意程式偵測率。 此外,在這類案例中,較高的偵測率也伴隨著較高的誤判率。 在此情況下,面對新威脅的反應時間仍是衡量防毒程式有效性的明確標準。
為了達成最佳的防毒保護,免疫式與病毒碼方法應該一併使用,因為最高的偵測率只能藉由結合此兩種方法而達成。 下圖顯示由 Andreas Clementi (www.av-comparatives.org) 所進行的測試結果,該測試判定整體 (病毒碼 + 啟發式分析器) 惡意程式偵測等級。 在測試中表現良好的程式,其間差距看來也許很小。 但是請記得,這項測試運用 240,000
熱門新聞
2026-01-19
2026-01-20
2026-01-20
2026-01-16
2026-01-19
2026-01-20