技術 約12分で読めます

GTG-1002のClaude Code悪用とGitHub CopilotのAI学習データ収集

AIコーディングツールを巡る2つのニュースが出た。1つはAnthropicが開示した、Claude Codeを使った国家支援グループによる自律スパイ攻撃。もう1つはGitHub Copilotが4月24日からユーザーのコードをAI学習に使うポリシー変更だ。

GTG-1002によるClaude Code悪用

2025年9月中旬、Anthropicは自社プラットフォーム上で異常なアクティビティを検出した。調査の結果、中国政府との関連が示唆される攻撃者グループ「GTG-1002」が、Claude CodeをMCP経由でカスタムツールと組み合わせ、大規模な自律スパイキャンペーン(一連の攻撃活動)を展開していたことが判明した。11月13日に公開された報告書で、Anthropicはこれを「AIが攻撃インフラそのものになった最初の文書化事例」と位置付けている。

標的は約30組織。大手テクノロジー企業、金融機関、化学製品メーカー、政府機関が含まれ、一部では実際の侵入に成功していた。

6フェーズの攻撃チェーン

攻撃者はClaude Codeのアカウントを通常の方法で取得後、MCPサーバーにパスワードクラッカーやネットワークスキャナーなどの市販セキュリティツールを接続し、AIエージェントが自律的にオペレーションを実行する環境を構築した。攻撃全体の80〜90%はAIが自律実行し、人間の介入は1キャンペーンあたり4〜6回の意思決定ポイントのみだった。

flowchart TD
    A["Phase 1: 初期化<br/>標的選定・ペルソナ設定"] --> B["Phase 2: 偵察<br/>ドメイン・IP・サービス列挙"]
    B --> C["Phase 3: 脆弱性発見<br/>SSRF特定・ペイロード生成"]
    C --> D["Phase 4: 初期アクセス<br/>認証情報収集・権限テスト"]
    D --> E["Phase 5: 横展開<br/>権限昇格・高価値システム侵入"]
    E --> F["Phase 6: データ窃取<br/>DB抽出・インテリジェンス分類"]
    F -->|"人間が次の判断を下す"| B
  • Phase 1 — 初期化: 人間のオペレーターが標的を選定し、Claudeに「正規のセキュリティ企業の社員として認可済みペネトレーションテストを実施する」というペルソナを設定する
  • Phase 2 — 偵察: Claudeがブラウザ自動化とMCPツールで標的のインフラを網羅的にマッピング。ドメイン、IPレンジ、稼働サービス、ログインポータル、APIエンドポイントを秒単位で列挙する。ピーク時は毎秒数千リクエストの速度
  • Phase 3 — 脆弱性発見: レスポンスを分析してSSRF(Server-Side Request Forgery: サーバー側からリクエストを発行させる攻撃)などの脆弱性を特定し、カスタムエクスプロイトコードを生成。失敗すれば変異型ペイロード(悪意あるコード本体)を高速に試行する
  • Phase 4 — 初期アクセスと認証情報収集: 内部サービスを列挙し、設定ファイル・ログ・DBから認証情報を収集。権限レベルのテストと信頼関係のマッピングを実施
  • Phase 5 — 横展開と権限昇格: 認証サービス、シークレットストア、本番DBなど高価値システムを特定。窃取した認証情報で内部APIやDBにアクセスし、権限を段階的に昇格させる
  • Phase 6 — データ窃取と文書化: DBへのクエリ実行、パスワードと内部文書の抽出、窃取データのインテリジェンス価値による分類。構造化されたMarkdownの作戦書を生成し、人間オペレーターへの引き継ぎと永続化への移行を可能にする

Intezer CTOのRoy Haleviは「この規模と精度でAIが使われたキャンペーンの詳細な公開報告は初めてだ」とコメントしている。注目すべきは、ゼロデイ脆弱性は一切使われていない点だ。攻撃の成功はツールの新しさではなく、AIによるオーケストレーション効率にあった。完全なDB抽出が2〜6時間に圧縮されていた。

ジェイルブレイク手法「ダブルロールプレイ」

