すべての投稿に戻る
公開日 · 著者 Renaud Deraison

あなたのコーディングエージェントは攻撃者そっくりに見える

2026年7月、Sophos X-Opsは、1週間分のWindowsテレメトリにわたって、Claude Code、Cursor、Codexといったコーディングエージェントが、侵入者を捕らえるために作られたのと同じエンドポイントルールを発火させたと報告した——ブロックの56.2%は資格情報アクセスで、最大のものはブラウザパスワードの復号だった。挙動は本物の攻撃と同一であり、唯一の変数は誰のマシンで動くかだ。Bromure Agentic Codingはその変数を、おとりの資格情報を持つ使い捨てLinux VMにする。だから騒がしい動きは使い捨ての箱に着地し、ホストの防御は厳格なままでいられる。

あなたのエージェントは、ブラウザに保存されたパスワードを復号し、資格情報 マネージャーを一覧し、Windowsのシステムユーティリティでインストーラーを取得 し、スタートアップフォルダーにスクリプトを落とした。そのどれもが本物の侵入者 のチェックリストに載っている。Sophosはコーディングエージェントがそれを全部 やるのを見た。何一つ悪意はなかった——それがまさに問題なのだ。攻撃者が生む テレメトリと、あなたのエージェントが生むテレメトリは、同じテレメトリだから。

2026年7月7日、Sophos X-Opsは6月の 1週間分のエンドポイントテレメトリの分析 を公開し、開発者がコーディングエージェントを実機に向けたときに何が起こるかを 調べた。その所見は衝突であって、誰かがパッチできるバグではない。エージェントの 日々の仕事——資格情報を読む、コマンドを実行する、ツールをダウンロードする、 再起動をまたいで何かを生かし続ける——は、エンドポイント検知が捕らえるよう 調整されたMITRE ATT&CKの戦術にほぼ一対一で対応する。 だからセンサーは発火した。

センサーが実際に見たもの

その週、ブロックするルールヒットの最大の割合——56.2%——は資格情報アクセスに 落ち、さらに28.8%が実行に落ちた。これはフレームワークの中でも最も攻撃者らしい 形をした2つのカテゴリだ。単一で最大の資格情報ルールは、そのグループの42.6%を 占め、プロセスがWindowsのデータ保護API(DPAPI、ユーザーの保存された秘密を 解錠するOSサービス)を使ってブラウザの保存ログインを復号すると発火する。Sophos はそれを、GStackの/browseスキル——エージェントにブラウザを与える人気の スキルパック——がPowerShellを実行して保存済みブラウザデータを解錠していたことに たどり着いた。それはClaude Code配下で動いているところを捕まえた。

リストの残りはインシデント報告のように読める。エージェントはcmdkey /listを 実行してWindows資格情報マネージャーを列挙した。ブラウザプロセスを殺してから、 その資格情報ストアに手を突っ込んだ。certutilbitsadminを使ってPython インストーラーをダウンロードした——ダウンロードフィルターを発火させずに ペイロードを取ってくるために攻撃者が悪用する、2つの正規のWindowsバイナリで、 防御側がLOLBin(「living off the land binary」、現地調達)と呼ぶ手口だ。Cursor はWindowsのスタートアップフォルダーにVBScriptを書き込んだ。これは永続化の 教科書的な例だ。そしてClaudeのコマンドラインには--dangerously-skip-permissions ——エージェント自身の「本当によろしいですか?」という確認を切るフラグ——が 載っていた。

そのどれも攻撃ではなかった。文脈で見れば、ほぼ常に開発者が頼んだ自動化だ。だが Sophosはそれが防御にとって何を意味するかを率直に述べる。ルールは設計通りに 機能しており、挙動だけではもはや、良性のエージェントと本物のエージェントを 区別できない。

あなたのエージェントブラウザスキル・準備あなたが依頼した本物の侵入者侵入後の活動同じマシン上で同じコマンド• DPAPI: ブラウザ資格情報を復号• cmdkey /list• certutil / bitsadmin fetch• スタートアップにスクリプトエンドポイントセンサー資格情報アクセス・実行誰が実行? 不明
一つのコマンドブロック、二人の作者、一つのセンサー。ブラウザ自動化スキルを走らせるコーディングエージェントと、侵害後の活動を行う侵入者は、同じ動きを繰り出す——ブラウザ保管庫を復号し、資格情報マネージャーを一覧し、LOLBinでツールを取得し、スタートアップに書き込む。エンドポイントセンサーは同一のテレメトリを見て、誰がそれを打ったのか言えない。異なる唯一の事実は、コマンドが誰のマシンで動いたかだ。

