close
**這篇文章是發表在今年三月資安人雜誌**

為什麼我要寫「如何測試與選擇防毒軟體和反間諜軟體」這篇文章呢?其實,最主要的目的是要向各位說明國外的測試機構或資安雜誌如何測試或評比防毒軟體和反間諜軟體,以及比較國外與國內的測試機構 (Malware-Test Lab) 對防毒軟體和反間諜軟體的測試方法有何差異。如果各位了解這些內容,想必對各位在選擇防毒軟體和反間諜軟體有莫大的幫助。

測試方法有哪些

一般在對防毒軟體和反間諜軟體的測試上,可分為軟體和硬體兩部份;軟體部分可分為用戶端、伺服器端、閘道端等等,硬體部分可分為用戶端、閘道端、電信用戶端等等。測試方法大概有下列幾種:

一、即時掃描測試 (On-Access Scan)

  • 大部分的防毒軟體都有即時掃描,當對檔案進行存取時,它們就會發生作用,而且,它們都是實作在系統核心模式 (Kernel Mode)下。這個測試主要是在測試防毒軟體是否可以即時偵測到入侵的病毒樣本。

  • 幾乎所有的間諜軟體都有即時防護,但與防毒軟體的即時掃描有極大的差異,因為反間諜軟體的即時防護是行為偵測或監控 (Behavior-Based Detection or Monitor)。當執行一個檔案時,系統發生改變 (如檔案、註冊碼等等),反間諜軟體會彈出一個視窗警告使用者是否允許或拒絕改變,決定權在於使用者。反間諜軟體的即時防護都是實作在系統使用者模式 (User Mode),如果間諜軟體執行的夠快的話,間諜軟體是極可能可以成功地感染系統。

  • 對防毒軟體而言,大部分的測試機構都會做這項測試,因為只要有樣本即可做此項測試,但對間諜軟體而言,大部分的測試機構都不會做此項測試,因為它們即時防護應該都偵測不到。


二、手動掃描測試 (On-Demand Scan)




  • 所有的防毒軟體手動掃描測試都是針對檔案。這個測試是將病毒樣本放置在某個檔案夾,然後,開啟防毒軟體針對那個檔案夾進行掃描,等待掃描完成之後,再計算多少檔案被偵測為病毒。事實上,即時掃描與手動掃描的測試結果必須一致,否則,就必須檢查是測試有問題,還是防毒軟體有問題。

  • 反間諜軟體手動掃描測試比較特別,它可以針對檔案、註冊碼、Cookies等進行掃描,所以,做起來比較麻煩,大部分的測試機構還是針對檔案進行測試。

  • 大部分的測試機構都會做此項測試,因為只要有樣本即可。


三、啟發式掃描測試 (Heuristic Scan)




  • 防毒軟體掃瞄引擎幾乎都有一個處理器的模擬器,會根據一些規則來判斷是否為惡意程式,但有些正常的軟體也會有這些規則,因此,導致誤判,所以,這項測試都會與誤判掃描測試一起進行。這個測試主要是要測試防毒軟體對未知病毒的偵測能力。

  • 反間諜軟體幾乎都沒有此項功能。

  • 對防毒軟體而言,大部分測試機構都不會做此項測試,最主要原因是此項測試需要花費比較長的時間,而且,也必須對防毒軟體引擎有相當了解的人才有能力做此項測試。對反間諜軟體而言,則不需做此項測試。


四、誤判掃描測試 (False-Positive Scan)




  • 防毒軟體引擎是依據病毒庫的病毒特徵來做比對,如果在病毒庫找到此項特徵,就視為病毒,但有時候病毒特徵設計不好,就會產生將正常檔案視為病毒的情形,這就稱為誤判。這個測試主要是測試防毒軟體的可靠度,通常會與啟發式掃描一起做測試。

  • 大部分的測試機構都不會做此項測試。


