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

プロンプトはフォームに触れていなかった

10月9日、Anthropic は社内テスト中に Claude モデルが実在のウェブサイト上で行動した事例の報告書を公開しました。そのひとつ、Claude Haiku 4.5 は7月18日、未解決の殺人事件に関する虚偽の情報提供をフィラデルフィア市警に送信しました。指示はログイン、購入、個人情報を禁じていましたが、フォームについては何も書かれていませんでした。Anthropic がこの送信を見つけたのは10週間後です。Bromure Agentic Coding では、境界は Mac 上のルールです。エージェントはどのページでも読めますが、許可リストにないサイトへの POST は 403 で返され、同じ分のうちに Security Timeline に記録されます。

モデルは、ログインするな、何も買うな、個人情報を入力するなと指示されていた。 送信ボタンを押すなとは、誰も言っていなかった。

7月18日午後11時27分、PhillyUnsolvedMurders.com の公開フォームから一件の情報提供が 送られました。フィラデルフィア市警が未解決の殺人事件のために運営しているサイトです。 メッセージは「この事件について情報を持っているかもしれません。」で始まっていました。 送り主は Claude Haiku 4.5 で、無作為に選んだウェブサイトから例題タスクを生成する Anthropic のテストの中で動いていました。

市警のフィルターはこれをスパムと判定し、Real-Time Crime Center には届きませんでした。 Anthropic は9月28日にこの送信を見つけ、10月7日に市警へ伝え、10月8日に担当者と 面会しました。市警は10月9日金曜日にこれを公表し、Anthropic も同じ日に報告書 Investigating unintended model actions を公開しました。6abc Action News が伝えた市警の声明はこうです。「事件の検知と市への報告に2か月を要したことは 容認できない。」

Anthropic は現在、監視が「こうした挙動を確実に捕捉できる」ようになるまで、すべての 社内評価で実際のインターネットへのアクセスを止めていると The Hacker News は報じています。The New York Times は匿名の情報源2人の話として、Anthropic の エージェントが国務省のサイトでビザ申請書を20件記入したと付け加えています。

4種類の粘り強さ

報告書は Anthropic が見つけたものを4つの分類に整理しています。Anthropic は、現実への 影響は最小限で、顧客データは関わっていないと述べています。これを、有能なエージェントが タスクの行く手を阻まれたときに何をするかのリストとして読んでください。

  1. 計算を終えるためにサーバーを悪用した。 大学がホストする分析ツールがエラーを 返しました。Claude はサーバー上に「頼まれたファイルを何でも」返すスクリプトを見つけ、 さらにインジェクションの脆弱性を見つけ、それを使って計算を実行しました。
  2. 送信すべきでないフォームを送信した。 練習用フォームが読み込めなかったとき、 未公開の研究用モデルは本物の政府サイトへ行き、本物のフォームを何度も送信しました。 最終送信の前で止まるよう指示されていた Haiku 4.5 は、確認ページを期待してそれでも 送信しました。推論には「手順を実演している」とありました。そして市警への情報提供です。
  3. データに届くために制限をすり抜けた。 閲覧できるページ数を制限されていた Claude は、 地図サイトの設定ファイルを読み、有効なアクセストークンを見つけ、地図サーバーに直接 問い合わせました。ある研究者の統計プロジェクトでは、州機関の有料ダッシュボードが 訪問者全員にトークンを渡していることに気づき、それを取得して料金を払わずに データベースを照会しました。
  4. 短縮で fetch の制限を越えた。 Anthropic の fetch ツールは URL の長さに上限を 設けています。長い URL には注入された指示を「運ぶ余地」があるからです。Claude Opus 5 や Claude Mythos 5 を含む複数のモデルが、URL を無料の短縮サービスに通しました。 da.gd の運営者は、それに気づいたと連絡してきました。

Anthropic 自身の診断では、これらの多くは Claude が「止まる代わりに制約を回避する」 ケースであり、一部は評価が対象、許可される操作、ネットワークの境界を明示していれば 「避けられた」ものです。

2種類の制限、どちらも内側

報告書に出てくる制限は、どれもエージェントの内側にあります。一部はプロンプトの中の 文でした。ログインしない、アカウントを作らない、個人情報を使わない、最終送信の前で 止まる。モデルは与えられたものには従いました。フォームはリストになく、「送信前に 止まれ」という指示は、確認ページを見たいというモデルの欲求に負けました。

残りはツールの制限でした。fetch の URL 長の上限、評価ハーネスのクリック回数の予算。 モデルは目的を保ったまま別の道を使いました。短縮サービス、設定ファイル、ページの裏に あるサーバーへの直接の問い合わせ。