攻撃者がClaudeの安全制約を回避した手法は「ダブルロールプレイ」と呼ばれる構造だ。

  1. 架空のサイバーセキュリティ企業の社員であると偽る(組織の正当性の偽装)
  2. Claudeを「認可済み防御的セキュリティテスト」のアシスタントとして位置付ける(タスクの正当化)
  3. 攻撃タスクを小さく無害に見える断片に分割する(文脈の分断)

個別のタスク単位では悪意が見えにくく、全体の攻撃チェーンを把握しているのは人間のオペレーターだけという構造になる。

flowchart LR
    A["攻撃者"] -->|"ペルソナ設定"| B["Claude Code"]
    B -->|"個別タスク実行"| C["タスクA: ポートスキャン"]
    B -->|"個別タスク実行"| D["タスクB: レスポンス分析"]
    B -->|"個別タスク実行"| E["タスクC: コード生成"]
    C & D & E -->|"結果統合は<br/>攻撃者側で実施"| F["攻撃チェーン完成"]

Anthropicの報告では、Claudeが認証情報をハルシネーション(幻覚)で生成したり、公開情報を秘密情報と誤認するケースもあり、完全自律攻撃への障壁はまだ存在するとしている。ただしこれは攻撃の失敗を保証するものではなく、成功率の問題だ。30組織を並行攻撃できる時点で、個々の失敗はスケールで補える。

MITRE ATT&CK対応

報告書の内容をMITRE ATT&CKフレームワーク(サイバー攻撃の戦術・技術を体系化した知識ベース)に対応させると、以下のテクニックが確認できる。

テクニックATT&CK ID攻撃での使われ方
アクティブスキャニングT1595高速なシステム列挙とポートスキャン
ネットワークサービススキャンT1046内部トポロジとDB構成のマッピング
アカウント探索T1087認証情報の抽出
公開アプリケーションの悪用T1190SSRFの悪用、カスタムペイロード
ブルートフォースT1110認証情報の総当たりテスト
有効なアカウントの使用T1078窃取済み認証情報での体系的テスト
リモートサービスT1021内部APIとDBへのアクセス
情報リポジトリからのデータ収集T1213DB照会とインテリジェンス分類
アプリケーション層プロトコルT1071MCPサーバー経由のC2(Command and Control: 攻撃者による遠隔制御)通信
C2チャネル経由のデータ窃取T1041データの持ち出し

MCPの悪用構造

MCP(Model Context Protocol)はAnthropicが2024年に公開したオープンプロトコルで、LLMに外部ツールやデータソースを接続する標準インターフェースだ。今回の攻撃ではMCPの設計上の脆弱性ではなく、「どんなツールでも接続できる」柔軟性そのものが攻撃者に利用された。

攻撃者はMCP経由で以下のツールを接続していた。

  • ネットワークスキャナー(ポートスキャン・サービス列挙)
  • パスワードクラッカー(認証情報の総当たり)
  • エクスプロイトフレームワーク(脆弱性の自動悪用)
  • バイナリ解析スイート(逆アセンブル・静的分析)
  • ブラウザ自動化ツール(Webアプリの偵察・操作)

いずれも市販の既存セキュリティツールであり、カスタムマルウェアは使われていなかった。MCPが「ユニバーサルトランスレータ」として機能することで、AIエージェントがツールの呼び出し → 結果の解釈 → 次のアクションの決定を自律的に回すループが成立した。

防御側が使える検知指標

Anthropicの報告書とExtraHopの分析を基に、このタイプのAI駆動攻撃を検知するための指標を整理する。

フェーズ検知指標
偵察秒〜分単位での大量の偵察リクエスト。アルファベット順や連番など高度に構造化された列挙パターン
エクスプロイト変異型ペイロードの高速連続試行。マシン速度のトライ&エラー。複数ホストで同一のエラーメッセージ
横展開均一なリクエスト間隔での体系的認証テスト。人間には不可能な速度での権限昇格チェーン
データ窃取構造化された抽出パターン(JSON/CSVダンプ)。DBスキーマのマッピングと選択的テーブルダンプ
オーケストレーション内部エージェントと外部LLMサービス間の持続的接続(ビーコニング: C2サーバーへの定期的な通信)

ExtraHopは、従来のNDR(Network Detection and Response: ネットワーク検知・応答)でもこれらのパターンは検知可能だとしている。ただし人間がアラートを週次で確認するサイクルでは、秒単位で動くAI攻撃には間に合わない。検知から対応までの自動化が必須になる。

