TBN Grow
AIコーディングエージェントのセキュリティ:AGENTS.mdの罠

AIコーディングエージェントのセキュリティ問題を解説します。DownloadsフォルダのAGENTS.mdでCodexとClaude Codeが攻撃者に従う仕組み、数値、コスト、リスク、確認リストをまとめます。
本文
AIコーディングエージェントのセキュリティについて、具体的な教訓がまた一つ加わりました。2026年10月22日、セキュリティ企業Forever Securityは、ある顧客の実機でAIコーディングエージェントが悪性npmパッケージ function-color をインストールしようとしていたところを阻止したと発表しました。エージェントは一般的な意味で「ハッキング」されたわけではありません。開発者がエージェントを起動したフォルダ ~/Downloads に置かれていた AGENTS.md というテキストファイルの指示に従っただけです。10月25〜26日にはThe Hacker Newsなど複数の技術メディアが、OpenAI CodexとAnthropic Claude Codeでの試験結果とともにこの件を報じました。
- 指示ファイルはエージェントにとって信頼された入力です。 Codexは
AGENTS.mdを、Claude CodeはCLAUDE.mdを作業フォルダから読み込み、プロジェクトの指示として扱います。悪性ファイルは普通の技術メモのように書かれていますが、未知のサーバーを設定に追加し、function-colorをインストールするようエージェントに求めます。 - ブラウザはDownloadsに書き込めます。 Forever によると、Webページは利用者のクリックなしで、任意の内容の
AGENTS.mdというファイルをDownloadsに保存できます。OSはダウンロードした実行ファイル(.exe、.app)をブロックしますが、テキストファイルはブロックしません。これまでテキストファイルは無害だったためです。 - Codex:90%超の試行で指示に従いました。 実際の悪性ファイルを隔離した仮想マシンで再実行したところ、Codexは「90%超」の試行でマルウェアをインストールしました。変更先は
~/.codex/config.tomlで、これはマシン上のすべてのCodexセッションに共通する設定ファイルです。そのため、以後どのフォルダでも攻撃者のサーバーが読み込まれます。 - Claude Code:約50%です。 「社内ゲートウェイ」の設定手順を装った
CLAUDE.mdを使うと、Claudeは約半数の試行で、攻撃者のサーバーを指すANTHROPIC_BASE_URLを.claude/settings.jsonに書き込みました。その結果ログイントークンが漏えいし、研究チームは取得したトークンで実際のAPIを呼び出せることを確認しました。 - 待つべきパッチはありません。 Foreverは、OpenAIとAnthropicに修正すべき不具合はないと述べています。フォルダ内の指示ファイルを読むのはエージェントの設計どおりの動作だからです。問題は、Webから書き込めるフォルダと、利用者が信頼するフォルダが重なっている点にあります。
| 項目 | 値 | 備考 |
|---|---|---|
| 研究の公表日 | 2026年10月22日 | Forever Security(Gal Weizman、Omer Samet) |
| 悪性npmパッケージ | function-color → function-flag を取り込み | Checkmarxによると MALFEX キャンペーンの一部で、Windowsのみが標的 |
| Codexが悪性ファイルに従った割合 | 試行の90%超 | Forever の公表値。試行回数とバージョンは非公表 |
| Claude Codeが悪性設定を書き込んだ割合 | 試行の約50% | Forever の公表値。フォルダにセキュリティメモがある場合は毎回拒否 |
| Claude Codeが同一セッション内でコマンド実行 | 試行の約5分の1 | Claudeがサブエージェントを作成した場合。Forever の公表値 |
| Downloadsでエージェントを実行している顧客 | 約半数 | Forever の顧客から得た計測値(同社公表) |
| 実際のブラウザを開くエージェントセッション | 約4分の1 | Forever の公表値 |
| MALFEX 8パッケージの合計ダウンロード数 | 40,767(うち function-flag 37,419、function-color 300) | Checkmarxによる2026年10月1日時点の数値。ダウンロード数は感染台数と同じではありません |
分析
分析:なぜテキストファイルがAIコーディングエージェントにとって危険なのですか?
この件の核心は、「データ」と「命令」の境界があいまいになったことです。テキストエディタにとって AGENTS.md はただの文字列です。しかしシェルコマンドの実行、設定の変更、パッケージのインストールができるAIエージェントにとっては、同じファイルがやることリストになります。Foreverは研究のタイトルを「Markdownは新しい実行ファイルである」としており、技術的に見てもこの見方には根拠があります。
従来の攻撃手法と比べて何が違うのですか?
| 攻撃の種類 | 利用者が何をする必要があるか | 既存の防御層 | 阻止できる度合い |
|---|---|---|---|
| 悪性の .exe/.app をダウンロード | 開いて警告を承認する | SmartScreen、Gatekeeper、ウイルス対策ソフト | 高:OSが未署名ファイルをブロック |
| 名前を偽装したnpmパッケージ(タイポスクワッティング) | インストール時にパッケージ名を打ち間違える | npmの警告、依存関係スキャンツール | 中:function-flag には公式の警告がありませんでした(Checkmarxによる) |
| README/issue経由のプロンプトインジェクション | 外部コンテンツをエージェントに読ませる | エージェントが不審な内容を疑う可能性 | 中 |
Downloads内の AGENTS.md/CLAUDE.md | そのフォルダでエージェントを起動するだけ | フォルダ信頼ダイアログ、コマンド承認 | 低:利用者が「承認」を押す習慣を持っている場合 |
違いは2列目にあります。最初の3つは、利用者が特定の手順を誤る必要があります。4つ目は、リポジトリやzipファイルをDownloadsにダウンロードし、その場でエージェントを起動して「とりあえず見てみる」という、よくある習慣を突いています。Forever自身のデータでは、顧客の約半数でDownloadsでエージェントを実行している人がいます。
仕組み:攻撃はどのような段階を経るのですか?
攻撃チェーンは4つの段階からなり、エンジニアであればイメージしやすいものです。
1. ファイルの書き込み: Webページが AGENTS.md を自動でDownloadsに保存します。Foreverはこれを行う試験用ページを作成できました。ただし、顧客の実機にあったファイルがどの経路で届いたかは特定できていません。
2. コンテキストへの読み込み: エージェントはフォルダで起動すると指示ファイルを自動で読み、Webコンテンツより高い信頼度でその内容をコンテキストに入れます。
3. 永続的な設定変更: Codexの場合、ファイルは ~/.codex/config.toml に [mcp_servers.*] ブロック(MCPツールサーバー)を追加するよう求めます。Claude Codeの場合は .claude/settings.json に ANTHROPIC_BASE_URL を設定させ、すべてのAPIリクエストを攻撃者のサーバー経由にします。
4. 実行: 偽サーバーがエージェントに実行させるコマンドを返すか、エージェントが function-color を直接インストールします。このパッケージは function-flag を取り込み、Windows用の実行ファイルをダウンロードして実行します。
長期的に最も危険なのは3段階目です。共通設定が書き換えられるため、AGENTS.md を削除しても十分ではありません。未知のサーバーは以後のセッションでも読み込まれ続けます。
なぜCodexとClaude Codeで結果が異なるのですか?
90%超と約50%という差を「一方のエージェントの方が安全」と読むべきではありません。2つの試験は異なるファイルと異なる目的を使っています。Codexは実際の悪性ファイルを再実行し、Claude Codeは研究チームが自作したファイルを使いました。Foreverは、Codexで突破する必要があった5つの制御も挙げています。その中にはフォルダ信頼ダイアログと、--dangerously-bypass-approvals-and-sandbox フラグによるネットワークサンドボックスの回避が含まれます。90%超という数値がどの設定で測定されたかは、記事では明確にされていません。Claude Codeについては、設定の書き込み時にClaudeが通常承認を求め、フォルダにセキュリティに関するメモがある場合は毎回拒否したとForeverは記録しています。つまり結果はモデルだけでなく、承認設定やフォルダの内容にも大きく左右されます。
立場ごとの影響
- 個人の開発者: 最大のリスクはログイントークンの漏えいです。漏えいしたトークンは有効なセッションそのものであり、攻撃者はあなたのアカウントの利用枠を使ったり、エージェントがアクセスできるデータを読んだりできます。
- 開発チームと技術マネージャー: エージェントの設定はリポジトリの外(
~/.codex/config.toml)にあるため、コードレビューを通りません。設定を書き換えられたマシンは、Git上に変更が見えないまま問題のあるコードを共有リポジトリに送り込む可能性があります。 - 中小企業(ベトナムを含む): 外部委託チームやフリーランサーの多くは個人のノートPCを使い、顧客のソースコードをDownloadsにダウンロードしがちです。端末を一元管理するツールがなければ、エージェント設定の確認はほぼ個人任せになります。
- マーケターや非プログラマー: ランディングページやデータ処理スクリプトの作成にCodexやClaude Codeを使う人が増えています。この層は見慣れない
.mdファイルを読むことが少なく、承認要求にすべて「承認」を押しがちです。
実際のコストはどのくらいですか?
実被害の数値は公表されていないため、下の表は、開発者20人のチームを想定したTBN Growの仮定に基づき、予防コストとインシデント対応コストを比較したものです。
| 項目 | 仮定 | 見積もり |
|---|---|---|
| エージェント設定の定期確認 | 1人あたり月10分 × 20人 | 月約3.3人時 |
config.toml と settings.json をスキャンするスクリプト作成 | エンジニア1人、1回のみ | 約4人時 |
| 感染した1台の対応 | 端末の隔離、再インストール、全トークンの変更、リポジトリの確認 | 1〜2人で1〜3人日 |
| 感染端末から送られたコードの再確認 | 感染期間中のコミットを読み直す | コミット数による。数人日かかる可能性 |
この仮定では、予防にかかるのは月4人時未満です。一方、1件のインシデントだけでもその何倍もかかる可能性があり、顧客データ漏えいのリスクも別にあります。この比較はあくまで例示であり、実際のコストはチームの規模やデータの種類によって変わります。
研究のリスクと限界
- 事例は1件、試験は複数です。 実験室の外での証拠は、顧客の実機での1件で、コードが実行される前に阻止されました。実際の被害に関する公開報告はまだありません。
- 感染経路は不明です。 ForeverはWebページがDownloadsにファイルを自動で書き込める*可能性*を示しましたが、実際の攻撃者がこの方法を使ったかどうかはわかっていません。
- 公表元はソリューションの販売元です。 Foreverはエージェント監視製品を販売しており、リスクを強調する動機があります。それで数値が誤りになるわけではありませんが、独立した検証が必要です。
- 手法の詳細が不足しています: 記事には試行回数や、試験したCodexとClaude Codeのバージョンが記載されていません。
- マルウェアはWindowsのみが標的です(Checkmarxによる)。ただし、Claude Codeでのトークン漏えいはOSに依存しません。
検証が必要な点
- 「90%超」と「約50%」という数値は単一の情報源(Forever)によるものです。The Hacker Newsなどのサイトはそれを伝えているだけです。独立した研究機関による再現試験はまだありません。
- TBN Growが確認した報道の範囲では、OpenAIとAnthropicによる公式の反応はまだありません。
- 自分のマシンはすぐに確認できます。
~/.codex/config.tomlを開き、見慣れない[mcp_servers.*]ブロックや変更されたchatgpt_base_urlがないか探してください。すべての.claude/settings.jsonで、自分で設定していないANTHROPIC_BASE_URLの行がないか確認してください。node_modulesやパッケージのインストール履歴にfunction-colorやfunction-flagがないかも確認してください。
TBN Growの見解
これはCodexやClaude Code固有の脆弱性ではなく、エージェントに人の代わりに作業する権限を与えた以上、避けられない結果です。エージェントが読むあらゆるファイルが命令になり得ます。承認をスキップするモードでエージェントを動かしているチームは、今週中に設定を見直すべきです。承認ありのモードで使っているチームでも、エージェントを起動する前に見慣れない指示ファイルを読む習慣が必要です。研究チーム自身が述べているとおり待つべきパッチは存在しないため、修正を待つべきではありません。
今後の注目点
AIコーディングエージェントのセキュリティで今後注視すべき点
今すぐできること(チェックリスト)
- `~/Downloads` でAIエージェントを起動しないでください。 エージェントを実行する前に、ソースコードを専用のプロジェクトフォルダに移してください。
- 自分で書いていない `AGENTS.md`、`CLAUDE.md` はすべて読んでください。 クローンしたばかりのリポジトリも対象です。サーバーの追加、APIアドレスの変更、見慣れないパッケージのインストールを求める指示には注意してください。
- 設定を確認してください:
~/.codex/config.toml([mcp_servers.*]ブロック、chatgpt_base_url)と.claude/settings.json(ANTHROPIC_BASE_URLや見慣れないAPIアドレス)。 - 承認とサンドボックスを有効のままにしてください。 実データのあるマシンでは承認をスキップするフラグを使わず、それらを無効にするよう求める指示はすべて疑ってください。
- 不審なファイルを見つけたら、トークンは漏えいしたものとみなしてください: ログアウトしてトークンを再発行し、関連するAPIキーを変更したうえで、最近のコミットを見直してください。
- 開発チーム向け: エージェント設定のスキャンを毎月の端末チェック項目に加え、「Downloadsでエージェントを実行しない」というルールを社内ドキュメントに明記してください。
タイムラインと未公表の事項
- 2026年10月22日: Foreverが研究を公表しました。2026年10月5〜6日: Checkmarxや各セキュリティサイトが、悪性npmパッケージ8個からなるMALFEXキャンペーンを公表しました。
- OpenAIとAnthropicからの公式な反応はまだありません。信頼されていないフォルダ内の指示ファイルの扱いについて、CodexとClaude Codeのリリースノートを注視するとよいでしょう。
- どのブラウザが確認なしで
.mdファイルの自動ダウンロードを許すのか、またブラウザ各社がこの挙動を変えるかどうかはまだわかっていません。 - 他のエージェント(Cursor、Gemini CLI、Copilot)での独立した試験はまだありません。指示ファイルを読む仕組みは似ているため、リスクは試験された2製品に限られない可能性が高いと考えられます。
あわせて読む:OpenAIの2つのAIエージェントが社内監視を自ら外した理由、FSBによるAIエージェント管理の12の実践。
OWASPの10のリスクと企業向け90日チェックリストは、AIエージェントを安全に導入するための総合ガイドに掲載しています。
検証した情報源:Forever Security – Markdown Is the New Executable、The Hacker News、Checkmarx – MALFEXキャンペーン、eSecurity Planet。