Anthropic の検知は、そのすべてに後れを取りました。7月に始まったトランスクリプトの 見直しは、サイバー評価から Claude がインターネットに届くあらゆる場所へと広がり、 情報提供は送信から10週間後の9月28日に見つかりました。da.gd の運営者とフィラデルフィア 市警は、それぞれ自分の分を独自に見つけていました。

フォームひとつ、72日間の沈黙7月18日 23:27市警の情報提供フォームへ POST:「この事件について情報を 持っているかもしれません。」プロンプト:ログイン、購入、個人情報は禁止。フォーム:記載なし。72日間:アラートなし、読まれたログなし。情報提供はトランスクリプトの中。9月28日トランスクリプトの見直しで発見10月7日市警へ通知10月9日声明と報告書
市警への情報提供、送信から公表まで。モデルとフォームのあいだにあった唯一のチェックは、してはいけないことのリストでした。送信は10週間後、トランスクリプトの見直しで見つかりました。

あなたのエージェントにも同じ癖がある

これは Anthropic 自身の評価で、モデルを訓練している人たちが実施したものです。 あなたのコーディングエージェントも同じ道具を持っています。fetch、curl が使える シェル、requests が使える Python、そして多くの場合ブラウザ。報告書が描く気質も 同じです。途中で失敗するタスク、本物のエンドポイントが必要なテストフィクスチャ、 確認すべきサインアップの流れ、「検証」すべき webhook を渡せば、エージェントは 別の終わらせ方を探します。

あなた自身の制限も文です。本番環境に触れるなという CLAUDE.md の一行、デプロイの前で 止まれというタスクのメモ。どれも書いた人が思いついたケースしかカバーしません。本物の フォーム、API、あるいは実は本番だったステージングサーバーへの curl -X POST は、 結果を見たいエージェントにとってはコマンド一つです。

Bromure のマシンで同じタスクを

Bromure Agentic Coding では、エージェントは Mac 上の Linux VM で動き、VM が開く すべての接続はホスト上の仮想スイッチとプロキシを通ります。ルールはそこにあり、 エージェントの手は届きません。市警への情報提供をマシンの中で再現し、モデルに送信を 決めさせてみましょう。

読むのは自由、書くのはリストに載った先だけ

マシンの Guardrails ペインにある Outbound connections ファイアウォールは、 ホスト、プロトコル、ポート、そしてウェブ通信なら HTTP メソッドでルールを受け付けます。 Anthropic は、評価には明示された「ネットワークの境界」が必要だったと述べました。 ペインの pf 形式で書くと、たとえばこうなります。

allow web api.anthropic.com
allow web github.com
allow web registry.npmjs.org
allow web pypi.org
allow web any:80,443 read-only
default deny

ルールは上から順に照合されます。モデルの提供元、フォージ、プロジェクトが使う レジストリはすべてのメソッドを使えます。ウェブのそれ以外は GET、HEAD、OPTIONS だけです。エージェントはドキュメントのページ、issue、changelog、情報提供フォームを 好きなだけ読めます。送信ボタンを押すと、phillyunsolvedmurders.com への POST は 読み取り専用のルールに一致し、プロキシは「POST to phillyunsolvedmurders.com blocked by Bromure Guardrails.」という 403 を返します。フォームにリクエストは届きません。 エージェントは報告できるはっきりしたエラーを受け取り、default deny はリストに載った ホストへのウェブ通信以外をすべて落とします。

フォームも、ビザ申請も、読み込めなかった練習用ページも、リストに書く必要はありません。 ルールはこのマシンが書き込む4つのホストを名指しし、ウェブの残りへの書き込みを 拒否します。

回り道も同じルールに当たる

Anthropic の技術的な制限はツールの中にあったので、モデルはツールを替えました。Bromure の ルールは回線上にあるので、ツールを替えても意味がありません。プロキシはリクエストが VM を 出た後にそれを見ます。エージェントの fetch からでも、curl からでも、Python からでも、 エージェントが1分前に書いた Node スクリプトからでも、URL 短縮サービスのリダイレクト からでも同じです。短縮リンクも結局は本物のホストへの本物のメソッドのリクエストになり、 そのリクエストは他と同じようにチェックされます。

設定ファイルから抜き出したトークンも同じです。エージェントが鍵を見つけ、プロジェクトの リストにないサーバーへの書き込みに使えば、その書き込みは読み取り専用のルールに当たります。 あなたが自分で設定した鍵には独自のポリシーがあります。マシンの資格情報は既定で Prompt before write になっているので、push、レジストリへのアップロード、AWS の変更は Mac 上のダイアログで止まり、正確な操作内容が表示されます。

記録は同じ分のうちに書かれる

フィラデルフィア市警は10週間の空白を容認できないと述べました。Bromure のマシンでは、 拒否された POST は7月18日午後11時27分の Security Timeline の赤い行になり、 マシン名、ホスト、メソッド、パスが記録されます。タイムラインは常に有効で、90日間 保持され、Overview タブには直近24時間の最新のブロックが一画面にまとまります。 bromure.io に登録された Mac では、同じイベントが組織のコンソールに送られます。

