病毒怎樣查殺環(huán)境怎樣配置
《病毒木馬查殺》系列以真實的病毒木馬(或統(tǒng)稱為惡意程序)為研究對象,通過現(xiàn)有的技術(shù)手段對其分析,總結(jié)出它的惡意行為,進而制定出相應(yīng)的應(yīng)對方法(如編寫專殺工具),對其徹底查殺。當然,本系列更多地是討論如何應(yīng)對某一個特定的病毒,而不涉及廣義的殺毒軟件的編寫。因為如今殺軟的原理非常復雜,并不是一個人就能夠完成的,加之我個人水平有限,因此不會涉及殺軟編寫的問題。不過,我會在以后的文章中在理論層面對此進行分析。
在本文,對于某一個病毒或木馬,可能會從以下三個方面進行查殺:手動查殺、監(jiān)測惡意行為編寫專殺工具或通過逆向分析其反匯編代碼進行徹底查殺。這幾種方式通過對病毒的不斷深入分析,從而更有效地對抗惡意程序。需要說明的是,手動查殺病毒是比較粗淺的,難以徹底清除病毒,但是有些時候卻是快速而有效的。而通過行為對惡意程序進行監(jiān)測,雖說比手動查殺的效果要好很多,但是有些時候往往也會有些遺漏。所以其實最好的還是通過逆向分析來了解惡意程序,只是這樣往往耗時較多。
希望本文能夠起到科普作用,讓大家打消對病毒木馬的恐懼感,使得每一位讀者都能成為反病毒的專家。下面一起來學習吧。
病毒分析方法
一般來說,除非是感染型病毒,否則是不需要對病毒進行逆向分析的,只需要對病毒進行行為分析就可以編寫專殺工具。而如果是感染型病毒,由于需要修復被病毒感染的文件,那么就不能僅僅簡單地分析病毒的行為,而必須對病毒進行逆向分析,從而修復被病毒所感染的文件。因此,實際中的分析方法有以下兩種:
1、行為分析。惡意程序為了達到目的,都有自己的一些特殊的行為,這些特殊的行為是正常的應(yīng)用程序所沒有的。比如把自己復制到系統(tǒng)目錄下(參見《反病毒攻防研究第001篇:自我復制與自刪除》),或把自己添加進啟動項(參見《反病毒攻防研究第002篇:利用注冊表實現(xiàn)自啟動》),或把自己的某個DLL文件注入到其它進程中去(參見《反病毒攻防研究第010篇:DLL注入(中)——DLL注入與卸載器的編寫》)……這些行為都不是正常的行為。我們拿到一個病毒樣本后,通常就是將病毒復制到虛擬機中,然后打開監(jiān)控工具,比如Process Monitor(參見《文檔翻譯第003篇:ProcessMonitor幫助文檔(Part 3,附ProcessMonitor的簡單演示)》)。將各種準備工作做好以后,在虛擬機中把病毒運行起來,看病毒對注冊表、對文件進行了哪些操作,連接了哪個IP地址、創(chuàng)建了哪些進程等。通過觀察這一系列的操作,就可以寫一個程序。只要把它創(chuàng)建的進程結(jié)束掉,把它寫入注冊表的內(nèi)容刪除掉,把新建的文件刪除掉,就等于把這個病毒殺掉了。這也是手動查殺病毒所慣用的方法。當然,這整個過程不會像說起來那么容易。
2、逆向分析。當惡意程序感染了可執(zhí)行文件之后,所感染的內(nèi)容是無法通過行為監(jiān)控工具發(fā)現(xiàn)的。而病毒對可執(zhí)行文件的感染,有可能是通過PE文件結(jié)構(gòu)中的節(jié)與節(jié)之間的縫隙來存放病毒代碼(參見《反病毒攻防研究第004篇:利用縫隙實現(xiàn)代碼的植入》),也可能是添加一個新節(jié)來存放病毒代碼(參見《反病毒攻防研究第005篇:添加節(jié)區(qū)實現(xiàn)代碼的植入》)。無論是哪種方式,都需要通過逆向的手段進行分析。常用的逆向分析工具有OllyDbg、IDA Pro以及WinDBG。
病毒查殺方法
病毒的查殺方法有很多種,在網(wǎng)絡(luò)安全知識日益普及的今天,在各大殺軟公司大力宣傳的今天,想必大部分網(wǎng)絡(luò)安全愛好者對于病毒查殺技術(shù)都有一定的了解。當今常見的主流病毒查殺技術(shù)有特征碼查殺、啟發(fā)式查殺、虛擬機查殺和主動防御等。
1、特征碼查殺。特征碼查殺是殺軟廠商查殺病毒的一種較為原始的方法。它是通過從病毒體內(nèi)提取病毒特征碼,從而識別病毒。但是這種方法只能查殺已知病毒,對于未知病毒則無能為力。
2、啟發(fā)式查殺。靜態(tài)地通過一系列“帶權(quán)規(guī)則組合”對文件進行判定,如果計算出的值高于某個界限則被認為是病毒,否則不認為是病毒。啟發(fā)式查殺可以相對有效地識別出病毒,但是往往也會出現(xiàn)誤報的情況。
3、虛擬機查殺。在內(nèi)存中虛擬一個運行環(huán)境用于病毒的運行,根據(jù)其行為或釋放出的已知病毒特征碼,來判斷其是否為病毒程序。這個技術(shù)用來應(yīng)對加殼和加密的病毒比較有效,因為這兩類病毒在執(zhí)行時最終還是要自身脫殼和解密的,這樣,殺軟可以在其現(xiàn)出原形之后進行查殺。
4、主動防御。基于程序行為自主分析判斷的實時防護技術(shù),不以病毒的特征碼作為判斷病毒的依據(jù),而是從最原始的病毒定義出發(fā),直接將程序的行為作為判斷病毒的依據(jù)。主動防御是用軟件自動實現(xiàn)了反病毒工程師分析判斷病毒的過程,解決了傳統(tǒng)安全軟件無法防御未知惡意軟件的弊端,從技術(shù)上實現(xiàn)了對木馬和病毒的主動防御。
環(huán)境的配置
我們所有的病毒分析工作都會在虛擬機中進行,因此安裝虛擬機是一個必須的步驟。虛擬機也是一個軟件,用于模擬計算機的硬件系統(tǒng),在虛擬機中可以安裝操作系統(tǒng),之后可以安裝各種各樣的應(yīng)用程序,這與真實的計算機是沒有區(qū)別的。在虛擬機中的操作完全不會對我們真實的系統(tǒng)產(chǎn)生影響。但是這里要特別說明的是,某些特別強的病毒能夠繞出虛擬機,進而感染我們真實的系統(tǒng)。這種情況可能是因為我們的虛擬機中存在漏洞,而病毒正好利用了這個漏洞。因此一定要選擇最新版本的虛擬機軟件。除了對病毒進行分析需要使用虛擬機外,在進行雙機調(diào)試系統(tǒng)內(nèi)核時(比如使用WinDBG),往往也是要借助于虛擬機的。常用的虛擬機有VMware和Oracle公司的VM VirtualBox。我個人最喜歡使用VMware,因為它的功能非常強大,而且基本上所有的教程都會以這款軟件作為講解對象。但是Vmware在我的系統(tǒng)中總是會出現(xiàn)莫名的問題,所以在我的實驗環(huán)境中,我選擇使用開源且免費的VirtualBox。
我的VirtualBox采用的是4.3.12版,虛擬機中安裝的操作系統(tǒng)為Windows XP Professional SP3,為其虛擬1個處理器,1GB內(nèi)存、10GB硬盤空間與128M顯存。而我的真實系統(tǒng)采用的是Windows 8.1(64位),使用Intel Core i5-3230M 2.60GHz的CPU,4GB內(nèi)存。如無特別說明,本系列所有的實驗都會在這個配置中完成。
這里還需要說一下系統(tǒng)的備份,因為在分析病毒程序時,我們的虛擬系統(tǒng)或多或少地會被病毒所破壞,而備份功能則可以將系統(tǒng)很好地恢復到被破壞前的狀態(tài)。在VirtualBox中,可以在“控制”菜單下選擇“生成備份”,輸入備份名稱后保存。這樣,以后如果想還原系統(tǒng),可以選擇“恢復備份”,如下圖所示(請注意紅框中的內(nèi)容):
至此,我們的實驗環(huán)境基本配置完畢。虛擬機中的系統(tǒng)尚未安裝任何軟件,我會在不同的實驗中再進行說明。
病毒怎樣查殺環(huán)境怎樣配置
下一篇:如何防止u盤中毒