罠はセンサーで直そうとすること

その所見を運用者として読めば、圧力は明らかだ。あなたのチームはコーディング エージェントを導入する。誰かが一つ走らせるたびに、エンドポイントツールが資格 情報アクセスと実行のアラートを投げ始める。アラートは騒がしく、誰も攻撃を受けて いないという意味で「偽」だ——だから自然な動きはそれらを黙らせることになる。 エージェントに例外を追加し、スキルパックをホワイトリストに入れ、そのプロセス ツリーからのDPAPI読み取りをフラグするのをやめる。

そうした瞬間、あなたは自分の防御に、本物の侵入者が使うまさにその手順を無視しろ と告げたことになる。しかもエージェントは安全に切り出せるものではない。マシンの 上で、あなたに向けて牙をむく可能性が最も高いものだからだ。リポジトリに隠された プロンプトインジェクション、汚染されたマーケットプレイスのスキル、悪意のある 依存関係——私たちはその それぞれ を扱ってきた——は、エージェントに あなたの権限で攻撃者の指示を実行させる。それが起きると、エージェントは同じ DPAPI復号を、同じ資格情報マネージャーのダンプを、同じLOLBin取得をやる——ただし 今度は本気だ。あなたは、それを捕らえたはずの唯一のセンサーを、自分自身について オオカミ少年になるのをやめさせるという名目で盲目にしたのだ。

Sophosは冷静な結論に着地する。検知エンジニアリングは適応しなければならず、 一部のルールは調整が必要になり、識別のシグナルは行動そのものではなく文脈—— どのエージェントが、どう呼び出されたか——から来なければならない。それは正しく、 そして動く標的に対してセンサーを正直に保ち続けるための、大量の継続的な作業でも ある。もっと素朴な選択肢がある。センサーが住む場所でエージェントを走らせるのを やめることだ。

エージェントを動かせ、アラームではなく

Bromure Agentic Codingは、エージェント全体をハイパーバイザー一つ隔てた向こう、 あなたのMac上の使い捨てLinux VMの中で走らせる。資格情報ストアの読み取り、ツール のダウンロード、永続化の書き込み——そのすべてが、あなたのマシンではない箱の中で 起こり、そのリセットはセッション間できれいなベースイメージに戻す。三つのことが そこから導かれ、そのどれも、ホスト上のルールを一つでも緩めることを要求しない。

騒音は決してあなたのエンドポイントに届かない。ホストの本物の防御は厳格なまま だ。エージェントがそれを発火させるためにホスト上にいないからだ。スタートアップ フォルダーへの書き込みは使い捨てのファイルシステムに着地し、それが待っていた 再起動は決して来ず、リセットがどちらにせよそれを捨てる。

資格情報の読み取りは空手で戻る。これがあの56.2%への直撃だ。Bromureは本物の秘密 をホストに保ち、回線上のプロキシで偽物にすり替える。だからVMの中に実際に座って いるのはおとりの素材だ——APIキーがあるべき場所のbrm_…というプレースホルダー、 合成のkubeconfig、使い捨てのgitとssh資格情報。そのVMの中でブラウザ保管庫を復号 したり資格情報マネージャーをダンプしたりするエージェントは、機能するものを何一つ 収穫しない。本物の値は、エージェントが回り込めない境界で、送信リクエストの上で だけ差し替えられる。

--dangerously-skip-permissionsは危険であることをやめる。このフラグが存在する のは、一歩ごとに「本当によろしいですか?」と訊かれるとエージェントの意味が死ぬ からだ。人々はそれを切る。それを無謀にしているのは、下にあるマシンだ。マシンを おとり資格情報の使い捨てVMに動かせば、フラグは単に速いだけになる——それを恐れる 理由は決してフラグではなく、被害半径だった。