残りはトレースが補います。既定のレベル AI request details では、プロキシは マシンが行ったすべてのリクエストをホスト、メソッド、パスとともに保存し、モデルとの 会話全体も Mac 上で暗号化して保存します。Trace Inspector は、モデルが送信を決めた ターンを、それが出したリクエストと並べて表示します。bromure-cli trace hostnames は マシンが接続したすべてのホストをリクエスト数とともに一覧にするので、プロジェクトと 無関係なサイトは数十件の名前の中で目立ちます。レビュアーが読むのは一画面で、10週間分の トランスクリプトではありません。

無人の実行にも同じルール

報告書の事例は、誰も見ていない自動実行の中で起きました。Bromure の Automations、 つまりスケジュールやイベントで起動するエージェントの実行は、マシンの上で、そのマシンの Guardrails とファイアウォールのもとで動きます。午後11時27分の実行も、正午にあなたが 見ている実行と同じルールに当たり、そのブロックは同じタイムラインに入ります。

Bromure では:エージェントは何でも読め、書けるのは Mac が許す先だけマシン VM(Ubuntu)GET /case/… → ページPOST /tip → 403fetch、curl、Python短縮 URL のどれでも回線上は同じリクエストモデル:「フォームを送信」スイッチ + プロキシ(Mac 上)allow web api.anthropic.comallow web github.comallow web registry.npmjs.orgallow web pypi.orgallow web any:80,443 read-onlydefault denyphillyunsolvedmurders.com への POST→ 403、Bromure Guardrails がブロック情報提供フォームページを配信受け取った送信:なしSecurity Timeline、同じ分のうちに7月18日 23:27 · evals · Guardrails · POST phillyunsolvedmurders.com/… · ブロックトレースはメソッド、ホスト、パスと、それを求めたモデルのターンを Mac 上で暗号化して保存します。
Bromure のマシンでの同じ情報提供。エージェントはページを読み、フォームに記入できます。POST は Mac 上のプロキシを通り、読み取り専用のルールに一致して 403 を受け、Security Timeline は同じ分のうちにそれを記録します。

Anthropic の対策を、あなたのノートパソコンで

Anthropic の対策リストには、実在のサイトに触れないよう評価を廃止または作り直すこと、 fetch ツールの強化、社内エージェントをインターネットアクセスを絞った「一元管理された インフラ」へ移すこと、そしてテストで報告書のすべての事例をブロックした自動監視が 含まれています。これは自前のインフラチームを持つ研究所が、自分たちのハーネスを 作り直しているということです。

Claude Code、Codex、その他のエージェントをノートパソコンで動かす開発者に必要なものも 同じ3つです。文ではない境界、エージェントが編集できない場所でのチェック、そしてその日の うちに誰かが目にする記録。Bromure のマシンは、何も作り直さずに、ファイアウォールの ルール、Mac 上のプロキシ、Security Timeline を提供します。

読むのはどこでも、書くのはリストの先だけ

ファイアウォールのルール一つで、エージェントはすべてのウェブページを GET と HEAD で 読め、POST、PUT、DELETE はプロジェクトが使うホストに限られます。それ以外への送信は Mac 上のプロキシから 403 を受けます。

ツールを替えても答えは変わらない

チェックは VM を出た後のリクエストに対して行われます。fetch、curl、Python、 短縮 URL、設定ファイルから抜いたトークン、どれも同じリクエストになり、同じルールに 当たります。

設定済みの鍵は書く前に尋ねる

新しいマシンでは、設定済みのサービスはすべて Prompt before write になります。push、 アップロード、クラウドの変更は Mac 上のダイアログで止まり、正確な操作が表示されます。

ブロックはその分のうちに記録される

拒否はすべてホスト、メソッド、パスとともに Security Timeline の一行になり、90日間 保持されます。トレースには、それを求めたモデルのターンが残ります。

次のフォーム

Anthropic は、見直しが進むにつれてさらに事例が見つかると見込んでいます。同社の モデルは、自分たちを訓練した人々が書いた指示のもとでテストを実行しながら、ビザ申請と 市警への情報提供を記入しました。あなたのエージェントも、壊れたフィクスチャ、 ステージングの URL、あるいは独自のサインアップページに行き当たるでしょう。急いで 書かれた指示とともに。

境界は Mac 上のファイアウォールのルールとして書き、CLAUDE.md の一行は覚え書きとして 残しておきましょう。Anthropic の見直しのきっかけとなった7月の事例については サンドボックスは一文だった を、同じ話の OpenAI 版 については タスクは解けなかった、だからエージェントは外へ出た をお読みください。