Your AI Assistant in Memory Forensics について
Volatility 3 のメモリフォレンジックフレームワークを FastAPI 経由で公開する MCP サーバーで、Claude Desktop などの MCP クライアントから自然言語でメモリイメージを分析できます。プロジェクトは初期段階です。
主な機能
- 01Volatility 3 によるメモリイメージの分析
- 02FastAPI による REST エンドポイント
- 03pslist と netscan プラグインへの対応
- 04MCP クライアントからの自然言語による問い合わせ
活用シーン
- 01メモリイメージ内の実行中プロセスの一覧取得
- 02メモリイメージ内の外部ネットワーク接続の確認
- 03メモリフォレンジック分析の支援
MCP 対応
本プロジェクトは MCP サーバー(vol_mcp_server.py)であり、バックエンドの FastAPI サービスと Volatility 3 を介して、Claude Desktop などの MCP クライアントにメモリ分析機能を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
メモリフォレンジックの AI アシスタント
概要
Volatility MCP は、Volatility 3 の強力なメモリ分析機能を FastAPI および Model Context Protocol(MCP)とシームレスに統合します。pslist や netscan などのプラグインを使いやすい REST API 経由で利用できるため、メモリアーティファクトを AI アシスタントや Web アプリケーションに直接接続でき、障壁なくメモリフォレンジックを実施できます。
特長
- Volatility 3 の統合: メモリイメージの分析に Volatility 3 フレームワークを活用します。
- FastAPI バックエンド: Volatility プラグインとやり取りするための RESTful API を提供します。
- Web フロントエンドのサポート(今後の機能): インタラクティブな分析を行うため、Web ベースのフロントエンドとの接続を想定して設計されています。
- Model Context Protocol(MCP): Claude Desktop などの MCP クライアントとの標準化された通信を可能にします。
- プラグインのサポート: プロセス一覧を表示する
pslistやネットワーク接続を分析するnetscanなど、さまざまな Volatility プラグインをサポートします。
アーキテクチャ
このプロジェクトのアーキテクチャは、次のコンポーネントで構成されています。
- MCP クライアント: FastAPI バックエンドとやり取りする、Claude Desktop などの MCP クライアントです。
- FastAPI サーバー: Volatility プラグインを API エンドポイントとして公開する、Python ベースのサーバーです。
- Volatility 3: 分析を実行するメモリフォレンジックフレームワークです。
このアーキテクチャにより、Claude Desktop などの MCP クライアントを通じてメモリイメージを分析できます。ユーザーは、「メモリイメージ x のプロセス一覧を表示して」や「確立されたすべての外部接続を表示して」といった自然言語のプロンプトを使用して、メモリフォレンジック分析を実行できます。
はじめに
前提条件
- システムに Python 3.7 以降がインストールされていること
- Volatility 3 のバイナリがインストールされていること(Volatility 3 インストールガイドを参照)。また、環境パスに VOLATILITY_BIN という名前で追加されていること
インストール
-
リポジトリをクローンします。
git clone <repository_url> cd <repository_directory> -
必要な Python 依存関係をインストールします。
pip install -r requirements.txt -
FastAPI サーバーを起動して、Volatility 3 API を公開します。
uvicorn volatility_fastapi_server:app -
Claude Desktop をインストールします(Claude Desktopを参照)。
-
Claude Desktop を Volatility MCP クライアントとして設定するには、Claude → Settings → Developer → Edit Config に移動し、claude_desktop_config.json ファイルを見つけて、次の設定を追加してください。
-
config.json ファイルの
-iオプションで、メモリイメージファイルのディレクトリパスを指定することに注意してください。{ "mcpServers": { "vol": { "command": "python", "args": [ "/ABSOLUTE_PATH_TO_MCP-SERVER/vol_mcp_server.py", "-i", "/ABSOLUTE_PATH_TO_MEMORY_IMAGE/<memory_image>" ] } } }
または、このファイルを直接更新してください。
/Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json
使用方法
- 上記の説明に従って FastAPI サーバーを起動します。
- MCP クライアント(例:Claude Desktop)を FastAPI サーバーに接続します。
- 対象のメモリイメージに関する質問をして、プロンプトを開始します。たとえば、実行中のプロセスの表示、プロセス x のツリー構造グラフの作成、または RFC1918 に該当するすべての外部接続の表示を依頼します。
今後の機能と拡張
- Volatility Python のネイティブ統合: サブプロセスとして Volatility バイナリを使用するのではなく、Volatility Python SDK をコードベースに直接組み込みます。
- Yara の統合: メモリからプロセスをダンプし、Yara ルールでスキャンしてマルウェアを分析する機能を実装します。
- 複数イメージの分析: 複数のメモリイメージを同時に分析し、イベントを関連付けて、異なるシステム間のパターンを特定できるようにします。
- Volatility プラグインの追加: メモリ分析の対象範囲を広げるため、Volatility プラグインを追加します。
- GUI の拡張: 対話的なメモリ分析と可視化を行う、使いやすいウェブインターフェースを開発します。
- レポート生成の自動化: メモリ分析で判明した内容をまとめた詳細なレポートの生成を自動化します。
- 高度な脅威検出: 高度な脅威や異常を検出するための高度な手法を取り入れます。
貢献
貢献を歓迎します!貢献するには、次の手順に従ってください。
- このリポジトリをフォークします。
- 新しいブランチを作成します(
git checkout -b feature/my-feature)。 - 変更をコミットします(
git commit -m 'Add some feature')。 - ブランチにプッシュします(
git push origin feature/my-feature)。 - プルリクエストを作成します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
