前段時間拜讀了《惡意**分析實戰》一書,算是對整個病毒分析的流程和常用方法有個大致的了解,現在總結一下,也算是給自己做的乙個筆記。
首先,病毒分析師必須具備以下知識:程式設計、彙編/反彙編、逆向分析、pe檔案結構以及一些常用行為分析軟體。下面開啟我們的旅程。
一、在乙個已經感染了病毒的機器上如何找到病毒檔案?
找到病毒才能對其分析,找到病毒檔案就是就是分析的第一步,一般來講,病毒執行必然會建立乙個程序,而這個程序就是我們找到他的突破口,乙個開啟的程序,可以通過任務管理器右鍵開啟檔案所在位置來找到其映像檔案的位址,這樣就能找到病毒檔案了
但是,現在的病毒越來越精明了,你可能會遇到乙個病毒將其自身的程序隱藏了,一般來講,隱藏程序的方式就是「脫鏈」,在peb(程序環境塊)中 有三條鍊錶,其中一條鍊錶的指向程序,該鍊錶的每乙個元素代表著每乙個程序,如果想對某程序隱藏,那麼進行「脫鏈」(即刪除聊表中的一項)即可,不要奇怪,脫鏈操作只是在鍊錶中刪除,系統中還是存在該程序的,就好像你用closehandle關閉乙個程序控制代碼,但是該程序仍然繼續執行一樣。對於這樣乙個隱藏了自己的程序,可以用rootkit工具,如xuetr、冰刃等進行檢視,當然可能還有一些暴利查程序的工具也是可以查到的。
好了,找到了病毒檔案,下面可以對其進行分析了,分析病毒一般是要在虛擬機器中執行,如果你不怕死,也可以在自己物理機上跑起。。。
二、如何通過靜態基礎分析獲取一些相關資訊?
拿到乙個程式,先別著急盲目的跑起,我們先獲取一些基本的資訊,這些東西可能會對你在後面的分析起到很大的作用。
首先,我們用peid檢視一些基本資訊,如果沒有殼,也沒有隱藏匯入表,那麼你運氣還不錯,快看看匯入表吧,乙個程式想對你的電腦進行某些操作,那麼它必然會呼叫系統api,而匯入表可以告訴我們這個程式呼叫了哪些api,我們憑藉這些匯入函式,可以大致猜測一下這個程式作了什麼,例如我們看到copyfile,就可以猜測一些這個程式是不是自我複製了等等。總之,匯入表可以告訴我們太多太多的資訊,有經驗的病毒分析人員基本可以憑藉匯入表就能確定分析方向了。但是,這些只對沒有加殼和沒有隱藏匯入表,並且是正常呼叫api的病毒有效,如果加了殼,你可以先嘗試脫殼再來檢視匯入表,更鬱悶的是有些黑客為了隱藏呼叫函式,使用了getprocaddress配合函式指標來呼叫api,這樣的話,匯入表就無法對我們提供有效的幫助了。即便如此,這仍然是病毒分析的第一步。
三、如何確定病毒究竟幹了些什麼?
這個時候那就需要用到動態基礎分析了,別猶豫,上虛擬機器,跑起來看看吧,跑之前我們先要開啟一些行為監控軟體,最常用的是微軟提供的process monitor,這款軟體功能非常強大,可以監控到登錄檔、檔案、程序、模組、網路、使用者等等等等資訊,用之前先要對其設定一下,按ctrl+l開啟過濾對話方塊,選擇名稱,然後輸入你要分析的病毒的名字,然後新增包含。
pm監控獲取的資訊太龐大了,不利於我們觀察,我們要對齊進行一些篩選,一般來講,凡是涉及開啟、關閉、查詢、列舉等這一類不會對具體內容進行影響的操作我們將其過濾掉,重點觀察設定、寫入、刪除、複製等這些有實際影響的操作,然後可以根據行為來進行分析它究竟幹了些什麼,當然你也需要時刻關注他的程序樹,微軟提供的另一款工具process explorer可以很好的做到這一點,注意觀察,看看該程式是否開啟了其他子程序,往往很多病毒並不在自己的程序裡做什麼,而是生成另乙個檔案或者建立另乙個程序來操作。
四、逆向分析
對於很多病毒,我們只需要通過上面的操作來確定他幹了些什麼就可以了,但是有一些情況我們必須對其進行逆向剖析,第一種情況就是感染型病毒,普通的惡意軟體,我們可能只是需要知道他們幹了些什麼就行了,但是對於感染型病毒,我們還應該知道他們具體感染了宿主程式的哪個部分,這樣才能對被感染程式進行修復,而這些只有通過逆向分析才能獲得。
另一種情況就更加的體現了行為分析這種方式的弊端了,那就是有些病毒的惡意行為不是一直都表現出來的,可能需要特殊條件才觸發,比如等個一兩年,再比如一些特定的條件才觸發,這個時候我們也只能通過逆向分析來對其進行剖析。
至於逆向分析的方式,有靜態的ida和動態的od,一般來講,至於用哪個,那就得結合實際情況了。
五、脫不掉殼的程式怎麼辦?
脫不掉殼的情況也分好多種,如果是一般的牆殼,雖然脫不掉,仍然可以用od動態分析,在一些關鍵的api下斷點,看看他傳了哪些引數猜測一下做了什麼。
但是對於vmp這樣的虛擬機器殼,那就只能進行動態分析草草了事了,如果vmp恰好又是感染型的呢?如何得知他究竟感染了檔案的哪個部分?解決的方法就是讓他感染乙個檔案,分析該檔案感染前和感染後的區別吧。
總結:以上這些只是常規的一些分析流程,但是具體分析起來,各種意料不到的情況,曾經面試的時候有人問我,病毒分析師最重要的是什麼,我就回答了倆字"感覺",很多時候是靠感覺猜的,當然這個感覺是建立在知識和經驗的基礎上。另外,在實際的反病毒過程中,經常會碰到反除錯和反虛擬機器等各種情況,那些都是經驗之談了,這裡不再贅述,寫到這裡也累了,收場吧。。。。
病毒分析必備工具及基本流程
快畢業了也應該給自己定個明確的方向,對於病毒分析這方面的知識確實還是感興趣的,這裡收集了一些資料,給大家分享一下。以下來自烏龜,略有改動 先說說硬體 條件允許的情況下,2條不同網路運營商提供的線路,2臺或以上的電腦,具體配置自己感覺滿意就行 雖然用虛擬機器也可以,但難免某些惡意 有虛擬機器檢測機制,...
病毒分析必備工具及基本流程
快畢業了也應該給自己定個明確的方向,對於病毒分析這方面的知識確實還是感興趣的,這裡收集了一些資料,給大家分享一下。以下來自烏龜,略有改動 先說說硬體 條件允許的情況下,2條不同網路運營商提供的線路,2臺或以上的電腦,具體配置自己感覺滿意就行 雖然用虛擬機器也可以,但難免某些惡意 有虛擬機器檢測機制,...
Android病毒分析技巧和方法總結
android病毒分析技巧和方法 分析前的準備工作 析前首先了解應用自身的的功能,不要將應用自身的工作當作惡意行為來處理.看許可權,根據應用的許可權判斷應用可以產生哪些行為,並判斷出這些許可權是否和應用的功能相關,如果有與應用本身不相關的功能那麼針對這些許可權的產生的行為要進行確認 的病毒屬於在正常...