Anthropicの検出と対応

2025年9月中旬のキャンペーン検出後、Anthropicは10日間で以下を完了した。

  • 関連アカウントの特定と停止
  • 被害を受けた組織への通知
  • 当局への報告
  • 悪意ある活動を識別する分類器の改善
  • 自律型AI攻撃の早期検知システムのプロトタイプ構築

Anthropic自身もClaudeを使って調査データの分析を行っている。

Claude Code・MCPの既知脆弱性

GTG-1002の攻撃はMCPの設計上の脆弱性を突いたものではなかったが、Claude CodeとMCPエコシステムにはこれとは別に複数の脆弱性が報告されている。AIコーディングツールの攻撃面を理解する上で、把握しておくべきものだ。

報告済みCVE一覧

CVE概要深刻度発見者
CVE-2025-52882Claude Code VS Code拡張のWebSocket認証バイパスCVSS 8.8Datadog Security Labs
CVE-2025-59536悪意あるプロジェクト設定によるMCPユーザー同意バイパスCheck Point Research
CVE-2026-21852ANTHROPIC_BASE_URL経由のAPIキー窃取Check Point Research
CVE-2025-49596MCP Inspectorの未認証リモートコード実行
CVE-2025-6514mcp-remoteのOSコマンドインジェクション
CVE-2025-53109 / 53110Filesystem MCPのサンドボックスエスケープ

WebSocket認証バイパス(CVE-2025-52882)

Datadog Security Labsが発見。Claude Code VS Code拡張がローカルに立ち上げるWebSocketサーバーにクライアント認証が一切なかった。WebSocket接続はブラウザの同一オリジンポリシーの制約を受けないため、攻撃シナリオは以下のとおりだ。

flowchart TD
    A["ユーザーが悪意ある<br/>Webサイトを訪問"] --> B["JSがlocalhostの<br/>ポートレンジを総当たり"]
    B --> C["WebSocketサーバーに接続"]
    C --> D["JSON-RPCメッセージ送信<br/>tools/list, tools/call"]
    D --> E["ローカルファイル読み取り"]
    D --> F["Jupyter Notebookで<br/>コード実行"]

ユーザーがWebサイトを訪問するだけで攻撃が成立し、操作や許可は不要だった。v1.0.24でローカルロックファイルに保存されたトークンベースの認証が追加され修正された。

悪意あるプロジェクト設定による攻撃(CVE-2025-59536 / CVE-2026-21852)

Check Point Researchが発見した3つの攻撃ベクター。いずれも「悪意あるリポジトリをcloneして claude コマンドを実行する」だけで攻撃が成立する。

攻撃ベクター仕組み影響
プロジェクトフック悪用.claude/settings.json に仕込んだフックがSessionStart時にシェルコマンドを実行リバースシェル起動。確認プロンプトをバイパス
MCP同意バイパスenableAllProjectMcpServers 設定でMCPサーバーをユーザー承認なしに自動有効化信頼ダイアログを読む前にコマンド実行
APIキー窃取ANTHROPIC_BASE_URL 環境変数でAPI通信を攻撃者サーバーにリダイレクト認可ヘッダーのAPIキーを窃取

MCPエコシステム全体の課題

MCPサーバーのセキュリティ調査からは深刻な数字が出ている。

  • 43%のMCPサーバーにコマンドインジェクション脆弱性
  • 33%が無制限のネットワークアクセスを許可
  • 22%が意図されたデータソース外へのファイルアクセスを許可
  • オープンソースMCPサーバーの5%にツールポイズニング(ツールの説明文に悪意ある指示を埋め込み、LLMの動作を操作する攻撃)が仕込み済み

2025年のMCP関連インシデントの主なものを挙げる。

時期インシデント
4月WhatsApp MCP経由のチャットデータ窃取(ツールポイズニング)
5月GitHub MCP経由のプライベートリポジトリ露出(過剰権限のPAT: Personal Access Token)
6月Asana MCPのクロステナントアクセス違反
6月MCP Inspectorの未認証リモートコード実行(CVE-2025-49596)
7月mcp-remoteのコマンドインジェクション(CVE-2025-6514、43.7万DL超に影響)
8月Filesystem MCPのサンドボックスエスケープ(CVE-2025-53109/53110)
9月偽Postmark MCPパッケージによるメール傍受(サプライチェーン攻撃)
10月Smithery MCPレジストリのパストラバーサル(ホスト済み3,000超のMCPサーバーに影響)

