51CTO.com 專家特稿】國外著名的某安全公司指出:2007年互聯網上傳播的有記載的新型惡意程序(包 括病毒,蠕蟲,***等)數目達2,227,415個,同2006年的結果(535,131個)相比翻升了四倍,惡意軟件總數量達到354GB。許多反病毒 專家認爲這些惡意軟件的急速增長已經達到了一種很極端的狀況。惡意軟件的快速發展、普遍傳播,以及新型化、複雜化,使得展現出更強的破壞性和更多樣的傳播 方式。2008年安全公司對於惡意軟件的分析研究也將面臨更大的挑戰。葉子在本篇文章中將帶領你們初步瞭解一下惡意代碼及其相關的分析研究過程。
惡意代碼(malicious code)是一種程序,它經過把代碼在不被察覺的狀況下鑲嵌到另外一段程序中,從而達到破壞被感染電腦數據、運行具備***性或破壞性的程序、破壞被感染電腦 數據的安全性和完整性的目的。惡意程序創做者有一套不斷擴充且技術先進的工具組合可供他們任意運用,其中包含了傀儡程序與傀儡網絡、Rootkit、社交 工程技巧、間諜程序與廣告程序等等。他們受到金錢利益驅使的狀況更甚於以往,並且創造出許多專門生產惡意程序、犯罪程序與間諜程序/廣告程序的地下經濟 體。他們再也不製做以刪除文件及破壞大量計算機爲目的的惡意程序,改以潛藏於計算機中,等候傀儡程序主控者下達命令採起各類行動,或在適當時機竊取我的信息 的惡意程序取而代之。他們不斷創造出行蹤更隱匿的惡意程序,像是視頻垃圾郵件-內含視頻而非文字的垃圾郵件。
惡意代碼按傳播方式能夠分紅幾類:病毒,***,蠕蟲,移動代碼。
病毒通常都具備自我複製的功能,同時,它們還能夠把本身的副本分發到其餘文件、程序或電腦中去。病毒通常鑲嵌在主機的程序中,當被感染文件執行操做的時候(例如:打開一個文件,運行一個程序,點擊郵件的附件等),病毒就會自我繁殖。
特洛伊***這類惡意代碼是根據古希臘神話中的***來命名的,它從表面上看是正常的程序,可是實際上卻隱含着惡意 意圖。一些***程序會經過覆蓋系統中已經存在的文件的方式存在於系統之中,同時它能以加載惡意代碼動態庫的方式攜帶惡意代碼程序,還有一些***會以一個軟 件的身份出現(例如:一個可供下載的遊戲,將***捆綁在軟件安裝程序上),但它其實是一個竊取密碼的工具。這類應用一般在網絡遊戲盜號***上。大多數木 馬均可以使***的控制者登陸到被感染電腦上,並擁有絕大部分的管理員級別的控制權限。爲了達到這個目的,***通常都包括一個客戶端和一個服務器端。客戶端 放在***控制者的電腦中,服務器端放置在被***電腦中,***控制者經過客戶端與被***電腦的服務器端創建遠程鏈接。一旦鏈接創建,***控制者就能夠經過對 被***電腦發送指令來傳輸和修改文件。一般***具備很強的隱敝性,會採用多種手段隱藏***。隱藏惡意進程的痕跡,例如使惡意進程不在進程列表中顯示出來 等。常見的***有灰鴿子、彩虹橋、Poison_Ivy、守望者、上興遠控、turkojan等一些***。
蠕蟲是一種能在沒有任何用戶動做的狀況下自動傳染計算機的病毒變形。蠕蟲不修改文件,而是常駐在內存裏並複製自 己。蠕蟲使用操做系統的一部分,這部分對於用戶來講是自動且無形的。一般只有在它的沒法控制的瘋狂複製佔用了系統資源使得其餘的 任務緩慢甚至停滯的狀況下才會發現它們。蠕蟲的自我複製不像其餘的病毒,它能夠自動建立與它的功能徹底相同的副本,並在沒人干涉的狀況下自動運行。蠕蟲是 經過系統存在的漏洞和設置的不安全性(例如:設置共享)來進行***的。它的自身特性可使它以極快的速度傳輸(在幾秒中內從地球的一端傳送到另外一端)。其 中比較典型的有Blaster和SQL Slammer。
移動代碼是可以從主機傳輸到客戶端計算機上並執行的代碼,它一般是做爲病毒,蠕蟲,或是特洛伊***的一部分被傳 送到客戶計算機上的。另外,移動代碼能夠利用系統的漏洞進行***,例如非法的數據訪問和盜取root帳號。一般用於編寫移動代碼的工具包括Java applets,ActiveX,JavaScript,和VBScript。
瞭解了惡意代碼的基本概念後,葉子再跟你們一塊兒來研究對惡意代碼的分析流程。
◆首先,咱們經過各類渠道收集到最新的未知惡意代碼樣本時,進行文件格式分析。經過PEID之類的工具進行文件格式檢查,分析樣本是否進行加殼處 理?樣本是何種語言編寫的?以及是否有其它附加的數據等。樣本通過加殼的程序,須要對其進行查殼,肯定程序的加殼類型,並經過脫殼工具或手段進行脫殼,分 析出程序的編程語言。若是沒法查出殼類型,則認爲是一個未知的殼,能夠結合動態脫殼進行分析。另外經過PE文件的區段來肯定是否有附加進去的數據。
◆接着,咱們對樣本文件的屬性進行查看分析。查看樣本的數字簽名,排除僞造簽名的狀況。對於持有那些大公司的數字簽名,能夠經過文件屬性中的相關信息進行查看分析。另外查看文件的文件屬性,能夠對文件的是否正常、或已被修改的狀況進一步的分析。
接下來,咱們對樣本的行爲進行分析,分析它的本地感染行爲,以及網絡傳播行爲。本地行爲分析過程須要使用文件監視工具、註冊表監視工具來肯定惡意代 碼對系統作了哪些行爲。一般狀況下樣本會釋放出病毒體,並把它拷貝到系統目錄下,並且經過添加註冊表到系統啓動項、系統服務啓動、注入系統進程中等等方 式。另外經過網絡抓包工具(sniffer、IRIS等),分析其與哪一個網站進行鏈接,打開哪一個端口,下載哪些文件,執行哪些操做命令等等的過程。
而後,咱們經過靜態反彙編工具(IDA等)對的惡意代碼程序的PE文件進行反彙編。經過分析靜態反彙編後的文件中所使用的字符串、API函數等信息,來判斷此樣本的基本功能和特色。經過查看PE文件的導入表來判斷基本功能和特色等。
最後,咱們經過動態調試對惡意代碼加載調試,進一步分析代碼的操做。用動態調試器(OD等工具)載入病毒後,在程序進程的各個可疑的地方下斷點,根 據代碼來肯定惡意代碼的有害操做。固然最後還要造成相關的惡意代碼分析報告,並對惡意代碼進行命名規範,並且還須要對樣本使用MD5進行完整性校驗。
下面葉子舉個例子來對惡意代碼進行分析:
從用戶的網絡環境中收集到熊貓燒香的變種樣本,咱們須要對其進行初步的分析及瞭解。咱們先把病毒樣本放入帶有病毒分析環境的虛擬機中,包含分析過程須要的各類工具。
◆首先用PEID工具偵查其文件格式及殼的型號,以下圖:
◆接着進行脫殼操做。(葉子在這裏使用×××的自動脫殼器,能夠根據本身對工具的使用習慣進行選擇自動脫殼工具或手工脫殼)
◆再次使用PEID進行偵查,發現還有一層Morphine的殼在使用。
◆再次進行脫殼,最後偵查的結果是使用Dephi語言進行編碼。
◆經過註冊表監視工具RegMon,監視病毒運行時對註冊表的操做行爲;經過文件監視工具FileMon監視病毒運行時對文件的操做行爲。也能夠用 快照工具RegSnap進行註冊表和指定目錄下的文件進行先後對比,快速找出病毒新建和修改的註冊表,以及本地文件的釋放行爲。
文件運行後會釋放如下文件
%System32%/drivers/spo0lsv.exe 32,768字節
新增註冊表
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\run]
%System32%/drivers/spo0lsv.exe
另外有些還須要手工進行查找。如對IE的臨時文件、host文件、msconfig文件等進行手工分析,查看是否對這些文件進行修改或者在目錄下生成新的文件。
◆經過Sniffer工具進行網絡監視。後門類與***類病毒在成功感染後,每每會把蒐集到的用戶信息發送出去,或是主動鏈接下載病毒的主程序,這樣就必然要進行網絡操做。經過一些網絡監視工具,來發現病毒的網絡行爲。
本樣本經過sniffer工具抓包分析的鏈接網絡行爲以下:
協議:TCP
域名或IP地址:
[url]www.google.com[/url] (64.233.189.99)
端口:80
對目標主機的操做:經過QQ代理進行訪問www-china.l.google.com
……
病毒感染後,帶有QQ尾巴的功能,能經過QQ代理訪問上述網址。
經過靜態分析調式,進一步分析病毒的一些特徵行爲。樣本中病毒釋放後,病毒體爲spo0lsv.exe文件,所以須要對此病毒作殼的偵查及脫殼工做(略過)。經過IDA靜態分析工具分析脫殼後的spo0lsv.exe樣本,以下圖所示:
經過觀察「strings」窗口,能夠初步分析樣本的一些狀況。如能夠看出樣本是用Delphi語言編寫的等等。經過觀察「Imports」窗口中 的API函數,能夠看到系統調過了一些網絡行爲的API函數,如InternetOpenUrlA、InternetOpenA、 URLDownloadToFileA等函數。結合反彙編代碼分析,能夠看出病毒會關閉的殺毒軟件有VirusScan、NOD3二、Symanter AntiVirus、Duba、System Safety Monitor、Wrapped gift Killer、遊戲***檢測大師、×××、IcdSword等等。病毒會刪除系統的共享文件:
cmd.exe /c net share
$ /del /y
cmd.exe /c net share admin$ /del /y
遍歷盤符在各分區和移動存儲介質中釋放隱藏病毒文件和autorun.inf,使用Windows自動播放功能來傳播病毒;以批處理的形式將病毒原文件刪除。
◆經過動態分析調式,使用OllyDBG工具進行調式,進一步分析樣本的操做行爲。經過跟蹤調式,發現樣本可使用API函數 URLDownloadToFileA將其餘病毒程序下載到本地並運行,樣本中帶有下載病毒文件的地址,但在程序中沒有激活,因此沒有真正下載的動做。本 病毒包含原來的熊貓燒香病毒的特徵以及金豬報喜的特徵。
最後要把分析過程當中的結果造成相關的惡意代碼分析報告,收集惡意代碼的樣本、釋放的文件、以及網絡行爲的數據包,並對惡意代碼進行命名規範,並且還須要對樣本使用MD5進行完整性校驗。
本文主要說明惡意代碼及其相關的分析研究流程,至於經過逆向工具具體分析惡意代碼的操做實驗步驟,葉子將在之後的文章中作進一步的介紹。