病毒怎樣查殺環境怎樣配置

  《病毒木馬查殺》系列以真實的病毒木馬***或統稱為惡意程式***為研究物件,通過現有的技術手段對其分析,總結出它的惡意行為,進而制定出相應的應對方法***如編寫專殺工具***,對其徹底查殺。當然,本系列更多地是討論如何應對某一個特定的病毒,而不涉及廣義的防毒軟體的編寫。因為如今殺軟的原理非常複雜,並不是一個人就能夠完成的,加之我個人水平有限,因此不會涉及殺軟編寫的問題。不過,我會在以後的文章中在理論層面對此進行分析。

  在本文,對於某一個病毒或木馬,可能會從以下三個方面進行查殺:手動查殺、監測惡意行為編寫專殺工具或通過逆向分析其反彙編程式碼進行徹底查殺。這幾種方式通過對病毒的不斷深入分析,從而更有效地對抗惡意程式。需要說明的是,手動查殺病毒是比較粗淺的,難以徹底清除病毒,但是有些時候卻是快速而有效的。而通過行為對惡意程式進行監測,雖說比手動查殺的效果要好很多,但是有些時候往往也會有些遺漏。所以其實最好的還是通過逆向分析來了解惡意程式,只是這樣往往耗時較多。

  希望本文能夠起到科普作用,讓大家打消對病毒木馬的恐懼感,使得每一位讀者都能成為反病毒的專家。下面一起來學習吧。

  病毒分析方法

  一般來說,除非是感染型病毒,否則是不需要對病毒進行逆向分析的,只需要對病毒進行行為分析就可以編寫專殺工具。而如果是感染型病毒,由於需要修復被病毒感染的檔案,那麼就不能僅僅簡單地分析病毒的行為,而必須對病毒進行逆向分析,從而修復被病毒所感染的檔案。因此,實際中的分析方法有以下兩種:

  1、行為分析。惡意程式為了達到目的,都有自己的一些特殊的行為,這些特殊的行為是正常的應用程式所沒有的。比如把自己複製到系統目錄下***參見《反病毒攻防研究第001篇:自我複製與自刪除》***,或把自己新增進啟動項***參見《反病毒攻防研究第002篇:利用登錄檔實現自啟動》***,或把自己的某個DLL檔案注入到其它程序中去***參見《反病毒攻防研究第010篇:DLL注入***中***——DLL注入與解除安裝器的編寫》***……這些行為都不是正常的行為。我們拿到一個病毒樣本後,通常就是將病毒複製到虛擬機器中,然後開啟監控工具,比如Process Monitor***參見《文件翻譯第003篇:ProcessMonitor幫助文件***Part 3,附ProcessMonitor的簡單演示***》***。將各種準備工作做好以後,在虛擬機器中把病毒執行起來,看病毒對登錄檔、對檔案進行了哪些操作,連線了哪個IP地址、建立了哪些程序等。通過觀察這一系列的操作,就可以寫一個程式。只要把它建立的程序結束掉,把它寫入登錄檔的內容刪除掉,把新建的檔案刪除掉,就等於把這個病毒殺掉了。這也是手動查殺病毒所慣用的方法。當然,這整個過程不會像說起來那麼容易。

  2、逆向分析。當惡意程式感染了可執行檔案之後,所感染的內容是無法通過行為監控工具發現的。而病毒對可執行檔案的感染,有可能是通過PE檔案結構中的節與節之間的縫隙來存放病毒程式碼***參見《反病毒攻防研究第004篇:利用縫隙實現程式碼的植入》***,也可能是新增一個新節來存放病毒程式碼***參見《反病毒攻防研究第005篇:新增節區實現程式碼的植入》***。無論是哪種方式,都需要通過逆向的手段進行分析。常用的逆向分析工具有OllyDbg、IDA Pro以及WinDBG。

  病毒查殺方法

  病毒的查殺方法有很多種,在網路安全知識日益普及的今天,在各大殺軟公司大力宣傳的今天,想必大部分網路安全愛好者對於病毒查殺技術都有一定的瞭解。當今常見的主流病毒查殺技術有特徵碼查殺、啟發式查殺、虛擬機器查殺和主動防禦等。

  1、特徵碼查殺。特徵碼查殺是殺軟廠商查殺病毒的一種較為原始的方法。它是通過從病毒體內提取病毒特徵碼,從而識別病毒。但是這種方法只能查殺已知病毒,對於未知病毒則無能為力。

  2、啟發式查殺。靜態地通過一系列“帶權規則組合”對檔案進行判定,如果計算出的值高於某個界限則被認為是病毒,否則不認為是病毒。啟發式查殺可以相對有效地識別出病毒,但是往往也會出現誤報的情況。

  3、虛擬機器查殺。在記憶體中虛擬一個執行環境用於病毒的執行,根據其行為或釋放出的已知病毒特徵碼,來判斷其是否為病毒程式。這個技術用來應對加殼和加密的病毒比較有效,因為這兩類病毒在執行時最終還是要自身脫殼和解密的,這樣,殺軟可以在其現出原形之後進行查殺。

  4、主動防禦。基於程式行為自主分析判斷的實時防護技術,不以病毒的特徵碼作為判斷病毒的依據,而是從最原始的病毒定義出發,直接將程式的行為作為判斷病毒的依據。主動防禦是用軟體自動實現了反病毒工程師分析判斷病毒的過程,解決了傳統安全軟體無法防禦未知惡意軟體的弊端,從技術上實現了對木馬和病毒的主動防禦。

 環境的配置

  我們所有的病毒分析工作都會在虛擬機器中進行,因此安裝虛擬機器是一個必須的步驟。虛擬機器也是一個軟體,用於模擬計算機的硬體系統,在虛擬機器中可以安裝作業系統,之後可以安裝各種各樣的應用程式,這與真實的計算機是沒有區別的。在虛擬機器中的操作完全不會對我們真實的系統產生影響。但是這裡要特別說明的是,某些特別強的病毒能夠繞出虛擬機器,進而感染我們真實的系統。這種情況可能是因為我們的虛擬機器中存在漏洞,而病毒正好利用了這個漏洞。因此一定要選擇最新版本的虛擬機器軟體。除了對病毒進行分析需要使用虛擬機器外,在進行雙機除錯系統核心時***比如使用WinDBG***,往往也是要藉助於虛擬機器的。常用的虛擬機器有VMware和Oracle公司的VM VirtualBox。我個人最喜歡使用VMware,因為它的功能非常強大,而且基本上所有的教程都會以這款軟體作為講解物件。但是Vmware在我的系統中總是會出現莫名的問題,所以在我的實驗環境中,我選擇使用開源且免費的VirtualBox。

  我的VirtualBox採用的是4.3.12版,虛擬機器中安裝的作業系統為Windows XP Professional SP3,為其虛擬1個處理器,1GB記憶體、10GB硬碟空間與128M視訊記憶體。而我的真實系統採用的是Windows 8.1***64位***,使用Intel Core i5-3230M 2.60GHz的CPU,4GB記憶體。如無特別說明,本系列所有的實驗都會在這個配置中完成。

  這裡還需要說一下系統的備份,因為在分析病毒程式時,我們的虛擬系統或多或少地會被病毒所破壞,而備份功能則可以將系統很好地恢復到被破壞前的狀態。在VirtualBox中,可以在“控制”選單下選擇“生成備份”,輸入備份名稱後儲存。這樣,以後如果想還原系統,可以選擇“恢復備份”,如下圖所示***請注意紅框中的內容***:

  至此,我們的實驗環境基本配置完畢。虛擬機器中的系統尚未安裝任何軟體,我會在不同的實驗中再進行說明。