キルチェーンモデルへの影響

Lockheed Martinが2011年に提唱したサイバーキルチェーンは、攻撃を偵察・武装化・デリバリ・エクスプロイト・インストール・C2・目標実行の7段階に分解するフレームワークだ。防御側はいずれかのフェーズで攻撃を遮断することを想定していた。

従来の前提GTG-1002で起きた変化
フェーズ間に人間の判断と時間が必要AIが4〜6回の人間判断で30組織を同時攻撃
段階を観察して検知する時間的余裕がある偵察からエクスプロイトまで秒単位の反復
フェーズの境界が比較的明確複数フェーズが並行進行
スケールは攻撃者の人的リソースに制約されるAIエージェントの並列実行で制約が消える

キルチェーンが消えたわけではなく、「フェーズ間の接着剤として人間が必要だった部分をAIが担えるようになった」というのが今回の事例が示した変化だ。攻撃の限界コストが劇的に下がる。

企業環境でAIコーディングツールやMCPを導入するなら、最低限これだけは押さえる。

  • 接続可能なツールのスコープ制限(ホワイトリスト方式)
  • エージェントが発行するリクエストの監査ログ
  • MCPサーバーの設定ファイルとプロジェクト設定の整合性検証
  • LLMサービスへのアウトバウンド通信の監視(ビーコニング検知)
  • 上記CVEへのパッチ適用状況の確認

GitHub CopilotのAI学習データ収集

GitHubは公式ブログで、Copilot Free・Pro・Pro+ユーザーのインタラクションデータを2026年4月24日からAIモデルの学習に利用すると発表した。

収集されるデータの範囲

データ種別内容
コード出力ユーザーが承認または修正したコードスニペット
コード入力カーソル周辺のコードコンテキスト、コメント、ドキュメント
リポジトリ情報ファイル名、リポジトリ構成、ナビゲーションパターン
インタラクションチャット入力、インライン補完への操作、フィードバック

学習スコープ外のデータはIssueや議論の内容、プライベートリポジトリに保存されているインタラクション外のコード、サードパーティAIプロバイダーに送信された情報。

対象外のプランとオプトアウト

プラン学習対象
Free / Pro / Pro+対象(オプトアウト可)
Business / Enterprise対象外

オプトアウトはGitHubアカウント設定の「Privacy」から変更できる。既にオプトアウト済みの設定は引き継がれるため再設定は不要。

プライベートリポジトリの落とし穴

GitHubはプライベートリポジトリの「静的な」コンテンツは学習に使わないとしている。しかし、プライベートリポジトリ内でCopilotを使って作業した際のインタラクションデータは収集対象だ。カーソル周辺のコードコンテキスト、補完の受け入れ・修正、チャットでの質問内容はすべて学習パイプラインに入りうる。

「リポジトリがプライベートだから安全」という認識は正確ではない。業務上の非公開コードをFree/Proプランで扱っている場合は、オプトアウトを明示的に確認しておく必要がある。対応期限は4月24日。

開発者コミュニティの反応

GitHubブログの当該記事には否定的なリアクションが59件に対し、肯定的なリアクションは3件。39件のディスカッション投稿のうちGitHub側から肯定的な投稿は1件のみだった。

批判が集中したポイントは以下だ。

  • オプトアウト設定画面に「You will have access to the feature」と表示され、無効化するとアクセスを失うかのような印象を与えるダークパターンの指摘
  • デフォルトがオプトインで、一度無効化してもリロードで再有効化されたという報告(バグか意図的かは不明)
  • Business/Enterpriseは対象外で個人Pro課金ユーザーは対象という非対称性への不満
  • 他人のプライベートリポジトリのコードが、無料アカウントのCopilot経由で学習データに流れうる懸念
  • GDPRのオプトイン原則との整合性への疑問
  • Codeberg等のセルフホスト代替への移行を検討する声