在開始分析惡意程式以前,我們需要先建立一個可以安全分析的環境,以避免發生無法復原的災難,以下以筆者的真實經歷為惕,請不要模仿XD
剛開始入門資安的時候有一場 CTF 題目是勒索軟體的逆向,不知道是題目的說明我看不懂還是其實這是常識不用說明(?總之我完全沒有想到要隔離環境,就直接傻傻地下載到本機來跑,於是就看到勒索軟體在本機上跑了起來,然後看著他把電腦的檔案鎖起來,最後跳出要匯比特幣的畫面。不知道為甚麼莫名覺得很舒壓,而且因為他只會鎖特定資料夾的檔案,加上還不會動態分析,就一直點兩下讓他再鎖一次。當然以上我相信正常人都不會發生,應該只是我腦迴路特別清奇(?但還是姑且警告一下XD
既然要分析惡意程式,那我們首先就必須要取得可以拿來分析的樣本,以下列出幾個可以直接安全取得的平台:
這是一個開放可以直接免費下載樣本的平台,樣本量非常龐大,免費用戶的話一天可以下載 100~200 個,訂閱的可以下載更多。
這個平台的功能是蒐集和共享惡意程式,可以在上面下載別人上傳的檔案,也可以自己上傳。
這是前陣子看到 HackerCat 分享的專案,裡面包含 53 年以來的 malware,像是一個 malware 博物館,還可以用關鍵字搜尋。
有了樣本以後,我們要先有一個可以安全分析的環境才能開始,否則不只是電腦有受害的可能,也會散播到其他機器及網路上並且很難移除,於是以下介紹如何建立環境:
惡意程式的分析可以用專屬並隔離網路的個人主機,不過由於斷網,某些惡意程式利用網路連線更新、連線 C2 的功能就無法觀察,且在實體環境中難以移除,所以使用實體機器研究時經常用 Norton Ghost (超級古老工具XD)這種硬碟備份的工具,而在實體環境的好處就是有時候惡意程式判斷到自己身在虛擬機裡面就會有不同的行為。不過由於虛擬機的方便性和實體環境的風險,以下還是以虛擬機的環境來做介紹:
虛擬機就像是在電腦裡面的電腦,而虛擬機上的作業系統是安裝在主機作業系統上的 guest OS,並且與主機的 host OS 隔離,因此在虛擬機上跑的惡意程式無法對主機造成傷害,且如果惡意程式對虛擬機造成損害,也可以輕易地重新安裝或是回復到乾淨的狀態。

針對 Windows 虛擬機可以直接去官網下載
針對 Linux 虛擬機可以參考
在虛擬機上先安裝好需要的工具,如 IDA 或 Ghidra,及 x64dbg、FakeNet-NG 等等
在 VMware 進行設定的時候,可以設定 Host-only,也就是建立一個只存在於 Host 與 VM 之間的虛擬區域網路而不會連到網際網路,也可以直接把網路拔掉,因為之後也是要用 FakeNet-NG 來模擬網際網路。但是會有某些部分不好分析,所以這邊使用 Host-only。VMware 不同虛擬網路連接模式可以參考這篇。而虛擬機與主機設定的 Host-only 網路架構如下

首先打開 VMware Workstation Pro 並且選取虛擬機
Hardware -> Network Adapter -> Host-only

如果要移除網路就直接按左下的 Remove
為了避免主機資料穿透,要把和主機共享資料夾以及互相複製貼上的功能還有 USB passthrough 關掉
Options -> Guest Isolation -> 把 Enable drag and drop 跟 Enable copy and paste 關掉

Shared Folders 改成 Disabled

直接把 USB Controller 移除

為了避免在惡意程式分析的過程中有部分行為被擋掉或是一直噴警告,要先把防火牆跟防護關掉。然後因為 PMA 的教材裡面是針對 Windows 的 malware analysis,所以這邊只介紹 Windows 的設定。
首先把 Windows Firewall 關掉


並且關掉 Windows Defender


關閉 Windows Update

在工具都裝好、隔離設定與防火牆等等都設定好以後,要先建立一個乾淨的快照

按+號就可以建立快照
現在已經建立好乾淨的快照,分析時出問題可以隨時回復,接著就可以隨時把惡意程式拉進來,可以看要暫時開啟拖拉從本機拖壓縮檔過來或是在 LAN 中傳送過來,然後每次拉完新的惡意程式也要記得建立快照,時間線大概像是這樣,分析的過程也可以視情況再新增快照。

現在我們已經成功地準備好了我們的惡意程式分析環境,以下再次複習我們所要做的步驟
明天開始就會介紹基本的靜態分析!
