mcpField
M
macOS Forensics Mcp Server

macOS Forensics Mcp Server

ローカル
github.com/x746bセキュリティ94 週間前に更新

macOS Forensics Mcp Server について

macOS の DFIR 向け MCP サーバーで、トリアージデータを構造化して分析します。調査担当者が大規模な生ファイルを手作業で検索せずに、アーティファクトの確認やイベント検出、証拠の関連付けを行えます。

主な機能

  1. 01トリアージデータ内のアーティファクト検出
  2. 02Unified Logsとセキュリティイベントの検索
  3. 03plist、データベース、FSEvents、Spotlightの解析
  4. 04タイムスタンプのUTC変換
  5. 05タイムライン構築と証拠の関連付け

活用シーン

  1. 01アカウントの作成や削除の調査
  2. 02ファイル操作やダウンロードの追跡
  3. 03SSHセッションや権限昇格の確認

MCP 対応

アーティファクト検出、ログ・データベース分析、タイムライン構築、イベント調査など、23種類のフォレンジックツールをMCPクライアントに公開します。ローカルのstdio MCPサーバーとして動作します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

macOS フォレンジック MCP

mac_forensics-mcp

macOS のデジタルフォレンジックおよびインシデント対応(DFIR)向けの MCP(Model Context Protocol)サーバーです。

概要

この MCP サーバーは、macOS のトリアージコレクションに対する構造化されたフォレンジック分析ツールを提供し、LLM を使用したインシデント調査時のコンテキスト負荷を軽減します。

主なメリット:

  • 膨大なファイルを grep で直接検索する代わりに、構造化されたクエリを使用できます
  • タイムスタンプを自動的に正規化します(Mac Absolute Time → UTC)
  • セキュリティイベントの検出パターンをあらかじめ用意しています
  • 複数のアーティファクトを相関させ、タイムラインを作成できます
  • ページネーションにより、コンテキストのオーバーフローを防ぎます
  • 利用可能なアーティファクトを把握するための検出機能を備えています

Unified Logs、FSEvents、Spotlight、Plist、SQLite データベース、拡張属性、システムログなどを対象とする23 個のツールを提供します。

インストール

cd /opt/macOS/mac_forensics-mcp

# Create virtual environment and install dependencies
uv venv
uv pip install --python .venv/bin/python3 -e .

MCP クライアントへの追加

mac-forensics を、MCP クライアントの設定でローカルの stdio サーバーとして登録してください。設定の形式と保存場所はクライアントによって異なります。mcpServers JSON を受け付けるクライアントでは、次の設定を使用してください。

{
  "mcpServers": {
    "mac-forensics": {
      "command": "/absolute/path/to/mac_forensics-mcp/.venv/bin/python3",
      "args": ["-m", "mac_forensics_mcp.server"]
    }
  }
}

コマンドを、仮想環境の Python インタープリターの絶対パスに置き換えてください。クライアントが異なる設定形式を使用する場合は、MCP サーバーの設定から同じコマンドと引数を入力してください。クライアントの MCP サーバー一覧で、接続されていることを確認してください。サーバーを削除するには、クライアントの設定からそのエントリーを削除します。

利用可能なツール(23 個)

