使用 LiME 和 Volatility 分析記憶體鑑識 是做什麼的?
使用時機
- 調查需要分析記憶體鑑識的安全事件時
- 為此領域建立檢測規則或威脅獵捕查詢時
- SOC 分析師需要此分析類型的結構化程序時
- 驗證相關攻擊技術的安全監控覆蓋範圍時
前置條件
- 熟悉安全運作概念與工具
- 能存取安全執行的測試或實驗環境
- 已安裝 Python 3.8+ 及所需依賴套件
- 取得任何測試活動的適當授權
操作說明
使用 LiME 核心模組擷取 Linux 記憶體,再以 Volatility 3 從記憶體映像中萃取鑑識證據。
# LiME 擷取
insmod lime-$(uname -r).ko "path=/evidence/memory.lime format=lime"
# Volatility 3 分析
vol3 -f /evidence/memory.lime linux.pslist
vol3 -f /evidence/memory.lime linux.bash
vol3 -f /evidence/memory.lime linux.sockstat
import volatility3
from volatility3.framework import contexts, automagic
from volatility3.plugins.linux import pslist, bash, sockstat
# 程式化使用 Volatility 3
context = contexts.Context()
automagics = automagic.available(context)
關鍵分析步驟:
- 使用 LiME 擷取記憶體(格式為 lime 或 raw)
- 使用 linux.pslist 列出程序,並與 linux.psscan 比對
- 使用 linux.bash 提取 Bash 命令歷史紀錄
- 使用 linux.sockstat 列出網路連線
- 使用 linux.lsmod 檢查已載入的核心模組,以偵測 rootkit
範例
# 完整鑑識工作流程
vol3 -f memory.lime linux.pslist | grep -v "\[kthread\]"
vol3 -f memory.lime linux.bash
vol3 -f memory.lime linux.malfind
vol3 -f memory.lime linux.lsmod