powered by TechFeed
表示モード
Deep Dive

DownloadsフォルダのテキストファイルがAIコーディングエージェントを制御する — CodexとClaude Codeで成立した攻撃の実態と対策

10月31日、セキュリティ研究ブログpbxscience.comが「Don't Run AI Coding Agents in Your Downloads Folder: Planted Instruction Files Can Hijack Codex and Claude Code」と題した記事を公開した。pbxscience.comはセキュリティ研究者による独立系の技術ブログであり、本記事の内容はセキュリティ企業Forever Securityの実インシデントと実験結果に基づいている。AIコーディングエージェントがダウンロードフォルダに仕込まれた命令ファイルを読み込み、攻撃者の指示に従って動作するリスクについて詳しく報告されており、その要点を紹介する。実際のインシデントから始まった調査セキュリティ企業Forever Securityは10月22日、顧客のマシン上で動作していたAIコーディングエージェントが、既知の悪意あるnpmパッケージをインストールしようとしていた事例を報告した。問題の指示は開発者からではなく、エージェントが作業ディレクトリとして使用していたDownload...

10月31日、セキュリティ研究ブログpbxscience.comが「Don't Run AI Coding Agents in Your Downloads Folder: Planted Instruction Files Can Hijack Codex and Claude Code」と題した記事を公開した。pbxscience.comはセキュリティ研究者による独立系の技術ブログであり、本記事の内容はセキュリティ企業Forever Securityの実インシデントと実験結果に基づいている。AIコーディングエージェントがダウンロードフォルダに仕込まれた命令ファイルを読み込み、攻撃者の指示に従って動作するリスクについて詳しく報告されており、その要点を紹介する。

実際のインシデントから始まった調査

セキュリティ企業Forever Securityは10月22日、顧客のマシン上で動作していたAIコーディングエージェントが、既知の悪意あるnpmパッケージをインストールしようとしていた事例を報告した。

問題の指示は開発者からではなく、エージェントが作業ディレクトリとして使用していたDownloadsフォルダ内のAGENTS.mdファイルから来ていた。AGENTS.mdとは、OpenAIのCodexなどのAIコーディングエージェントに作業方針を伝えるプレーンテキストファイルで、エージェントは起動時にこのファイルを読み込み、その内容を指示として扱う仕様になっている。Forever Securityはコード実行前にこれを阻止したが、ファイルがどのようにしてそのマシンに置かれたかは特定できなかった。

なぜ命令ファイルが狙われるのか

AGENTS.mdはCodex固有の命令ファイルだ。AnthropicのClaude Codeでは同様の役割を担うファイルとしてCLAUDE.mdが使われる。いずれも開発者が自分のワークフローや制約をエージェントに伝えるための正規の仕組みだが、これが攻撃対象になりうる。

Forever Securityが指摘するのは、エージェントがこれらのファイルに従うのは「そう設計されているから」という点だ。つまり、攻撃者が書いたファイルを読み込めば、エージェントは設定変更やプログラム実行を忠実にこなしてしまう。

Downloadsフォルダが特に危険なのは、Webページがユーザーの明示的な操作なしにファイルを保存できる場合があるためだ。ブラウザの挙動次第では、悪意あるサイトへの訪問だけでファイルが設置される。

研究者が再現した攻撃の中身

Forever Securityは、DownloadsフォルダにAGENTS.mdを無音でドロップするWebページをPoC(概念実証)として構築し、そのフォルダからエージェントを起動してテストした。

Codexへの攻撃:成功率90%超

顧客マシンから回収したファイルを使ったテストでは、Codexが悪意ある指示に従った割合は90%超。具体的には、マシン全体の設定(~/.codex/config.toml)を改ざんし、承認機能とサンドボックス制限を無効化した新しいセッションを起動させることに成功した。設定変更がマシン全体に及ぶため、開発者が別のフォルダに移動した後のセッションでも攻撃者のサーバーが読み込まれ続ける点が厄介だ。なお、ほとんどのテストでは電卓アプリを開くような無害な代替プログラムを使用し、実際のマルウェアは隔離されたVM上でのみ実行した。

Claude Codeへの攻撃:難しいが不可能ではない

研究者が独自に作成したCLAUDE.md(内部ゲートウェイのセットアップを装った内容)を使い、エージェントのAPIトラフィックを制御下のサーバーにリダイレクトさせる攻撃を試みた。これにより認証トークンの窃取が可能になる。ただしClaude Codeのほうが騙しにくく、エンドポイントのリダイレクトが成功したのは約半数、同一セッション内でのコード実行は約5回に1回にとどまった。AGENTS.mdとCLAUDE.mdでエージェントごとに挙動や耐性が異なる点は、対策を検討する上でも重要な観点だ。

過信は禁物:攻撃が成立する条件

ファイルをDownloadsに置くだけでは何も起きない。攻撃が成立するには、そのフォルダでエージェントを起動すること、そしてエージェントがファイルを読んで実際に行動することが必要だ。Codexの場合、そのフォルダが「信頼済み」になっている必要もある(一度でも作業に使ったフォルダはそうなりやすい)。

Claude Codeへの攻撃は研究者による実証であり、野外での観測例ではない。実際のインシデントはCodexに関するものだ。外部アナリストはこの発見を「広範な悪用の証拠」ではなく「信頼できる早期警告」と評価している。また、Forever Securityはパッチ提供を求める対象を見つけられておらず、OpenAIやAnthropicのコメントも報告には含まれていない。

実態:半数の顧客がDownloadsでエージェントを起動している

Forever Securityの自社テレメトリによれば、顧客の約半数がDownloadsフォルダ内でコーディングエージェントを起動しており、約4分の1のエージェントセッションでブラウザが開かれている。ファイルを整理したり、ダウンロードしたばかりのものをすぐに処理させたりする用途で、開発者がDownloadsをそのまま作業ディレクトリに使うケースが多いようだ。

今すぐできる対策

  • Codex、Claude Code、その他のコーディングエージェントを~/Downloadsで起動しない。 必ず作業対象のプロジェクトフォルダで起動する。
  • 自分で書いていないAGENTS.mdやCLAUDE.mdは、エージェントに読ませる前に必ず内容を確認する。 クローンしたばかりのリポジトリも例外ではない。
  • ~/.codex/config.tomlや.claude/settings.jsonを確認し、見覚えのないエントリがないかチェックする。 仕込まれたファイルを発見した場合はトークンをローテーションする。
  • 人間による承認とサンドボックスを維持し、エージェントの命令ファイルをソースコードと同様に扱う(変更はレビューを必須にする)。

あるアナリストが指摘するように、本質的な問題はDownloadsフォルダに限った話ではない。生きた認証情報を持ちながら、信頼できないコンテンツを取り込むエージェントの動作パターンそのものが問題の核心だ。

詳細はDon't Run AI Coding Agents in Your Downloads Folder: Planted Instruction Files Can Hijack Codex and Claude Codeを参照していただきたい。