【惡意軟體分析】基礎概念篇


前言

轉職 ~~ 學習到 Malware Analysis 跟逆向分析的東西,把基礎概念與工具用途紀錄一下。


📝 本篇說明紀錄兩個部分

  • Analysis Environment
  • Analysis Step
    • Static Analysis
    • Dynamic Analysis
    • Reverse Engineering

📝 Analysis Environment ( 分析環境 )


  • 最常見的就是 Windows ,大多的惡意程式都是針對 Windows 去設計。
  • Remux Linux 的版本,裡面預載許多常用到的分析工具。


🔥 Analysis Step 🔥



📝 Analysis Analysis


  • 不執行的去分析惡意程序的內容,針對 Windows 的話可以用下列工具
    • PE Studio :可以初步的做分析,查看 PE 資訊與 檔案的 strings。
    • IDA :逆向標配,可以查看 assembly,需有組合語言的能力。
    • Ghidra
    • PE Bear / PE View :可以針對 PE 檔案格式做深入研究。
    • oledump.py :針對 Office 格式 ( Word, Excel ) 分析裡面的 Macro。
    • pdf-parser.py :針對 PDF 格式分析裡面的 Object。

📝 Dynamic Analysis


  • 靜態分析完了之後想驗證自己的想法,可以使用動態分析
  • 動態分析方法比較多種,但大致可以分成自動跟手動
    • Cuckoo :沙盒標配,資料相當完整,但偶而會被Anti-debug/analysis的招式抓到直接不執行。
    • ANY.RUN :可以直接跟沙盒內的 Windows VM 做互動。

  • 執行後去分析惡意程序的內容,針對 Windows 的話可以用下列工具
    • Process Hacker :記錄所有執行中的程式以及詳細內容 (Mutex, process handle…..) 一邊執行一邊看著,通常可以很好發現 Process Injection 的特徵。
    • Process Explorer :記錄所有API Usage,但建議搭配視覺化工具像是ProcDOT。
    • Wireshark :記錄所有網路封包。
    • RegShot :對 Registry 做快照,通常在執行前與後進行快照,然後對比看是否有被修改。
    • x64dbg :惡意程式分析、破解(Cracking)、程式錯誤診斷。

📝 Reverse Engineering


  • 從已編譯的程式碼回溯分析其內部運作方式 的技術
  • 分析惡意程式(Malware Analysis):找出病毒、木馬、勒索軟體的攻擊行為。
  • 破解軟體(Software Cracking):繞過軟體授權、DRM、序號驗證。
  • 安全性分析(Security Research):發現應用程式的漏洞(Exploit Development)。
  • 修復舊軟體(Legacy Software Maintenance):當源碼遺失時,還原程式運作邏輯。
  • 常用逆向工程工具
    • IDA Pro :最強靜態分析、互動式反組譯 。
    • Ghidra :NSA 開源逆向工具,支援多架構。
    • RetDec :開源反編譯工具,可還原 C 程式碼


🔗 參考來源