圖1

  現(xiàn)在可以通過(guò)該Web接口將測(cè)試文件(通常為PE格式)加載到虛擬機(jī),指定超時(shí)時(shí)間,就可以讓Zero Wine分析該程序的行為了。稍等片刻,就會(huì)受到如下所示的報(bào)告摘要:

  

  圖2

  三、相關(guān)報(bào)告的介紹

  分析結(jié)束時(shí),會(huì)出現(xiàn)一個(gè)帶有四個(gè)鏈接的報(bào)告摘要頁(yè)面,這些鏈接分別是“report”、“Strings”、“Headers”和“Signature”。關(guān)于這些報(bào)告我們將在下面進(jìn)行分別介紹。

  完整的報(bào)告

  我們首先有介紹的是“Report”鏈接,這是由WINE生成的一份完整的原始跟蹤文件。 這個(gè)文件通常很大,并且也不太容易讀,因?yàn)槠渲邪薟INE本身調(diào)用的大量應(yīng)用程序接口以及惡意軟件調(diào)用的應(yīng)用程序接口,不過(guò)它對(duì)于全面理解程序到底做了些什么卻是很有幫助的。以下是病毒MyTob的一個(gè)示例報(bào)告,我們看到這的確很長(zhǎng),并且讀起來(lái)很晦澀:

  

  圖3

  一般說(shuō)來(lái),其中的大量API調(diào)用都是WINE的內(nèi)部調(diào)用,這些對(duì)我們的分析工作沒(méi)有多大用處,并且對(duì)我們來(lái)說(shuō)通常是枯燥無(wú)味的。請(qǐng)記住,雖然這些調(diào)用看上去很枯燥,但是卻可能對(duì)分析的惡意軟件的理解有所裨益。

  關(guān)于字符串報(bào)告

  Linux命令“strings”的輸出。為了便于了解惡意軟件,有時(shí)候您可以探索一些字符串、URL等等。以下是一個(gè)例子(MyTob):

  

  圖4

  關(guān)于文件頭報(bào)告

  這個(gè)報(bào)告展示了使用PEIdSignatures的特征碼找出的用于給該程序加殼的工具(如果有的話),以及利用開源的程序庫(kù)PEFile對(duì)給定PE程序分析得到的一份詳盡輸出。生成的報(bào)告類似于下圖:

  

  圖5

  在本例中,頭部似乎是遭到了破壞,這說(shuō)明惡意軟件試圖給反匯編制造困難。

  關(guān)于特征碼報(bào)告

  這個(gè)是當(dāng)惡意軟件運(yùn)行后,由Zero Wine生成的最有趣的報(bào)告 這個(gè)報(bào)告展示了最令人感興趣的API調(diào)用和值。下面的例子很容易理解:

  

  圖6

  “Signature”報(bào)告告訴我們,該惡意軟件創(chuàng)建了互斥鎖“H-E-L-L-B-O-T”(進(jìn)程標(biāo)識(shí)符0009),并且將自身復(fù)制到 c:windowssystem32msmgrxp.exe,然后,執(zhí)行了這個(gè)文件(process 0018)。惡意軟件的這個(gè)副本將檢查互斥鎖“H-E-L-L-B-O-T”,如果該互斥鎖業(yè)已存在,則將該二進(jìn)制文件拷貝到c:funny_pic.scr及其它地方。

  有了上面的這些報(bào)告,編寫一份簡(jiǎn)單的行為報(bào)告已經(jīng)不成問(wèn)題。

  四、加殼軟件

  總的說(shuō)來(lái),Zero Wine能夠較好地運(yùn)行惡意軟件,然而,當(dāng)它遇到加殼軟件時(shí)就會(huì)出現(xiàn)各種問(wèn)題,例如wine幾乎總是無(wú)法對(duì)付被Armadillo 加過(guò)殼的PE程序;并且,有時(shí)候“Report”和“Signature”這兩個(gè)部分會(huì)同時(shí)收不到任何數(shù)據(jù)。好在“Headers”和“Strings”報(bào)告部分總能提供二進(jìn)制文件(盡管不是惡意軟件的行為)的有關(guān)信息。

  五、對(duì)于Zero Wine的檢測(cè)

  對(duì)于WINE 環(huán)境的檢測(cè)其實(shí)很簡(jiǎn)單。例如,可以通過(guò)注冊(cè)表項(xiàng)HKLMSoftwareWine或者HKCUSoftwareWine來(lái)檢測(cè)它。同時(shí)還可以檢查所有的Windows關(guān)鍵系統(tǒng)文件的文件大小來(lái)進(jìn)行檢測(cè)。當(dāng)運(yùn)行在WINE中的時(shí)候,這些文件會(huì)小得令人難以置信,但是同樣的文件在實(shí)際的Windows系統(tǒng)中卻具有碩大的身軀。另外一種“高級(jí)”檢測(cè)技術(shù)是,打開任意一個(gè)關(guān)鍵的Windows系統(tǒng)文件,并反編譯入口點(diǎn)。當(dāng)運(yùn)行在WINE中的時(shí)候,反編譯后將得到如下所示的一些簡(jiǎn)單指令:

  .text:10001000 public start

  .text:10001000 start proc near

  .text:10001000 mov eax, 1

  .text:10001005 retn 4

  .text:10001005 start endp

  對(duì)于比較懶惰的人來(lái)說(shuō),只需在.text:10001000中搜索二進(jìn)制串B8 01 00 00 00 C2 04 00就可以了。

  六、使用Zero Wine的危險(xiǎn)性

  首先請(qǐng)記住,在自己的計(jì)算機(jī)上運(yùn)行惡意軟件絕不是一個(gè)好主意。如果可能的話,要盡量將虛擬機(jī)(或物理機(jī)器)與現(xiàn)實(shí)世界隔離開來(lái)。有時(shí)候,我們迫不得已允許惡意軟件連接現(xiàn)實(shí)世界,但請(qǐng)記住,這樣做可能傷及無(wú)辜。更重要的是,您還必須記住,即使把WINE的沙箱配置成只能使用C盤,但是對(duì)于一個(gè)能夠逸出WINE沙箱的惡意軟件來(lái)說(shuō),它不僅能夠跑到C盤之外,還能夠波及您的物理計(jì)算機(jī)以及整個(gè)網(wǎng)絡(luò)。

  七、結(jié)束語(yǔ)

  Zero Wine是一個(gè)開源的(GPL v2)研究項(xiàng)目,用來(lái)對(duì)惡意軟件的行為進(jìn)行動(dòng)態(tài)分析。Zero Wine只是使用WINE在一個(gè)安全的虛擬沙箱(也就是在一個(gè)隔離的環(huán)境中)運(yùn)行惡意軟件來(lái)收集該程序調(diào)用的API的有關(guān)信息。Wine使用調(diào)試環(huán)境變量WINEDEBUG來(lái)輸出惡意軟件調(diào)用過(guò)的API,當(dāng)然也包括惡意軟件所傳遞的值。有了這些信息,惡意軟件的行為分析將變得非常輕松。

  本文詳細(xì)介紹了Zero Wine的工作原理以及使用方法,并對(duì)Zero Wine生成的報(bào)告進(jìn)行了相應(yīng)的解釋,最后介紹了在使用Zero Wine過(guò)程中需要注意的問(wèn)題,希望本文對(duì)您的工作學(xué)習(xí)能夠有所幫助。

分享到

yajing

相關(guān)推薦