防毒產業所面對的問題





megakotaro
2012-04-07, 02:49 PM
本篇參考Eugene Kaspersky所寫的The contemporary antivirus industry and its problems (http://www.securelist.com/en/analysis/174405517/The_contemporary_antivirus_industry_and_its_problems)而成,由於該篇文章年代久遠,因此這篇也加了一些現在所討論的課題。本人才疏學淺,寫得不好還請多多包含並提供意見。


自從電腦病毒誕生以後,網路上就充斥著許多的犯罪活動。不論是政府機關、大型企業、中小企業以及個人電腦,每年因網路犯罪損失的金額都非常可觀。網路犯罪的議題也總是被廣泛討論。

早期駭客為了證明自己有高超的能力,或是為了報復以及政治目的,大多數的犯罪活動多是以惡作劇或破壞為目的;但是近年來,這些攻擊都是以利益(金錢)為目標,例如:

1. 竊取信用卡卡號
2. 竊取銀行帳密
3. 竊取遊戲帳密或社交網站帳密
4. 建立殭屍網路(由一群遭到感染的電腦組成,這些電腦會在一般命令與控制基礎結構下自動執行程式)以獲得大量資料
5. 利用強制綑綁廣告軟體來獲取金錢
6. 自動撥號程式讓手機費用暴增

駭客組織所從事的地下經濟早就遠遠超越了防毒軟體公司的產值。即使許多知名的駭客已經被警方瓦解(例如:魯茲安全),但是網路犯罪並沒有因此減少,新的駭客團體還是不斷出現,並威脅著全球企業的安全(例如:Anonymous)。根據研究,2004年因為網路犯罪的損失高達180億美元,並預估每年將以30~40%的比例擴大。

而這些犯罪活動則成了下列三種情況的循環:
1. 駭客散佈惡意程式躲避防毒軟體偵測或找新的漏洞
2. 使用者的電腦及網路遭到駭客攻擊
3. 資訊安全廠商開發解決方案以對付各方威脅

防毒廠商概況
以下列出防毒公司的概況,這些公司都有提供完整的防毒解決方案,從網路閘道防毒、伺服器防毒、郵件過濾軟體到個人防毒軟體以及手機防毒。
第一線公司,指的是在全球都設有據點:

公司 年營業額(百萬)
2003 2004
Symantec 1098 1364
McAfee 577 597
Trend Micro 382 508
第二線公司,在特定區域取得領導:

公司 年營業額(百萬)
2003 2004
Sophos 97 116
Panda Software 65 104
Computer Associates 61 74
F-Secure 36 51
Norman 23 31
AhnLab 21 28

第三線公司,雖然市佔率較低但也正快速成長中,包括:Alwil,Arcabit,Doctor Web,ESET,Frisk Software,GriSoft,Avira,Hauri,BitDefender,VirusBuster。

上面的資料是我從尤金的文章中貼來的,我們也可以從2012年3月市場佔有率看出最新的防毒軟體使用率:
http://www.opswat.com/sites/default/files/OPSWAT-market-share-report-march-2012.pdf

每家防毒軟體都在增加產品的新技術,從早期特徵碼比對、啟發式掃瞄,到現在的入侵防禦系統、雲端防毒、檔案信譽評鑑,每家產品也都非常類似。使用者或是網管人員在選購產品時,往往依據各大測試報告(主要是偵測率)、介面友善程度、資源佔用度或是其他人的使用心得來選擇產品。舉個簡單的例子:A、B、C三種防毒軟體的病毒偵測率分別是10%、50%、99%,A防毒軟體介面複雜且消耗大量記憶體,B防毒軟體記憶體消耗量中等且介面普通,C防毒簡潔易懂且記憶體佔用少,消費者理所當然會選擇C產品;如果選擇了A,則電腦將暴露在危險當中,也會導致作業效率變慢,這也是消費者在選購產品上重要的依據。

防毒軟體目前所面對的問題
一個良好的防毒解決方案,理論上應該100%不讓病毒入侵,但這是不可能做到的事,這也正是防毒軟體目前所面對的問題。

問題一:惡意程式大量爆發
惡意程式量以每年倍增的情況成長,即使全球有四十幾家防毒軟體公司,也無法對付如此龐大的威脅,也就是說,任何一個產品都不能抵抗全部的惡意程式。然而,大多數的使用者會還是會因為防毒產品宣稱的功能而去購買。例如:輕巧不佔資源、連續通過VB100測試等等。

從趨勢科技Smart Protection Network可看出每天的惡意程式量非常龐大:http://go.trendmicro.com/itw/swf/threattracker/

1990年代我們可以說安裝防毒軟體就能保護電腦安全,那時惡意程式多半是惡作劇、或是因為好玩,並沒有強大的破壞性,數量也在防毒廠商所能應付的範圍(還記得趨勢科技當時是用寄磁片的方式替客戶更新病毒碼)。使用者只需針對被感染的文件做隔離、解毒或刪除即可。但是,現在許多惡意程式是由地下組織所設計,網路上也流傳許多惡意程式產生器,平均每4秒就有一個新的惡意程式產生。(說詞來自:http://www.trendmicro.com.tw/wtp/micro/faq.asp)

樣本的捕捉來自於防毒廠商建置的Honeypot(專門誘捕未經授權、非法存取的行為,使分析師能進行偵測或反制)、已被感染的電腦(透過防毒軟體內建的回報系統)、公司網管人員、網友的回報或其他防毒廠商。雖然防毒廠商表面上是互相競爭,但若一個新的惡意程式爆發,第一個偵測到的廠商大部分會將資訊發送給其他對手,各家廠商平常也都會進行技術交流。

假設有一個惡意程式A被防毒軟體偵測到,這表示已經有許多電腦被惡意程式A感染了而且正在散佈,若是利用作業系統的漏洞,則可能已經傳出嚴重的災情。例如conficker(Net-Worm.Win32.Kido系列),利用MS08-067這個漏洞大量散佈。同時,防毒軟體公司必須在最短時間內提供特徵碼,而且在作業系統廠商尚未修補此項漏洞時提供防護,這也將面臨第二個問題。

問題二:特徵碼品質低落
為了防範惡意程式的大量散佈,防毒廠商也被迫在最短時間內釋出特徵碼,以減少感染風險。不幸的是,當特徵碼釋出前,早就有許多電腦遭到感染,而快速釋出的特徵碼不一定能「清除」該惡意程式(「偵測到」和「清除」是有差別的)。

由於特徵碼釋出時間要快,許多廠商現在都依賴機器自動分析,雖然速度增快了,但是錯誤率也提升了,因為機器分析終究沒有人工分析來得精準,許多破解文件、序號機或是加殼程式往往並不具有惡意行為,卻被報稱為毒。若惡意程式經過加密(例如SHA-256),機器分析也不一定會去做解密動作,這等於是遺漏了這方面的樣本,而有些防毒廠商命名規則也是很鬆散的,可參考:不得不公佈!現在還有大廠在使用檔案大小判毒! (http://www.avpclub.ddns.info/discuz/viewthread.php?tid=13326&highlight=%B2%7B%A6b%C1%D9%A6%B3)

http://www.avira.com/en/support-vdf-history

實際案例:軟體序號機Nero 8 Ultra Edition v8.x Keymaker.exe
將Nero 8軟體序號機送到Threat Expert:http://www.threatexpert.com/report.aspx?md5=db457a863378b2fc8dbe1f99e97e7dbb

從報告得知,這個檔案並不會對系統造成任何損害,但是將它送到Virus Total後......

http://www.virustotal.com/file-s ... 9236fb84-1312617009 (http://www.virustotal.com/file-scan/report.html?id=3d2f949292c954668fc355402071bcc5b5ba318e96143f4117878f579236fb84-1312617009)

AhnLab-V3 2011.08.05.01 2011.08.05 -
AntiVir 7.11.12.233 2011.08.05 -
Antiy-AVL 2.0.3.7 2011.08.06 -
Avast 4.8.1351.0 2011.08.05 -
Avast5 5.0.677.0 2011.08.05 -
AVG 10.0.0.1190 2011.08.06 -
BitDefender 7.2 2011.08.06 -
CAT-QuickHeal 11.00 2011.08.06 Trojan.Agent.IRC
ClamAV 0.97.0.0 2011.08.06 -
Commtouch 5.3.2.6 2011.08.06 -
Comodo 9648 2011.08.06 -
DrWeb 5.0.2.03300 2011.08.06 -
Emsisoft 5.1.0.8 2011.08.06 Riskware.Keygen.Nero!IK
eSafe 7.0.17.0 2011.08.04 Win32.Banker
eTrust-Vet 36.1.8486 2011.08.05 -
F-Prot 4.6.2.117 2011.08.05 -
F-Secure 9.0.16440.0 2011.08.06 -
Fortinet 4.2.257.0 2011.08.06 W32/Turkojan.LWD!tr.bdr
GData 22 2011.08.06 -
Ikarus T3.1.1.104.0 2011.08.06 not-a-virus.Keygen.Nero
Jiangmin 13.0.900 2011.08.05 Backdoor/Turkojan.bvw
K7AntiVirus 9.109.4973 2011.08.02 -
Kaspersky 9.0.0.837 2011.08.06 -
McAfee 5.400.0.1158 2011.08.06 generic!bg.gyj
McAfee-GW-Edition 2010.1D 2011.08.06 generic!bg.gyj
Microsoft 1.7104 2011.08.06 -
NOD32 6354 2011.08.06 -
Norman 6.07.10 2011.08.05 -
nProtect 2011-08-06.01 2011.08.06 -
Panda 10.0.3.5 2011.08.05 -
PCTools 8.0.0.5 2011.08.06 -
Prevx 3.0 2011.08.06 -
Rising 23.69.03.03 2011.08.04 -
Sophos 4.67.0 2011.08.06 -
SUPERAntiSpyware 4.40.0.1006 2011.08.06 -
Symantec 20111.2.0.82 2011.08.06 -
TheHacker 6.7.0.1.272 2011.08.06 -
TrendMicro 9.200.0.1012 2011.08.06 CRCK_KEYGEN.BB
TrendMicro-HouseCall 9.200.0.1012 2011.08.06 CRCK_KEYGEN.BB
VBA32 3.12.16.4 2011.08.06 -
VIPRE 10081 2011.08.06 Trojan.Win32.Generic!BT
ViRobot 2011.8.6.4609 2011.08.06 -
VirusBuster 14.0.154.0 2011.08.05 -

令人驚訝的是,毫無惡意行為可言的樣本竟然被許多防毒軟體廠商偵測出,報not-a-virus或是keygen也就算了,有些甚至顯示為Trojan。

防毒軟體誤報也時有所聞。以前防毒廠商並沒有建立系統檔案白名單,在製作特徵碼時可能會誤刪重要檔案,使得系統崩潰。因此現在的防毒廠商甚至會和合格廠商合作,將他們的程式建立在白名單內。

問題三:防毒軟體佔用資源
任何一款軟體使用時都會利用電腦資源,防毒軟體尤甚於此,因為防毒軟體會隨時監控使用者開啟檔案、讀取檔案、上網流量、下載過程、封包傳送,偵測與刪除一個檔案也都會消耗電腦資源。若調高防護品質,則效率就會下降,所以要在兩者之間取得平衡。

這樣的情況其實很難去解決,若防毒軟體提供快速的掃瞄,勢必會遺漏一些可疑的檔案,但掃瞄速度慢不代表能做深入的檢查。

問題四:防毒軟體互不相容
在大多數的案例中,安裝兩個不同的防毒軟體在同一部電腦上以增加保護是不可能的,且兩者會互相干擾。有人說這樣會造成不公平競爭,其實這是沒辦法的事,軟體設計師都想讓其產品不會與其他產品互相排斥,包含防毒軟體,可惜在技術層面上是不可行的。

為了能順利掃瞄檔案並提供完整保護,防毒軟體幾乎會寫到系統核心內。若某個檔案被認定是有問題的,由於防毒軟體安裝了中斷點,可以傳回防毒引擎上來中斷這些檔案存取、網路封包或其他可疑行為。然而,有時是無法很輕易地安裝兩個中斷點在核心中,因此造成防毒軟體之間的不相容,使得第二組防毒軟體無法中斷系統事件,或當兩者同時中斷卻造成系統崩潰。

問題五:雲端防毒真如其名抑或是噱頭?
近來許多廠商標榜「雲端防毒」,透過網路將龐大的運算處理程序自動分拆成無數個較小的子程序,再交由多部伺服器所組成的龐大系統經搜尋、運算分析之後將處理結果回傳給用戶。

雲端防毒做得比較好的就是趨勢科技的Smart Protection Network(簡稱SPN)。根據趨勢科技表示其特點如下(參考integear所寫一鳴驚人:TMSPN上市發表會心得 (http://www.avpclub.ddns.info/discuz/viewthread.php?tid=19607&highlight=SPN)整理):
(1)透過SPN蒐集的資料反向追蹤,可以找到惡意程式作者、地下組織,並通知警方。
(2)SPN不是只分析一個威脅,而是34000台以上的伺服器配合1000多位專家進行分析,快速處理大量資料,因此使用者能得到立即的更新。
(3)SPN是透過Host-based Intrusion Prevention(簡稱HIPS,安裝在電腦上,監控所有在電腦上的程序活動)、啟發式、大量而複雜的演算法、異常行為來抓取樣本。並非是使用者中毒之後才回傳樣本。
(4)SPN透過「社群智慧」、「關連性分析」、「整合回報」架構起來;社群智慧包含「Smart Feedback」,它會記錄網路上的可疑行為,再透過演算法過濾,最後以雲端技術達到立即更新的資訊;關連性分析則包含「Monitor And Select」,透過演算法擷取大量資料,並選取必要的資訊,接下來「Incident Trigger」會標記順序先後,之後「Correlate」交叉比對尋找眾多檔案之間的關聯性。最後利用「Intelligent Scoring」給樣本打上分數。
(5)SPN會將類似的網址做關連性分析。因為惡意程式作者可能會為了逃避追蹤而設定亂數網址。
(6)SPN每天處理的資料大於1.2TB,每天分析用戶50億次的查詢。

因此像趨勢科技這樣的雲端,是可以有效達到遏止惡意程式的流竄。然而某些防毒軟體打著「99秒雲鑑定」或是「1秒雲鑑定」,只是將雲端技術拿來分析單一檔案,這樣對於惡意程式的防護能力明顯下降許多。

沒有完美的解決方案
很顯然地,大家都希望尋找一個永久的防毒軟體解決方案,但不幸的是,世界上沒有一個永久的方法可以避免電腦遭受感染。由於惡意程式是人寫的,不是自然演化,因此防毒廠商都是猜測駭客下一步的行動來設計軟體,或是對已經存在的駭客技術來做預防,基本上,防毒廠商都是站在「被動」的一方。

就拿兩個防毒廠商最常用的技術來說,特徵碼比對法就是拿一個被製作成2進位的程式碼,來比對被掃瞄的檔案是否符合,若符合則判定有威脅,若不符合則安全。這個方法的優點就是可以百分之百確定檔案是否有問題,而缺點就是惡意程式越多,儲存於資料庫的資料也就越多,造成防毒公司的負擔。

「啟發式掃瞄法」則會根據一個檔案的後續動作來判定是否有威脅,優點就是可以偵測未知的惡意程式,缺點就是誤判率較高。假設有一個防毒軟體A它寫的啟發規則可以百分之百正確判斷「現有」的檔案,駭客知道了以後,就會想辦法用別的技術來躲避防毒軟體A的啟發規則,而防毒公司知道啟發規則被破解了又會寫新的規則來預防新的威脅,這就會造成無限循環。所以我們才需要每年不斷購買新的防毒產品,或是更新防毒產品的版本,以因應新的威脅。

購買防毒軟體
雖然說了許多防毒軟體所面臨的問題,但我們還是需要購買一款好的防毒軟體來保護自己(請參考:我必須不客氣的說:大部分的End User根本不懂網路安全! (http://antimalicious.blogspot.com/2009/06/end-user.html)),那該如何選購呢?客觀而言,就是參考一些來自世界各地機構的測試報告,這些測試包含了偵測率、0-day漏洞、掃瞄速度、防毒廠商對新威脅的反應速度以及清除率等。然而許多機構並未針對防毒品質做測試,因為進行這樣的測試必須蒐集大量的樣本,並記錄防毒軟體從安裝到移除的過程,費時又費工。

目前有提供完整測試的有AV-test(http://www.av-test.org)及AV-Comparatives(http://www.av-comparatives.org),這些機構對於防毒軟體的偵測率、防毒公司對新惡意程式的反應時間、中毒電腦的解毒率、受感染網站防禦率及系統資源使用等,均進行完整的測試。另外,PC Security Labs(http://www.pcsecuritylabs.net)、Virus Bulletin(http://www.virusbtn.com/index)及WestCoastLabs(http://www.westcoastlabs.org)等則主要是針對偵測率做測試。

結論
惡意程式與防毒軟體、駭客與資安專家,這兩個善惡面是共存的,使用者收集到越多的資訊,才能避免令人遺憾的後果。

最後廢話:大家好像都知道現實世界要防詐騙集團、小心歹徒,卻在網路世界讓自己處於危險