五、檔案清除測試 (File-Clean Test)




  • 有些病毒會感染系統的正常檔案,必須將這些受感染的檔案收集起來,再使用防毒軟體引擎對其做清除的動作,然後,檢查清除的檔案是否還包含惡意程式碼以及是否能正常的開啟。這個測試主要是在測試防毒軟體引擎對受感染檔案的清除能力。

  • 大部分防毒軟體引擎都支援此項功能,但大部分的反間諜軟體都不支援此項功能,不過,它們藉著加入防毒軟體引擎達成此項功能。

  • 對防毒軟體而言,大部分的測試機構不會做此項測試,因為需要花費大量時間,而且,還必須要有分析病毒的能力。對反間諜軟體而言,都沒有做此項測試,因為以前的間諜軟體都不會感染系統檔案,不過,現在有些間諜軟體則會感染系統檔案。


六、系統清除測試 (System-Clean Test)




  • 在執行病毒或間諜軟體檔案之後,大部分的病毒會建立或修改系統的執行程序、檔案、註冊碼等地方,所以,防毒軟體引擎必須針對這些行為進行修復動作。這個測試主要是在測試防毒軟體引擎對已感染的系統的清除能力。有時候防毒軟體或反間諜軟體會刪掉一些不該刪除的檔案或註冊碼,所以,必須特別小心。

  • 所有的反間諜軟體都支援此項功能。

  • 對防毒軟體而言,大部分都沒有整合此項功能。防毒軟體廠商是根據病毒熱門程度,單獨提供修復程式。對反間諜軟體而言,只有少數的測試機構會做此項測試,因為必須要有相當的技術能力,才能做此項測試,而且,需要花費大量時間。為了節省時間,有些測試機構沒有實際安裝樣本,不過,這樣的測試結果就不能算是公正。


七、穩定度測試 (Stability Test)




  • 大部分的防毒軟體都有驅動程式 (Driver),有時候會因為某些因素造成系統不太穩定,對於反間諜軟體來說,以前大部分都沒有驅動程式,但因為為了有效攔截間諜軟體或惡意程式,現在已經有越來越多的趨勢。這個測試主要是在測試當使用防毒軟體或反間諜軟體時,系統是否會常常當機或不穩定。

  • 大部分的測試機構都不會做此項測試。


八、壓力測試 (Stress Test)




  • 當系統在高度缺乏資源 (如很高的處理器使用量等) 下所做的測試。這個測試主要是在測試防毒軟體或反間諜軟體是否會有異常狀況。

  • 大部分的測試機構都不會做此項測試。


九、效能測試 (Performance Test)




  • 這個測試主要是在測試防毒軟體或反間諜軟體是否會對系統產生效能瓶頸。有些防毒軟體或反間諜軟體掃瞄速度非常的慢,有時候會拖垮系統效能,以致影響其他的應用程式執行。

  • 大部分的測試機構都不會做此項測試。


十、記憶體使用量測試 (Memory-Usage Test)




  • 這個測試主要是在測試防毒軟體或反間諜軟體是否會使用大量記憶體。有些防毒軟體或反間諜軟體會使用大量記憶體,以至於系統其他應用程式無法取的足夠的記憶體或是影響系統效能。

  • 大部分的測試機構都不會做此項測試。


十一、硬碟使用量測試 (Disk-Usage Test)




  • 這個測試主要是在測試防毒軟體或反間諜軟體是否會使用大量的硬碟空間。

  • 大部分的測試機構都不會做此項測試。


十二、反安裝測試 (Uninstallation Test)




  • 這個測試主要是在測試防毒軟體或反間諜軟體是否能完全反安裝。有些防毒軟體或反間諜軟體在反安裝之後,常常會殘留一些檔案或程式在系統裡,因而,出現一些奇怪的問題。


國外測試機構會做哪些測試項目