検出
ツール説明
mac_list_artifactsトリアージコレクションで利用可能なアーティファクトを検出します
Unified Logs
ツール説明
mac_unified_logs_search正規表現、フィルター、時間範囲を指定してログを検索します
mac_unified_logs_security_events定義済みのセキュリティイベント(user_created、ssh_session など)を取得します
mac_unified_logs_stats時間範囲や上位サブシステムなど、ログの統計情報を取得します
Plist ファイル
ツール説明
mac_plist_readPlist を読み取って解析し、必要に応じてキーのパスを抽出します
mac_plist_searchパターンに一致するキーを検索します
mac_plist_timestampsすべてのタイムスタンプ値を UTC に変換して抽出します
データベース
ツール説明
mac_knowledgec_app_usageKnowledgeC.db からアプリの使用状況を取得します
mac_safari_historySafari の閲覧履歴を取得します
mac_safari_searchesSafari の検索クエリを抽出します
mac_tcc_permissionsTCC の権限(カメラ、マイク、画面収録)を取得します
mac_quarantine_eventsファイルのダウンロード履歴を取得します
ユーザー分析
ツール説明
mac_get_user_accounts削除済みアカウントを含むユーザー一覧を取得します
mac_get_user_timeline特定のユーザーアカウントのタイムラインを作成します
FSEvents
ツール説明
mac_fsevents_searchファイルシステムイベント(作成、削除、変更、名前変更)を検索します
mac_fsevents_statsFSEvents の統計情報を取得します
拡張属性と Spotlight
ツール説明
mac_get_extended_attributesファイルの xattr(隔離情報、ダウンロード URL など)を取得します
mac_spotlight_searchSpotlight インデックスからファイルのメタデータを検索します
mac_spotlight_statsSpotlight インデックスの統計情報を取得します
システムログ
ツール説明
mac_parse_fsck_apfs_logfsck_apfs.log を解析し、ボリュームの作成、外部デバイス、アンチフォレンジックに関する情報を取得します
mac_fsck_apfs_statsデバイス、ボリューム、時間範囲など、fsck_apfs.log の統計情報を取得します
相関と調査
ツール説明
mac_build_timeline複数のアーティファクトから統合タイムラインを作成します
mac_investigate_event証拠を相関させて詳細な調査を行います

セキュリティイベントの種類

mac_unified_logs_security_events ツールは、次のイベントの種類に対応しています。

イベントの種類説明
user_createdユーザーアカウントの作成
user_deletedユーザーアカウントの削除
user_modifiedユーザーアカウントの変更
ssh_sessionSSH 接続
sudo_usageSudo コマンドの実行
auth_success認証の成功
auth_failure認証の失敗
process_execプロセスの実行
gatekeeperGatekeeper/隔離イベント
tcc_promptTCC 権限のプロンプト
loginユーザーのログイン
logoutユーザーのログアウト
screen_lock画面ロックイベント
screen_unlock画面ロック解除イベント
remote_loginリモートログインサービス
persistence永続化の仕組み

調査イベントの種類

mac_investigate_event ツールは、次のイベントの種類の詳細な調査に対応しています。

イベントの種類説明
user_deletionタイムラインと証拠の相関分析によるユーザーアカウント削除の調査
user_creationユーザーアカウント作成の調査
file_downloadファイルのダウンロードの調査(隔離、xattr、ブラウザー履歴)
ssh_sessionSSH セッションのアクティビティの調査
malware_executionマルウェアが実行された可能性の調査
privilege_escalation権限昇格の試みの調査

使用例

トリアージでアーティファクトを検出する
mac_list_artifacts(artifacts_dir="/path/to/triage")
ユーザー削除イベントを検索する
mac_unified_logs_security_events(
    log_path="/path/to/unified_logs.csv",
    event_type="user_deleted"
)
ユーザー削除を詳細に調査する
mac_investigate_event(
    artifacts_dir="/path/to/triage",
    event_type="user_deletion",
    target="username"
)
Safari の検索履歴を取得する
mac_safari_searches(
    db_path="/path/to/History.db",
    query_filter="delete"
)
plist から削除されたユーザーを読み取る
mac_plist_read(
    plist_path="/path/to/com.apple.preferences.accounts.plist",
    key_path="deletedUsers"
)
外部デバイスのアクティビティを検出する
mac_parse_fsck_apfs_log(
    log_path="/path/to/fsck_apfs.log",
    external_only=True
)
特定のボリュームを検索する
mac_parse_fsck_apfs_log(
    log_path="/path/to/fsck_apfs.log",
    volume_filter="suspicious_volume"
)
ユーザーアクティビティのタイムラインを作成する
mac_get_user_timeline(
    artifacts_dir="/path/to/triage",
    username="username"
)
ファイルアクティビティについて FSEvents を検索する
mac_fsevents_search(
    fseventsd_path="/path/to/.fseventsd",
    path_filter="/Users/username",
    event_types=["created", "deleted"]
)

