Unified Memory Forensics MCP Server について
DFIR 分析者向けのメモリフォレンジック MCP サーバーです。Rust エンジン、Python アナライザー、Volatility3 を組み合わせ、迅速な生データ処理から幅広いプラグイン解析まで三層で振り分けます。
主な機能
- 01Rust、Python、Volatility3 の三層エンジン
- 02メモリイメージの初期化とプラグイン実行
- 03自動トリアージとプロセス異常検出
- 04コード注入、ネットワーク、コマンドの分析
- 05認証情報の抽出と VirusTotal 照会
活用シーン
- 01メモリイメージの不審な活動のトリアージ
- 02プロセス異常と注入コードの調査
- 03ネットワーク接続とコマンド履歴の確認
- 04認証情報の抽出と脅威指標の照合
MCP 対応
MCP クライアントにメモリイメージ分析、トリアージ、フォレンジックプラグイン、抽出、脅威インテリジェンスのツールを提供します。ローカル stdio サーバーとして登録します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mem-forensics-mcp
統合メモリフォレンジック MCP サーバー - Rust の速度と Vol3 の対応範囲を組み合わせたマルチティアエンジンです。
アーキテクチャ
3 層のエンジンが、各ツールを最速のバックエンドに自動的に振り分けます。
LLM <-> [mem-forensics-mcp (Python)] <-> memoxide (Rust child, stdio MCP)
<-> Volatility3 (Python library)
| 層 | エンジン | 速度 | 対応範囲 |
|---|---|---|---|
| 層 1 | Rust (memoxide) | 高速 | pslist、psscan、cmdline、dlllist、malfind、netscan、cmdscan、search、readraw、rsds |
| 層 2 | Python アナライザー | 中速 | プロセスの異常、C2 の検出、認証情報、YARA、VT との連携 |
| 層 3 | Volatility3 | 低速 | 任意の vol3 プラグイン(filescan、handles、svcscan、driverscan、...) |
インストール
前提条件
# Install uv (fast Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Ensure Python 3.10+
python3 --version
PyPI からインストール
uv venv .venv
uv pip install --python .venv/bin/python3 mem-forensics-mcp
ソースからインストール
git clone https://github.com/x746b/mem_forensics-mcp.git
cd mem_forensics-mcp
# Full install (recommended)
uv sync --extra full
# Minimal (Vol3 only, no YARA/VT)
uv sync --extra volatility3
Rust エンジンをビルドする(任意)
aarch64-linux と x86_64-linux 用のビルド済みバイナリが engines/memoxide/ に含まれています。サーバーはホストのアーキテクチャを自動検出します。ソースからビルドするには、次の手順を実行します。
# Requires Rust toolchain (https://rustup.rs)
cd engines/memoxide-src
cargo build --release
# Binary lands at engines/memoxide-src/target/release/memoxide
# The server auto-detects it (prefers local build over prebuilt)
Volatility3 を設定する(任意)
Vol3 が /opt/volatility3 にインストールされている場合は自動検出されます。それ以外の場合は、export VOLATILITY3_PATH="/path/to/volatility3" を設定します。
確認
uv run python -m mem_forensics_mcp.server
# Should show: Rust engine: available, Volatility3: available
MCP クライアントへの追加
mem-forensics-mcp を、MCP クライアントの設定でローカルの stdio サーバーとして登録します。設定形式と場所はクライアントによって異なります。mcpServers JSON に対応するクライアントでは、次のように設定します。
{
"mcpServers": {
"mem-forensics-mcp": {
"command": "/absolute/path/to/.venv/bin/python3",
"args": ["-m", "mem_forensics_mcp.server"]
}
}
}
コマンドを、仮想環境の Python インタープリターの絶対パスに置き換えます。ソースをチェックアウトした場合は、uv sync の実行後、/path/to/mem_forensics-mcp/.venv/bin/python3 が該当します。PyPI からインストールした場合は、インストール時に作成された .venv を使用します。クライアントが別の設定形式を使用する場合は、その MCP サーバー設定で同じコマンドと引数を入力します。
Volatility3 がカスタムの場所にインストールされている場合は、サーバーの環境設定で VOLATILITY3_PATH に絶対パスを設定します(たとえば、JSON の例では "env": {"VOLATILITY3_PATH": "/path/to/volatility3"})。クライアントの MCP サーバー一覧を使って、接続を確認します。
クイックスタート
# 1. Initialize
memory_analyze_image(image_path="/evidence/memory.raw")
# 2. Full triage
memory_full_triage(image_path="/evidence/memory.raw")
# 3. Drill down
memory_run_plugin(image_path="/evidence/memory.raw", plugin="malfind", pid=1234)
memory_analyze_image は、2 つのレベルで準備状況を報告します。
readyとsession_ready:エンジンがイメージを開き、セッションを再利用できます。raw_ready:searchやreadrawなど、OS に依存しない Rust の操作を利用できます。structured_ready:構造を認識するプラグインに必要なシンボル/プロファイルデータが揃っています。
ready は後方互換性のための session_ready のエイリアスであり、
Volatility のプロセス、ネットワーク、コマンドの各プラグインを実行できることを意味するものではありません。これらのツールを選択する前に、os_type、
structured_ready、capabilities、warnings を確認してください。
Linux の構造認識型分析では、シンボルディレクトリまたは 明示的な ISF ファイルを指定してください。Linux の ISF が自動的にダウンロードまたは生成されることはありません。
memory_analyze_image(
image_path="/evidence/memory.lime",
symbols_root="/evidence/symbols",
# or: isf_path="/evidence/symbols/5.10.0-35-amd64.json.xz",
)
一致する ISF がなくても、LiME イメージでは search と readraw を利用できます。
分析結果には正確なカーネルバナーと、推奨される ISF ファイル名が含まれます。シンボルが読み込まれている場合、プロセスツリーは linux.pslist.PsList に、
コマンド履歴は linux.bash.Bash に振り分けられ、汎用 Linux Volatility
プラグインは memory_run_plugin から利用できます。
ツールリファレンス
コア
| ツール | 層 | 説明 |
|---|---|---|
memory_analyze_image | 1->2 | イメージを初期化し、プロファイルを自動検出します |
memory_run_plugin | 1->3 | 任意のプラグインを実行します(Rust または Vol3) |
memory_list_plugins | - | 利用可能なプラグインを一覧表示します |
memory_list_sessions | - | アクティブなセッションを一覧表示します |
memory_get_status | - | エンジンの状態を表示します |
分析
| ツール | ティア | 説明 |
|---|---|---|
memory_full_triage | 1+2 | 調査を完全に自動化します |
memory_hunt_process_anomalies | 2 | DKOM 検出、親子関係の検証 |
memory_get_process_tree | 2 | 不審な項目を強調表示したプロセスツリー |
memory_find_injected_code | 1->2 | コードインジェクション + YARA スキャン |
memory_find_c2_connections | 1+2 | ネットワーク上の C2 を検出 |
memory_get_command_history | 1+2 | コマンドの復元 + 分類 |
memory_extract_credentials | 2 | Vol3 によるハッシュ/シークレットの抽出 |
抽出
| ツール | ティア | 説明 |
|---|---|---|
memory_dump_process | 2 | プロセス情報と読み込まれた DLL |
memory_dump_vad | 2 | メモリ領域の詳細を調査 |
memory_list_dumpable_files | 3 | キャッシュされたファイルを一覧表示 |
脅威インテリジェンス
| ツール | 説明 |
|---|---|
vt_lookup_hash | VirusTotal のハッシュ検索 |
vt_lookup_ip | VirusTotal による IP のレピュテーション確認 |
vt_lookup_domain | VirusTotal によるドメインのレピュテーション確認 |
vt_lookup_file | ファイルのハッシュ取得 + VT 検索 |
例:トリアージの全出力
Windows 10 のメモリダンプ(Win10 19041、x64、VMware)に対して memory_full_triage を実行します:
{
"threat_level": "critical",
"risk_score": 100,
"summary": "Processes: 115 found. Process Anomalies: 4 info-level. Network: 4 flagged of 79 connections. Commands: 56 memory fragments. Injected Code: 12 RWX regions. Correlations: 2 critical.",
"engine": "rust+python"
}
主な検出結果:
| カテゴリ | 詳細 |
|---|---|
| 不審なプロセス | explorer.exe から起動された mmc.exe が、ブラウザーのダウンロードフォルダーにある .msc ファイルを読み込んでいます |
| インジェクションされたコード | mmc.exe に RWX のプライベートメモリ領域が 4 つ、EXCEL.EXE に 2 つあります |
| 子プロセス | mmc.exe が、実行可能な RWX 領域を持つ dllhost.exe を起動しました |
| ネットワーク | svchost.exe がポート 443/80 で外部 IP アドレスに接続しています |
| 相関 | active_implant + active_c2_session が重大としてフラグ付けされました |
| IOC | 不審な外部 IP アドレスが自動的に抽出されました |
ファイルスキャンをフィルターして詳細を調査:
memory_run_plugin(image_path="memory.raw", plugin="filescan", filter="notepad")
# Returns: 2 of 7612 results matched (server-side grep before truncation)
関連プロジェクト
- winforensics-mcp — Windows ディスクフォレンジック(EVTX、Registry、MFT、Prefetch、YARA、PCAP)
- mac_forensics-mcp — macOS DFIR(Unified Logs、FSEvents、Spotlight、Plists)
MIT License | xtk | DFIR コミュニティ向けに構築されています。Windows は不要です >)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。