國外比較有名的測試組織 (如AV-Test, Virus Bulletin, ICSALabs, The NSS Group, CheckVir, WestCoast Labs, AV-Comparatives等) 或資安雜誌 (如PC Magazine, CNET, SC Magazine等) 在做防毒軟體或反間諜軟體評比時,大部分都侷限在對病毒或間諜軟體樣本的偵測率 (Detection Rate) 或對產品的使用者介面 (User Interface) 上做比較,很少會做其他的測試項目。最主要的原因是無利可圖、需要花費大量時間及人力和需要有相當的技術能力。然而,這些測試機構最常接受廠商的委託,針對它們的產品進行私下測試與評估。

國內 Malware-Test Lab 會做哪些測試項目

如果有足夠的資源,國內的 Malware-Test Lab 會對前面所列的各個項目進行測試,但也接受廠商私下委託進行產品的測試與評估。

不為人知的一面

不曉得各位有沒有發現一個現象,大部分的測試機構都只會公佈一個百分比的數字,如K牌防毒軟體偵測率為99%,S牌防毒軟體偵測率為90%,T牌防毒軟體偵測率為70%等,而不會公佈其他詳細的資訊。測試評比講求是別人也可以經由你所提供的資訊來驗證測試結果,但很不幸的是我們無法從這些測試機構所公佈的資訊來驗證他們所做的測試結果。Malware-Test Lab 秉持分享經驗與技術的理念,將這些測試數據公開,讓有心想知道這方面資訊的人,能得到詳細且精確的資訊。

防毒軟體與反間諜軟體測後感想

從防毒軟體的測試中,本人觀察到下列一些現象:

  • 關於掃描速度,有些防毒軟體非常快就完成掃描工作,有些則花費非常久的時間。例如,有十萬隻病毒檔案,有些防毒軟體只需花費一到二個小時左右就能完成掃描,有些則需花費二十四小時左右才能完成,差異非常的大。本人認為這可能與啟發性掃描 (Heuristic Scan) 有關。

  • 關於啟發式掃描,有些防毒軟體的誤判率很高,不過,需要進一步測試。

  • 關於即時掃描,大部分防毒軟體只針對檔案,其他的如註冊碼等就不管了,導致無法有效防禦未知病毒。

  • 關於加殼程式 (Packer Program),其主要的功能就是透過某些方法將一個較大的檔案壓縮成較小的檔案,而且,當執行壓縮過的檔案,會直接被載入記憶體中執行,而不會先將檔案解壓縮暫存於硬碟中。很多病毒樣本其實是同一隻病毒,但它被很多不同的加殼程式壓縮過,導致很多防毒軟體無法偵測它。大部分防毒軟體對於加殼的病毒,其偵測率皆很低。

  • 關於效能問題,很多系統在安裝某些防毒軟體之後,效能很明顯下降許多。大部份原因是佔用太多系統資源,導致其他應用程式無法獲得系統資源。

  • 關於系統清除,大部分的防毒軟體都不直接支援此項功能,而是發生中毒現象後,才可能提供修復程式給使用者。

  • 關於反安裝問題,很多防毒軟體反安裝之後,都會殘留一些檔案於系統中,無法完全移除。


從反間諜軟體的測試中,本人發覺到有下列的情形:

  • 關於間諜軟體清除問題,大部分的反間諜軟體都不是很好,最好的大概也只有百分之八十左右。

  • 關於註冊碼誤判問題,它們不像檔案,可以檢查其內容,所以,大部分反間諜軟體常常會把正確的註冊碼當成不正常的註冊碼,導致系統產生不穩定現象。

  • 關於檔案辨識問題,因為大部分的反間諜軟體都是用MD5的演算法對整個檔案進行掃描,但間諜軟體的作者知道這點,所以,常常會對檔案內容作手腳,導致反間諜軟體很難以偵測它們。

  • 關於註冊碼辨識問題,因為大部分的反間諜軟體都是用常規表示法 (Regular Express) 來做比對,間諜軟體常常隨意產生一些註冊碼,而且,每次都不相同,導致反間諜軟體很難偵測它們。

  • 關於自動更新問題,很多間諜軟體都有此功能,常常做自我更新,導致反間諜軟體很難偵測及清除它們。

  • 關於即時防護問題,大部分的反間諜軟體都是實作在使用者模式 (User Mode), 有時候間諜軟體已經執行完畢後,反間諜軟體才顯示警告視窗,其實,間諜軟體已經感染系統了。


