互聯網的飛速發展在給用戶的日常工作生活帶來了巨大方便的同時,也給各種各樣的惡意軟件提供了一片繁衍擴散的沃土。媒體上時有關於某種惡意軟件大規模流行造成嚴重損失的報道。惡意軟件的擴散早已引起信息安全業界的重視,各安全軟件和殺毒軟件廠商都有成型的解決方案。不過惡意軟件的更新換代總是走在安全廠商的產品前面,惡意軟件變種的出現速度越來越快,單純使用防殺毒軟件已不能完全保證用戶遠離惡意軟件。
本文提出一個分析Windows平臺的惡意軟件和可疑文件的參考方法,該方法通過監視目標樣本的執行後的行爲觀察,可對目標樣本的性質、行爲及影響進行判斷。
惡意軟件的定義:惡意軟件(Malware,malicioussoftware的縮寫),指未經用戶允許安裝執行,會對用戶及系統運行產生影響和危害的軟件,包括病毒(Virus)、蠕蟲(Worm)、木馬(Trojan)、後門程序(Backdoor/Rootkit)、密碼盜竊程序(Mal.PSW)及其他有以上所列惡意軟件功能的軟件。
分析原理和流程
關鍵詞定義:
1)惡意軟件樣本:從各種媒介提取到的懷疑是惡意軟件的可執行文件、可能包含惡意軟件的壓縮文件、Office文檔等
2)軟件行爲:文檔或可執行文件被用戶直接或通過其他處理軟件打開時該文件或系統執行的操作
樣本分析原理:
在一個可控的Windows測試環境中,通過使用特定的監視工具軟件,對目標樣本文件打開後執行的操作進行記錄,分析記錄的結果並與已知的惡意軟件行爲進行對比,判斷目標樣本的性質和影響,最後提供受該目標樣本影響的系統的清理方案。
樣本分析流程:
1)測試環境搭建
2)分析工具軟件的準備和安裝
3)目標樣本在測試環境系統上的運行監視、數據採集
4)結果處理和文檔記錄
環境準備和搭建
1、系統環境:
測試平臺可選擇使用虛擬機或者物理機搭建,兩種選擇的結果略有不同:如果使用虛擬機作爲平臺,需要先安裝一套虛擬機軟件,可以選擇VMware([url]http://www.vmware.com[/url])或VirtualPC([url]http://www.microsoft.com/windows/virtualpc/[/url]),然後在部署好的虛擬機中安裝Windows操作系統;如果使用實體機,直接安裝Windows操作系統即可。Windows安裝完成後,使用WindowsUpdate給測試用操作系統升級,使其達到最新補丁版本狀態。
本文使用的測試環境爲VMwareworkstation上的WindowsXPprofessionalSP2英文版,並升級補丁到2006年11月底的最新版本。
2、分析軟件:
1)系統監視軟件
a)InstallRite:
InstallRite是一個軟件安裝監視複製工具,可以監視軟件安裝時對系統文件、註冊表執行的改動。它可以用來監視目標樣本在執行前後系統發生的改動。InstallRite可以從它的官方網站下載:[url]http://www.epsilonsquared.com/installrite.htm[/url]
b)ProcessExplorer:
ProcessExplorer是一個監視系統當前運行進程、進程創建、進程刪除及獲取指定進程詳細信息的工具,它可以用來分析目標樣本對進程的操作。ProcessExplorer可以從它的官方網站下載:[url]http://www.microsoft.com/technet/sysinternals/utilities/ProcessExplorer.mspx[/url]
c)ProcessMonitor:
ProcessMonitor是ProcessExplorer的升級版本,它除了包含ProcessExplorer的功能外,還增加了文件和註冊表操作監視功能,但是它進程監視功能使用方便性上比不上ProcessExplorer。它可以用來實時監視目標樣本在執行過程中對系統文件、註冊表的操作情況。ProcessMonitor可以從它的官方網站下載:[url]http://www.microsoft.com/technet/sysinternals/processesandthreads/processmonitor.mspx[/url]
d)TCPView:
TCPView是一個監視網絡連接與進程對應關係的工具,可用於分析目標樣本在執行時進行網絡操作的情況。TCPView可以從它的官方網站下載:[url]http://www.microsoft.com/technet/sysinternals/utilities/TcpView.mspx[/url]
2)嗅探器
a)Ethereal:
Ethereal是一個功能強大的開源網絡協議分析軟件,它可用於存儲和分析目標樣本進行的網絡傳輸的具體內容。Ethereal可以從它的官方網站下載:
[url]http://www.ethereal.com/download.html[/url]
b)EffeTechHTTPSniffer:
EffeTechHTTPSniffer是一個專長於HTTP流量流量監視和分析的嗅探工具,可以用於分析Downloader一類使用HTTP協議和採用HTTP隧道封裝進行通訊封裝的目標樣本。EffeTechHTTPSniffer可以從它的官方網站上下載:
[url]http://www.effetech.com/download/[/url]
3)系統分析工具
a)RootkitRevealer:
RootkitRevealer是一個功能強大的Rootkit檢測工具,可用於檢測Rootkit類及帶有Rootkit隱藏功能的目標樣本。RootkitRevealer可以從它的官方網站下載:
[url]http://www.microsoft.com/technet/sysinternals/utilities/RootkitRevealer.mspx[/url]
b)Gmer:
Gmer是一個來自波蘭的Rootkit檢測工具,它的功能比RootkitRevealer稍多一點,檢測的速度更快,可用於檢測Rootkit類及帶有Rootkit隱藏功能的目標樣本。Gmer可以從它的官方網站上下載:
[url]http://www.gmer.net/files.php[/url]
c)Autoruns:
Autoruns是一個功能強大的啓動項管理工具,它可以直接操作註冊表,管理常見的啓動方式,可用於分析目標樣本的自啓動方式。Autoruns可以從它的官方網站上下載:
[url]http://www.microsoft.com/technet/sysinternals/utilities/Autoruns.mspx[/url]
d)WinHex:
WinHex是一個功能強大的通用十六進制編輯工具,它可以用於對目標樣本的內容進行查看和字符串查找。WinHex可以從它的官方網站下載:
[url]http://www.x-ways.net/winhex/[/url]
e)FinalRecovery:
FinalRecovery是一個快速的反刪除工具,它可以用於對目標樣本執行過程中刪除的文件進行恢復操作。FinalRecovery可以從它的官方網站下載:
[url]http://www.finalrecovery.com/download.htm[/url]
3、文檔準備:
在完成系統環境和分析軟件的安裝調試後,應該進行目標樣本的記錄文檔設計。一個使用表格的記錄文檔的例子如下:
樣本分析記錄表格(1)
樣本名稱 |
樣本日期 |
大小(Bytes) |
樣本編號 |
樣本來源 |
Sample1.bak |
2006-1-25 |
72052 |
060125A2 |
Customer |
VirusSample.dat |
2006-1-25 |
21084 |
060125A3 |
Support |
VirusSample2.dat |
2006-1-25 |
14205 |
060125A4 |
Support |
Trojansample.bak |
2006-1-25 |
104272 |
060125A5 |
Customer |
樣本分析結果登記表 樣本編號:060125A5
項目 |
屬性 |
詳細描述 |
備註 |
自刪除 |
是 |
|
|
啓動方式 |
Run Key |
\LMHK\Software\Windows\CurrentVers-ion\Run\TrojanRun Trojan.exe |
|
釋放文件 |
否 |
%SystemRoot%\Trojan.exe |
複製到%SystemRoot% |
進程注入 |
是 |
注入到iexplore.exe |
|
網絡連接 |
TCP |
連接到212.24.55.188:80 |
Nobody.noip.cn (DNS) |
其他屬性 |
|
網絡連接、文件不隱藏 網絡連接不加密 |
樣本分析實例
樣本是一個僞裝成wmv媒體文件的可執行文件,如圖:
它使用了wmv文件的圖標,由於Windows默認不顯示已知文件的擴展名,因此目標樣本的真實名字是WR.wmv.exe。
分析流程:
1)測試環境做一個恢復用的快照(Snapshot),使用實體機的測試環境可以用Ghost來達到相同目的。
2)依次啓動InstallRite和ProcessMonitor,先給ProcessMonitor做Filter配置:
配置時用exclude方式將與目標樣本無關的程序如csrss.exe、installrite.exe等程序對註冊表的操作過濾,只留下explorer.exe、services.exe、svchost.exe等目標樣本可能使用到的程序。
使用InstallRite對系統狀態做一個快照:
注:在使用InstallRite做快照的時候可以先把ProcessMonitor的監視暫停。
3)運行目標樣本
4)ProcessMonitor的監視顯示目標樣本運行時啓動了Iexplore.exe和svchost.exe:
用InstallRite對目標樣本執行前後的系統狀態進行對比,在InstallRite的界面選ReviewInstallation查看對比的結果:
新增的文件:
新增的註冊表項:
刪除的文件:
由此可知:
目標樣本在C:\programfiles\CommonFiles\MicrosoftShared\Msinfo路徑下新建了2個文件,paramstr.txt和svchost.exe,並添加了一個叫做Svchost的服務。完成這兩個操作之後,目標樣本把自身刪除。
5)使用Gmer和ProcessExplorer檢查系統發生的改變:
從ProcessExplorer和Gmer的顯示結果可知,目標樣本啓動了一個隱藏的Iexplore.exe進程。
6)使用TCPView查看網絡連接
可以看見目標樣本啓動的Iexplore.exe進程連接的是
186.119.232.72.reverse.layeredtech.com的http(80)端口。
7)使用Ethereal抓包檢查網絡連接的數據
Ethereal五分鐘的抓包結果顯示,目標樣本會通過DNS服務器查詢([url]www.ifrstats.com[/url])的IP地址,並每隔30秒向其發送TCP包,包的長度爲0,具體含義未知。
8)分析和文檔
綜合以上工具的監視結果,我們可以總結出樣本的性質,目標樣本爲一個服務安裝啓動方式的木馬程序,會使用進程注入技術(注入Iexplore.exe)穿透防火牆的網絡連接控制,並帶簡單的Rootkit功能(隱藏其啓動的iexplore.exe進程)
目標樣本分析結果整理後,記錄如下:
樣本分析結果記錄表 樣本編號:TR061125A2
項目 |
屬性 |
詳細描述 |
備註 |
自刪除 |
是 |
|
|
進程注入 |
是 |
注入到C:\program files\Internet Explorer\iexplore.exe |
Iexplore.exe爲隱藏進程,使用Gmer檢查。 |
安裝路徑 |
|
路徑:C:\program files\common files\microsoft shared\MSInfo\ svchost.exe Paramstr.txt |
|
註冊表 |
|
\\LMHK\SYSTEM\CurrentControlSet\Services\ 新增svchost |
|
啓動方式 |
服務啓動 |
系統增加以svchost命名的服務 |
|
網絡連接 |
TCP |
186.119.232.72.reverse.layeredtech.com 72.232.119.186 [url]www.ifrstats.com[/url] (DNS) |
網絡連接內容未知。 |
根據檢查結果登記表,就可以對該目標樣本感染過的計算機進行有針對性的清理,更進一步的可以編寫專殺程序,或者將檢查的結果提交應急響應機構,不過這就不是本文要討論的內容了。