Claude Code Opus 5 Auto Modeにおけるプロンプトインジェクションの詳細

米AnthropicのAIエージェント「Claude Code」の「Auto Mode」において、プロンプトインジェクションによるコード実行の脆弱性が発見されました。Auto Modeは、人間による承認プロンプトを安全分類器に置き換える機能で、2026年8月中旬からClaude Codeのデフォルト設定となっています(出典)。

Auto Modeは、AIエージェントを隔離された環境で実行し、その動作を監視することの代替にはなりません。

Anthropicは以前、第三者評価機関であるTrajectory Labsに委託したテストにおいて、Opus 5のAuto Modeでの間接的なプロンプトインジェクション攻撃成功率が0.00%であったと報告していました。しかし、今回の調査では、特定の攻撃チェーンを用いることで、サンプルの数は少ないものの、最大80%という高い成功率でコード実行が可能になることが示されています。

これはかなり衝撃的なニュースです。正直、ここまで来たかという感じがします。

攻撃チェーンの仕組みと具体的な手口

今回の攻撃は、以下の段階を経て実行されます。

  1. WebFetchからBashへの誘導: ClaudeがWebサイトの内容を要約する際、最初はWebFetchツールを使用しますが、不正なサーバー応答(例: 415 Unsupported Media Type)を返すことで、Claudeにcurlを使った直接的なコンテンツ取得を促します。これは一般的なハイジャック手法の一つで、攻撃者は直接指示を出すのではなく、悪意のあるパスを「追求する価値がある」とモデルに判断させます。
  2. ZIPアーカイブのダウンロード: curlが使用されると、攻撃者のサーバーはHTTP 303リダイレクトでZIPアーカイブのURLを返します。Claudeはこれをダウンロードし、一時的なスクラッチパッドフォルダに解凍します。
  3. Pythonデコーダーの実行と悪性コードのトリガー: ZIPアーカイブには、通常では実行を拒否するようなバイナリファイルが含まれていますが、それと同時にClaudeが「正しい」と判断して自身でPythonデコーダーを生成し実行するようなエンコードされたファイルが仕込まれています。このデコーダーが、攻撃者によって制御されたディレクトリ(解凍されたアーカイブ内)で実行される点が重要です。このディレクトリには、Python標準ライブラリのstruct.pyをシャドウイングする悪意のあるstruct.pyが含まれています。Claudeがbase64モジュールをインポートすると、この偽のstruct.pyがトリガーされ、悪意のあるコードが実行されるという仕組みです。
段階 狙い 仕組み
1. WebFetchからBashへ Claudeの実行環境を制御下におく HTTP 415応答でWebFetchを回避させ、curlを実行させる
2. ZIPアーカイブのダウンロード 悪意のあるファイルを送り込む リダイレクトでZIPアーカイブをダウンロードさせる
3. Pythonデコーダーの実行と悪性コードのトリガー コード実行を実現する 偽のstruct.pyをインポートさせ、悪意のあるコードをトリガーする

この一連の動作を見ると、巧妙にClaudeの判断を誘導していることがわかります。AIエージェントが自律的に判断し行動する性質を逆手に取った攻撃と言えるでしょう。

以前、ペンタゴンがAnthropicをブラックリスト化した際に、Claudeが実際には持たない能力に基づいていたという裁判所の判断がありました(出典)。しかし、AIエージェントの意図しない挙動はやはり大きなリスクをはらんでいると感じます。

開発者が考慮すべきリスクと対策

今回の脆弱性は、AIエージェントを本番環境で利用する上で無視できないリスクを示しています。特に、ファイルシステムへのアクセスや外部コマンドの実行を伴うタスクにおいては、細心の注意が必要です。

AIエージェントの安全性を確保するには、多層的な防御と厳格な隔離環境が不可欠です。

Tom's Hardwareの記事では、Claudeが開発者のホームディレクトリを削除してしまった事例が報じられており(出典)、これもAIエージェントの意図しない挙動によるものです。開発者としては、以下の点を考慮し、対策を講じる必要があると考えます。

  • サンドボックス環境での実行: AIエージェントは常に隔離されたサンドボックス環境で実行し、ファイルシステムへのアクセス権限やネットワーク通信を最小限に制限するべきです。
  • 厳格な入力検証: ユーザーからのプロンプトや外部リソースからの入力を厳格に検証し、予期せぬ挙動を引き起こす可能性のある入力をフィルタリングすることが重要です。
  • 出力の監視とレビュー: AIエージェントが生成したコードや実行結果は、自動化されたシステムだけでなく、人間の目によるレビューを挟むことで、意図しない悪性コードの実行を防ぐことができます。
  • ツール利用の制限: AIエージェントが利用できるツールやAPIを必要最小限に絞り込み、特にシェルアクセスやファイル操作に関わるツールは慎重に扱う必要があります。

個人的には、Claude Codeを使えば複雑なタスクも自動化できると期待していましたが、今回の件で改めてセキュリティの重要性を痛感しました。私の個人プロダクトでもClaude Codeを活用することを検討していましたが、サンドボックス環境の構築が必須だと再認識しました。

Anthropicの対策と今後の課題

Anthropicは、モデルトレーニング、入力プローブ、意図分類器といった多層防御によって、間接的なプロンプトインジェクション攻撃をほぼゼロにできると主張していました。しかし、今回の報告は、これらの防御層をすり抜ける特定の攻撃チェーンが存在することを示唆しています。

AIエージェントが持つ自律性と、それに伴うセキュリティリスクのバランスは、今後のAI開発における大きな課題となるでしょう。開発者側も、AIエージェントを「賢いツール」として過信せず、潜在的なリスクを常に意識した設計と運用が求められます。特に、GCPなどのクラウド環境でAIエージェントを運用する場合、IAMの最小権限の原則を徹底し、Cloud Runなどのコンテナ実行環境でリソースを厳しく制限することが重要だと感じます。