LiMEとVolatilityによるメモリフォレンジック分析 は何をしますか?
使用するタイミング
- 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でメモリを取得(format=lime または format=raw)
- linux.pslistでプロセスをリストアップし、linux.psscanと比較する
- linux.bashでbashコマンド履歴を抽出する
- linux.sockstatでネットワーク接続をリストアップする
- linux.lsmodでロード済みカーネルモジュールをチェックし、ルートキットを検出する
例
# 完全なフォレンジックワークフロー
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