設定

外部ツールのパス

外部フォレンジックツールは環境変数で設定できます。設定されていない場合は、デフォルトで /opt/macOS/ のパスが使用されます。

環境変数デフォルト説明
MAC_FORENSICS_UNIFIEDLOG_ITERATOR_PATH/opt/macOS/unifiedlog_iteratorunifiedlog_iterator バイナリへのパス
MAC_FORENSICS_FSEPARSER_PATH/opt/macOS/FSEventsParser/FSEParser_V4.1.pyFSEParser スクリプトへのパス
MAC_FORENSICS_SPOTLIGHT_PARSER_PATH/opt/macOS/spotlight_parser/spotlight_parser.pyspotlight_parser スクリプトへのパス

カスタムパスを指定する例:

{
  "mcpServers": {
    "mac-forensics": {
      "command": "/opt/macOS/mac_forensics-mcp/.venv/bin/python",
      "args": ["-m", "mac_forensics_mcp.server"],
      "env": {
        "MAC_FORENSICS_UNIFIEDLOG_ITERATOR_PATH": "/custom/path/unifiedlog_iterator",
        "MAC_FORENSICS_FSEPARSER_PATH": "/custom/path/FSEParser.py",
        "MAC_FORENSICS_SPOTLIGHT_PARSER_PATH": "/custom/path/spotlight_parser.py"
      }
    }
  }
}

依存関係

  • Python 3.10+
  • uv(仮想環境とパッケージ管理用)
  • mcp >= 1.0.0
  • biplist(任意。不正な形式の plist 用)

外部ツール(任意。生のアーティファクトの解析用):

  • unifiedlog_iterator - .logarchive バンドルの解析用
  • FSEParser - FSEvents(.fseventsd)の解析用
  • spotlight_parser - Spotlight インデックスの解析用

アーキテクチャ

mac_forensics_mcp/
├── server.py                # MCP server and tool definitions
├── config.py                # Configurable external tool paths
├── parsers/
│   ├── plist_parser.py      # Plist file parsing
│   ├── unified_log_parser.py # Unified log analysis
│   ├── sqlite_parser.py     # SQLite databases (KnowledgeC, Safari, TCC)
│   ├── fsevents_parser.py   # FSEvents parsing
│   ├── spotlight_parser.py  # Spotlight index parsing
│   ├── xattr_parser.py      # Extended attributes parsing
│   └── fsck_apfs_parser.py  # fsck_apfs.log parsing
├── correlation/
│   ├── timeline_builder.py  # Cross-artifact timeline correlation
│   └── event_investigator.py # Event-specific investigation
└── utils/
    ├── timestamps.py        # Mac/WebKit/HFS timestamp conversion
    └── discovery.py         # Artifact discovery

フォレンジック上の価値

この MCP サーバーは、実際の macOS DFIR 調査に基づいて開発されました。主なフォレンジック機能は次のとおりです。

機能ツール
ユーザーアカウントのフォレンジックmac_get_user_accounts, mac_get_user_timeline, mac_investigate_event
ファイルアクティビティの追跡mac_fsevents_search, mac_spotlight_search
ダウンロードの分析mac_quarantine_events, mac_get_extended_attributes
セキュリティイベントの検出mac_unified_logs_security_events
外部デバイスの検出mac_parse_fsck_apfs_log
アーティファクト間の相関分析mac_build_timeline, mac_investigate_event

参考資料

コントリビューション

macOS DFIR 調査から得た知見に基づいています。ツールやイベントパターンの追加も歓迎します。


作者

xtk

DFIR コミュニティ向けに作成されました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。