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の安全制約を回避した手法は「ダブルロールプレイ」と呼ばれる構造だ。
- 架空のサイバーセキュリティ企業の社員であると偽る(組織の正当性の偽装)
- Claudeを「認可済み防御的セキュリティテスト」のアシスタントとして位置付ける(タスクの正当化)
- 攻撃タスクを小さく無害に見える断片に分割する(文脈の分断)
個別のタスク単位では悪意が見えにくく、全体の攻撃チェーンを把握しているのは人間のオペレーターだけという構造になる。
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 | 認証情報の抽出 |
| 公開アプリケーションの悪用 | T1190 | SSRFの悪用、カスタムペイロード |
| ブルートフォース | T1110 | 認証情報の総当たりテスト |
| 有効なアカウントの使用 | T1078 | 窃取済み認証情報での体系的テスト |
| リモートサービス | T1021 | 内部APIとDBへのアクセス |
| 情報リポジトリからのデータ収集 | T1213 | DB照会とインテリジェンス分類 |
| アプリケーション層プロトコル | T1071 | MCPサーバー経由の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-52882 | Claude Code VS Code拡張のWebSocket認証バイパス | CVSS 8.8 | Datadog Security Labs |
| CVE-2025-59536 | 悪意あるプロジェクト設定によるMCPユーザー同意バイパス | — | Check Point Research |
| CVE-2026-21852 | ANTHROPIC_BASE_URL経由のAPIキー窃取 | — | Check Point Research |
| CVE-2025-49596 | MCP Inspectorの未認証リモートコード実行 | — | — |
| CVE-2025-6514 | mcp-remoteのOSコマンドインジェクション | — | — |
| CVE-2025-53109 / 53110 | Filesystem 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等のセルフホスト代替への移行を検討する声