MCP を狙う偵察活動:サービス・アカウント・トークン窃取とクラウド・メタデータ SSRF を確認

Attackers Combine MCP Recon With Cloud Metadata SSRF to Steal Service Account Tokens

2026/07/13 gbhackers — インターネット全体を対象とする偵察活動は、従来のアプリケーションに対する範囲を超え、Model Context Protocol (MCP) サービス/AI アシスタントのコンフィグ・ファイル/ローカルで公開された LLM エンドポイントにまで拡大している。小規模かつ低トラフィックの共有ホストから収集した、Apache/ModSecurity の 14 日間のログを分析したところ、通常の WordPress/.env/Git/Spring Boot Actuator に対するプロービングに加え、AI エージェントの偵察に関連する約 200 件のリクエストが確認された。

この活動は偶発的なスキャンではなく、攻撃者は “/mcp” に対して有効な JSON-RPC MCP 初期化リクエストを送信し、Claude/Cursor/VS Code のコンフィグ・ファイルを探索しながら、OpenAI 互換 API/Ollama API エンドポイントをプロービングしていた。

また、この AI に焦点を当てた探索トラフィックには、Google Cloud のメタデータ・サービスを標的とするサーバサイド・リクエスト・フォージェリ (SSRF) 試行も含まれていた。つまり、インターネットに公開されたエージェントツールから、サービス・アカウント・トークンの窃取へ至る、潜在的な経路が生じている。

最も注目すべきリクエストは、JSON-RPC 2.0 とプロトコル・バージョン 2025-03-26 を悪用する POST /mcp リクエストであり、正しく構造化された MCP の initialize 呼び出しを含むものだ。

MCP は、ツールの探索や対話が始まる前に、クライアントとサーバがプロトコル機能をネゴシエートするための初期化ライフサイクルを採用している。レスポンスに成功すると、対象となるホストが MCP サーバを実行していることが判明するという、単純なパスの存在確認とは本質的に異なるものである。

その結果として、AI クライアントが利用できるツール/リソース/プロンプト/バックエンド・サービスの列挙が、攻撃者に許される可能性がある。

LLM アプリケーションを外部のツールやデータソースに接続するために、MCP は設計されている。したがって、インターネットへ公開されたサーバは、データベース/ファイルシステム/内部 API/チケット管理プラットフォーム/クラウドサービスへのマシンリーダブルな入口となり得る。また、観測された /mcp に対する探索は 49 件の異なる送信元 IP から実施されており、孤立した調査ではなく、広範囲に分散した偵察活動であることを示唆している。


The overall picture (Source : ISC).
The overall picture (Source : ISC).

MCP サービスを意図的に公開していない環境においては、未承諾の MCP 初期化トラフィックを信頼度の高い探索シグナルとして、防御側は扱うべきである。このキャンペーンでは、AI アシスタント関連のアーティファクトとして、以下の認証情報パスなども要求されていた。

  • .claude/mcp.json
  • .cursor/mcp.json
  • .cursor/mcp_config.json
  • .vscode/mcp.json
  • .mcp/config.json

これらのリクエストが示すのは、現時点における攻撃者たちが、開発者用 AI コンフィグにおける接続情報や API キーを、潜在的な認証情報の入手元として扱っていることである。認証情報ファイル名に対して、HEAD リクエストを使用している点が特徴的である。これにより、スキャナは機密オブジェクトの内容を取得することなく、それらの存在のみを確認できるため、大規模な標的化における帯域幅の節約が可能になる。

ISC の研究者たちが指摘するのは、従来のクラウド認証情報ファイル名/Kubernetes シークレット/アプリケーション・コンフィグファイルと並ぶかたちで、AI 固有のファイルパスが確認されたことである。標準的なシークレット収集ワードリストの一部として、AI ツールが挙げられていることを示す証拠であると、彼らは述べている。

ユーザー組織に対して推奨されるのは、.claude/.cursor/.vscode/.mcp ホームディレクトリ内のコンフィグ・ファイル・パスが、本番環境のアーティファクトへコピーされないように徹底することである。また、Web アクセス可能なドキュメント・ルート配下へ、マッピングされないようにすることも重要である。

Web サーバの設定においては、デプロイメント管理だけに頼るのではなく、隠しコンフィグ・ディレクトリや機密性の高い JSON ファイルへのアクセスを明示的に拒否すべきである。

MCP 偵察からクラウド・メタデータ SSRF へ

攻撃者たちは、OpenAI 互換モデルの一覧を取得する “/v1/models” や、Ollama のインストール済みモデルの列挙で使用される “/api/tags” に対しても、リクエストを繰り返して送信している。したがって、認証されていないレスポンスから、推論インフラの悪用/モデル探索/後続の攻撃/エクスプロイトにつながる可能性がある。

The Post / mcp speaks the Model Context Protocol correctly (Source : ISC).
The Post /mcp speaks the Model Context Protocol correctly (Source : ISC).

さらに懸念されるのは、url/uri/path/dest などのパラメータを介して、”metadata.google.internal” を標的とする SSRF ペイロードである。攻撃者たちが探索していたのは、汎用的な “credentials.json” に続く GCP/AWS/Azure 固有のファイル名や、Kubernetes およびアプリケーションに固有の名称である。

Google Compute Engine のワークロードは、メタデータ・サーバから関連付けられるサービス・アカウントの OAuth アクセス・トークンを取得するが、このリクエストには Metadata-Flavor: Google ヘッダーが必要となる。そのため、脅威アクターたちは、メタデータ・サービスに到達するフェッチ/プロキシ/Webhook/画像インポート/エージェント・ツールなどを、認証情報を外部へ流出させる手段として悪用する。


Credential file names the scanners fished for, by cloud provider (Source : ISC).
Credential file names the scanners fished for, by cloud provider (Source : ISC).

MCP 環境では、URL 取得ツールが一般的に用いられるため、この種のリスクがさらに増大する。制限のない “fetch URL” 機能を備えた公開 MCP サーバは、単一のインターフェイスを通じて、攻撃者に探索機能と SSRF 経路を提供する可能性がある。

防御側にとって必要なことは、アクセスログ内で POST /mcp、/sse、AI コンフィグファイル名、/v1/models、/api/tags、metadata.google.internal、169.254.169.254 を検索することである。それにより、認証されていない公開 MCP アクセスの遮断と、各ツールへの厳格な認可の適用、許可リストによるアウトバウンド通信の制限を実施すべきだ。

URL 取得機能においては、DNS の解決後とリダイレクト時に、リンクローカル/ループバック/プライベート/クラウド・メタデータ・ディスティネーションへのアクセスを拒否すべきである。

また、クラウド・ワークロードでは、最小権限のサービス・アカウントを使用し、盗まれたトークンの価値を最小限に抑えることが推奨される。さらに、AWS では IMDSv2 を強制することでセッション・トークン要件が追加されるため、多くの SSRF パターンの露出を低減できる。