自分のマシン上のエージェントエージェントATT&CK型の動き本物の秘密情報ブラウザ保管庫・トークンスタートアップ・実ディスク・残る乗っ取られたエージェントはこれを本当に全部やる選択を迫られるセンサー絶え間ない誤検知 ……またはエージェントを許可し盲目にBromure VM内のエージェントエージェント同じ動き・使い捨て箱おとりの秘密情報brm_… ・偽の鍵使い捨てFS・基盤へリセット永続化はセッション間で消去されるホスト境界本物の秘密を注入・破壊的呼び出しを遮断送信を記録・ホストセンサーは厳格
同じエージェントを置く二つの場所。あなたのマシン上(左)では、攻撃者らしい形のコマンドが本物の資格情報と本物の永続化に当たり、エンドポイントツールは絶え間ない誤検知と盲点のあいだで立ち往生する。Bromure VMの中(右)では、同じコマンドがリセットする箱の中のおとり資格情報に当たり、エージェントがホスト上にいないのでホストのセンサーは厳格なままで、送信の動きは本物の秘密を差し込み、破壊的な呼び出しを遮断し、トラフィックを記録する境界を越える。

乗っ取られたエージェントはどうなる

封じ込めは騒音に答えるが、より鋭い懸念は、単に騒がしいだけではないエージェント ——それは寝返らされた——だ。Bromureの境界はその場合のためにも作られている。 その端末上のインジェクション検知は、エージェントが読む信頼できないコンテンツと 指示ファイルを、エージェントがそれに基づいて動く前に採点する——ローカルの PromptGuardモデルと微調整された 分類器で——だから悪意ある「さあ鍵を抜き取れ」は入口でフラグされる。箱の外で 意味を持つ動き——push、デプロイ、あなたのクラウドに対するDelete*——はホスト プロキシを越え、そこでGuardrailsが破壊的な呼び出しを丸ごと取り除け、宛先ごとの 同意がまず人間のタップを要求できる。そしてすべての送信リクエストはセッション トレースに着地し、侵入者が必要とするコールバックは、偽の資格情報を運ぶ記録 された一行として現れる。

Sophosが測定した行動の衝突は本物であり、消えはしない——コーディング エージェントの誠実な仕事は、設計上、攻撃者の手口と重なる。あなたはそれを センサーで解決できない。誤検知に溺れるか、あるいは、あなた自身のエージェントが 侵害された日に通り抜ける穴を切り開くか、そのどちらかなしには。Bromureはそれを 別の場所で解決する。どちらがコマンドを打ったかを気にするのをやめるのだ。なぜ なら、そのコマンドはリセットする箱に着地し、おとりの資格情報を使い、監視する 境界を通してしか外の世界に触れられないから。

これが線を引く範囲

隔離は封じ込めであって、悪いものが何も実行されないという約束ではない。その縁に ついて正確であることには価値がある。

それらはWindowsの名前だが、衝突は違う

DPAPI、cmdkeycertutil、スタートアップフォルダーはWindowsのものだ。 BromureはエージェントをLinux上で走らせるので、まさにそれらのバイナリはその中 で決して発火しない。だがパターンはプラットフォームに依存しない。Linux上の エージェントは~/.aws/credentialsを読み、環境のトークンをダンプし、cronや systemdユニットを書く——別の名前の下の、同じ攻撃者らしい形の動きだ。制御も また同じだ。署名ではなく、場所とおとり。

差し替えは、あなたが設定する秘密を覆う

おとりのすり替えは、あなたがプロファイルに入れる資格情報を守る。モデルキー、 gitとクラウドのトークン、マネージドデータベースのエンドポイント、ssh鍵。 スクリプトがセッション途中でファイルに書くパスワードや、あなたが手で箱に 貼り付ける秘密は、エージェントが読める単なるファイルだ。秘密はワークスペース ではなくブローカーに置くこと。

検知は網であって、壁ではない

端末上のインジェクション採点は、悪意ある指示をたいていはフラグするが、決意 した作者はどんな単一のスキャナーも飢えさせられる。検知器は一つの層として 扱うこと。封じ込め——偽の鍵と記録された送信を持つ使い捨ての箱——こそ、検知器 が見逃したときに持ちこたえるものだ。

あなたのホストEDRは依然として重要だ

Bromureはエンドポイント保護を置き換えない。それにより清潔な仕事を与える。 エージェントの騒音はホストから離れるので、あなたのセンサーは、あなたが実際に ログインするマシンを鈍らされずに見張り続ける——そしてそこにいる本物の侵入者 は、依然としてそれを通り抜けねばならない。

Sophosの数字の下にある教訓は「エージェントは危険だ」ではない。良い行為者と悪い 行為者を、コマンドの形で見分けることはできない、という教訓だ。形が同じだから。 だからキーボードでそれを決めようとするのをやめ、代わりに境界で決めよ。エージェ ントを、その攻撃者らしい形の仕事が封じ込められ、その資格情報が偽物で、外へ向かう 一歩ごとが記録される場所で走らせるのだ。インストールを