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