防毒軟體與反間諜軟體的差異性

有很多人搞不太清楚到底防毒軟體與反間諜軟體有何差異?下列就簡單地說明它們的不同處:

  • 如果有即時防護存在,一個作業系統只能安裝一套防毒軟體 (Windows XP SP2以後,微軟提出了一個 Mini Filter架構,允許安裝多個防毒軟體),但可以安裝多套反間諜軟體,主要原因是防毒軟體的即時防護是實作在核心模式 (Kernel Mode)以監控檔案的存取動作,如果同時安裝其他的防毒軟體,可能會造成系統死當 (Deadlock)、不穩定或競爭條件 (Race Condition) ,但大部分的反間諜軟體是實作在使用者模式 (User Mode),即使發生問題,也不致影響系統運作。

  • 大部分的防毒軟體都是依賴特徵碼對檔案進行偵測,然後,採取刪除或隔離動作,但大部分間諜軟體是對整個系統做清除的動作,差別在於間諜軟體已經感染系統,然後,才執行清除動作。

  • 防毒軟體的即時防護是對整個檔案系統的存取動作進行掃描,但反間諜軟體的即時防護是對局部的系統做監控動作,無法保護整個系統。


防毒軟體與反間諜軟體的結合

由於病毒與間諜軟體的分野已經越來越模糊了,而且,安全威脅的整合是資安軟體未來趨勢,所以,未來的防毒軟體與反間諜軟體勢必相互整合,以創造市場競爭優勢,否則,只能等待奇蹟的出現。

如何選擇防毒軟體與反間諜軟體

很多人會問這個問題,但如果你對一些病毒或間諜軟體所使用的技術不了解的話,不太可能會選擇到適合你的產品,很多廠商是不會告訴你這麼詳細的資訊,只要買他們產品,其他的就交給他們處理,不是這樣嗎?下面就概略地說明如何選擇防毒軟體與反間諜軟體:

  • 選擇售後服務好的廠商,否則,有時候發生問題,還不知要找誰來解決。

  • 對可疑檔案、未知病毒或間諜軟體,選擇反應時間與解決問題快的廠商,否則,別的防毒軟體或反間諜軟體已經可以偵測到了,你還在癡癡的等待。

  • 選擇偵測率較高的產品。各位要知道一個觀念,現在的測試機構都是針對已知病毒或間諜軟體去做測試,但未知的東西遠大於已知的東西。

  • 選擇防護力較佳的產品,不過,各位很難去評估,如果有經費的話,還是請專業的測試機構幫忙做評估。

  • 選擇清除病毒或間諜軟體能力佳的產品。

  • 選擇不會影響系統效能及穩定度的產品。

  • 如果可以的話,只安裝一家防毒軟體的即時防護為主,再安裝二至三家其他家的防毒軟體 (沒有即時防護) 為輔,之後,再安裝二至三家反間諜軟體,然後,定期做系統掃瞄,以確保安全。

  • 最後一點是一定要試用,然後,觀察其他的同事有什麼反應或意見。


相信各位看完上面的敘述,對選擇防毒軟體與反間諜軟體,應該有基本的了解,那就不多說了。

結論

如果你是一般使用者,你會關心什麼呢?偵測率?誤判率?清除率?還是其他的?我想你一定比較在乎偵測率與清除率,因為可以免於中毒,而且,中毒之後,又可以解決各位的問題,但如果你是企業的網管人員,我想你對很多項目應該都很關心吧,因為很多項目可能都會讓你所管理的電腦出問題。最後,希望各位在看過這篇文章之後,以後不要只看表面上的東西,而是要發掘隱藏在其後的事情,這樣你才會了解整個事情的原貌。

 

arrow
arrow
    全站熱搜

    rogerspeaking 發表在 痞客邦 留言(13) 人氣()