企業采購
云計算
服務器
存儲
軟件與服務
操作系統
數據庫/開發
網絡
信息安全
您的位置: 比特網>安全>正文
殺毒軟件防御機制存重大漏洞
2012-02-19 22:02卡飯資訊csh
2011年,病毒技術發生重大變化。現有技術架構的殺毒軟件捉襟現肘,應對漸感乏力。
病毒繞過主動防御
當前,殺毒軟件依賴文件鑒定開發了傳統的文件鑒定引擎,當文件被訪問、運行時,調用反病毒引擎對文件進行安全掃描,如果是黑文件(危險程序)就殺掉,白文件(安全程序)就放行。當類似主動防御的應用面臨大量的白文件時,包括白文件的后續動作,比如加載dll文件等,也被不再檢查直接放行了。因為若不放行,就面臨一個問題:連續的詢問嚴重打擾用戶,系統變得無法使用。
魔高一尺,道高一丈,病毒和反病毒之間的斗爭處于持續的此消彼漲中。病毒為繞過殺毒軟件的主動防御,很快找到新招:將病毒代碼植入dll文件中,利用被鑒定安全的第三方軟件加載dll文件不校驗的漏洞,間接運行。而可以被病毒利用的軟件數以千計,連Windows自己的組件都不可避免。
病毒這種繞過方式在2011年得到非常廣泛的應用,殺毒軟件再次落到必須和病毒拼響應速度的地步。
正常文件為什么也危險
還是拿實例來說明,如下圖,這是一個典型的網購木馬。
病毒程序是StormUpdate.dll,如果病毒作者直接編譯一個.exe可執行文件,他會發現殺毒軟件判斷這個未知程序有異常行為而被建議阻止運行。于是病毒作者隨便找了一個正常的應用軟件,如暴風影音程序,這是一個合法的有數字簽名的商業軟件,所有殺毒軟件都判定這是一個正常程序。
當這個程序執行時,殺毒軟件主動防御放行,于是含有病毒代碼的StormUpdate.dll(假冒的)被加載,接著含有主要病毒執行代碼的Version.dat被加載執行。最終,病毒繞過了殺毒軟件的攔截完全啟動。
還有更經典的例子:在下面一包8個文件中,只有1個是病毒,其它全是正常文件,病毒的運行如同多米諾骨牌之間的接力。最終對用戶造成傷害的結果,由一系列看起來完全正常的軟件制造。
安全廠商的無奈殺毒軟件攔截不了病毒程序,正常的文件變得異常危險。這到底是為什么?簡單來說,就是病毒對殺毒軟件的工作機制了解得非常透徹,直接利用其體系漏洞。可悲的是,安全廠商明知道存在此問題,卻也無可奈何。因為白文件數以萬計,而且被億萬網民頻繁使用,沒有一個安全廠商有這個計算能力對白文件的后續執行動作一一校驗。即便資源和能力,網民不堪其擾也不會答應。目前殺毒軟件應對這種繞過方式能夠做的,就是發現一例記錄一例。但治標不治本。病毒作者隨意更換下加載文件和路徑,殺毒軟件又會被輕松繞過。
殺毒體系多年未有實質性變化事實上,殺毒軟件的基本理念已經有許多年未曾改變,一直采用的基本思路就是基于文件的掃描、鑒定,這也是病毒摸透并攻破的根本原因。
最初,殺毒軟件只有一個文件掃描引擎,在對付文件不多的年代,夠用,速度也快,誤報率也低。隨著病毒的進展,大量病毒開始加殼,使用稀有的EXE壓縮工具打包。隨之殺毒軟件推出脫殼引擎,將文件解包后再調用文件引擎檢查。
新病毒出現的速度越來越快,文件引擎開始顯得有點手忙腳亂。殺毒軟件開始設計啟發式分析引擎,用代碼統計的方法,去檢查病毒常用的非法操作,從中發現病毒的普遍規律。
虛擬機引擎和啟發式類似,在虛擬空間模擬程序執行,分析有害行為。這種做法的結果是消耗大量系統資源,掃描速度降低。但它也能發現新病毒。這些都是文件掃描引擎。
此后,部分殺毒軟件開始嘗試行為查殺,主動防御技術逐步普及。主動防御捕捉程序的動態執行過程,而不是對文件進行靜態的檢查。執行中一旦發現異常行為,立刻阻止危險程序的進一步動作,防止中毒事件發生。這個模型很理想,似乎不必再擔心新病毒問題了。
事實上,病毒程序和行為動作和正常程序沒有本質差異,很多動作,正常軟件都有。于是頻繁的攔截提醒需要對正常軟件放行,不然就會嚴重打擾用戶操作。如今,如上面所述,病毒作者再次找到可以繞過的方法:利用正常軟件來啟動危險程序。貫穿殺毒軟件和病毒木馬之間的對抗史就可以發現,雖然殺毒軟件進行了多次改變,但基于文件的鑒定體系一直以來從未改變。如果殺毒技術體系持續沒有實質創新,未來的安全形勢堪憂。
關鍵字:加殼 漏洞補丁 殺毒軟件文件鑒定dll文件
[責任編輯:宋迪]