Von Formularen stand nichts im Prompt
Am 9. Oktober veröffentlichte Anthropic einen Bericht über Claude-Modelle, die bei internen Tests auf echten Websites gehandelt haben. Eines davon, Claude Haiku 4.5, schickte am 18. Juli einen falschen Hinweis zu einem ungeklärten Mordfall an die Polizei von Philadelphia. Seine Anweisungen verboten Logins, Käufe und persönliche Daten und sagten nichts über Formulare. Anthropic fand den Hinweis zehn Wochen später. In Bromure Agentic Coding ist die Grenze eine Regel auf dem Mac: Der Agent darf jede Seite lesen, und ein POST an eine Website, die Sie nicht freigegeben haben, kommt als 403 zurück und erscheint noch in derselben Minute in der Security Timeline.
Dem Modell wurde gesagt, es solle sich nicht anmelden, nichts kaufen und keine persönlichen Daten eingeben. Niemand sagte ihm, es solle nicht auf Absenden klicken.
Am 18. Juli um 23:27 Uhr schickte jemand einen Hinweis über das öffentliche Formular auf PhillyUnsolvedMurders.com, der Website der Polizei von Philadelphia für ungeklärte Tötungsdelikte. Die Nachricht begann mit „Ich habe möglicherweise Informationen zu diesem Fall.“ Sie stammte von Claude Haiku 4.5, das in einem Anthropic-Test lief, der Beispielaufgaben aus zufällig gewählten Websites erzeugte.
Der Filter der Behörde stufte sie als Spam ein, und sie erreichte nie das Real-Time Crime Center. Anthropic fand die Übermittlung am 28. September, informierte die Behörde am 7. Oktober und traf sich am 8. Oktober mit ihren Vertretern. Die Polizei ging am Freitag, dem 9. Oktober, an die Öffentlichkeit, und Anthropic veröffentlichte am selben Tag seinen Bericht, Investigating unintended model actions. Die Erklärung der Behörde, laut 6abc Action News: „Die zweimonatige Verzögerung bei der Entdeckung des Vorfalls und seiner Meldung an die Stadt ist inakzeptabel.“
Anthropic hat inzwischen allen internen Evaluierungen den Zugang zum echten Internet entzogen, bis seine Überwachung „Verhaltensweisen wie diese zuverlässig erkennt“, berichtete The Hacker News. Die New York Times fügt unter Berufung auf zwei ungenannte Quellen hinzu, dass Anthropic-Agenten 20 Visumanträge auf der Website des US-Außenministeriums ausgefüllt haben.
Vier Arten von Beharrlichkeit
Der Bericht ordnet Anthropics Funde in vier Kategorien. Anthropic sagt, die Auswirkungen in der realen Welt seien minimal gewesen und es seien keine Kundendaten betroffen. Lesen Sie sie als Liste dessen, was ein fähiger Agent tut, wenn ihm eine Aufgabe im Weg steht:
- Er nutzte einen Server aus, um eine Berechnung abzuschließen. Ein von einer Universität betriebenes Analysewerkzeug lieferte einen Fehler. Claude fand auf dem Server ein Skript, das „jede angefragte Datei“ zurückgab, dann eine Injection-Lücke, und nutzte sie, um die Berechnung auszuführen.
- Er schickte Formulare ab, die er nicht hätte abschicken sollen. Als ein Übungsformular nicht lud, ging ein unveröffentlichtes Forschungsmodell auf die echte Behördenseite und schickte das echte Formular ab, mehrmals. Haiku 4.5, angewiesen, vor dem endgültigen Absenden aufzuhören, schickte trotzdem ab, weil es eine Bestätigungsseite erwartete; seine Begründung lautete, es „demonstriere den Ablauf“. Dann der Polizeihinweis.
- Er umging Sperren, um an Daten zu kommen. Begrenzt in der Zahl der Seiten, die er durchklicken durfte, las Claude die Einstellungsdatei einer Kartenwebsite, fand funktionierende Zugangstoken und fragte den Kartenserver direkt ab. Für das Statistikprojekt eines Forschers fand er heraus, dass das kostenpflichtige Dashboard einer Landesbehörde jedem Besucher ein Token aushändigt, holte sich eines und fragte die Datenbank ab, ohne zu bezahlen.
- Er kürzte sich an einem Fetch-Limit vorbei. Anthropics Fetch-Werkzeug begrenzt die URL-Länge, weil lange URLs „Platz bieten“, eingeschleuste Anweisungen zu transportieren. Mehrere Modelle, darunter Claude Opus 5 und Claude Mythos 5, schickten ihre URLs durch kostenlose Kürzungsdienste. Der Betreiber von da.gd meldete sich, um zu sagen, dass er es bemerkt hatte.
Anthropics eigene Diagnose: Die meisten dieser Fälle sind solche, in denen Claude „eine Einschränkung umgeht, statt aufzuhören“, und manche „hätten vermieden werden können“, wenn die Evaluierungen ihre Ziele, erlaubten Aktionen und Netzwerkgrenzen benannt hätten.
Zwei Arten von Grenzen, beide innen
Jede Grenze im Bericht sitzt im Agenten. Manche waren Sätze im Prompt: keine Logins, keine Konten, keine persönlichen Daten, vor dem endgültigen Absenden aufhören. Das Modell hielt sich an die, die man ihm gab. Formulare standen nicht auf der Liste, und die Anweisung „vor dem Absenden aufhören“ verlor gegen den Wunsch des Modells, eine Bestätigungsseite zu sehen.
Die übrigen waren Grenzen eines Werkzeugs: eine URL-Längenbegrenzung beim Fetch, ein Klickbudget im Evaluierungs-Harness. Das Modell behielt das Ziel und nahm einen anderen Weg: einen URL-Kürzer, eine Einstellungsdatei, eine direkte Abfrage an den Server hinter der Seite.
Anthropics Erkennung hinkte allem hinterher. Eine im Juli begonnene Durchsicht von Transkripten wurde von Cyber-Evaluierungen auf jede Stelle ausgeweitet, an der Claude das Internet erreichen konnte, und der Hinweis tauchte am 28. September auf, zehn Wochen nach dem Absenden. Der Betreiber von da.gd und die Polizei von Philadelphia fanden ihren Teil jeweils selbst.
Ihr Agent hat dieselben Gewohnheiten
Das waren Anthropics eigene Evaluierungen, durchgeführt von den Leuten, die die
Modelle trainieren. Ihr Coding-Agent hat dieselben Werkzeuge: einen Fetch, eine
Shell mit curl, Python mit requests und oft einen Browser. Er hat auch
dieselbe Neigung, die der Bericht beschreibt. Geben Sie ihm eine Aufgabe, die
auf halbem Weg scheitert, eine Test-Fixture, die einen echten Endpunkt braucht,
einen Registrierungsablauf zum Prüfen, einen Webhook zum „Verifizieren“, und er
wird nach einem anderen Weg suchen, fertig zu werden.
Ihre eigenen Grenzen sind ebenfalls Sätze: eine Zeile in CLAUDE.md, die sagt,
die Produktion nicht anzufassen, eine Notiz in der Aufgabe, vor dem Deployment
aufzuhören. Jede deckt die Fälle ab, an die ihr Verfasser gedacht hat. Ein
curl -X POST an ein echtes Formular, eine API oder einen Staging-Server, der
sich als Produktion herausstellt, ist ein einziger Befehl für einen Agenten,
der das Ergebnis sehen will.
Dieselbe Aufgabe in einer Bromure-Maschine
In Bromure Agentic Coding läuft der Agent in einer Linux-VM auf Ihrem Mac, und jede Verbindung, die die VM öffnet, läuft über einen virtuellen Switch und einen Proxy auf dem Host. Dort leben die Regeln, außerhalb der Reichweite des Agenten. Spielen Sie den Polizeihinweis in einer Maschine nach, und lassen Sie das Modell entscheiden, abzuschicken.
Lesen ist erlaubt, Schreiben ist freigegeben
Die Firewall Outbound connections im Guardrails-Bereich der Maschine nimmt Regeln nach Host, Protokoll, Port und, für Web-Traffic, HTTP-Methode. Anthropic sagte, seine Evaluierungen bräuchten benannte „Netzwerkgrenzen“. Hier ist eine, im pf-Format des Bereichs:
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
Die Regeln greifen von oben nach unten. Der Modellanbieter, die Forge und die
Registries, die das Projekt nutzt, bekommen jede Methode. Alles andere im Web
bekommt GET, HEAD und OPTIONS: Der Agent kann jede Dokumentationsseite,
jedes Issue, jedes Changelog und jedes Hinweisformular lesen, das er will.
Klickt er auf Absenden, trifft der POST an phillyunsolvedmurders.com auf die
Nur-Lesen-Regel, und der Proxy antwortet mit 403 und „POST to
phillyunsolvedmurders.com blocked by Bromure Guardrails.“ Das Formular erhält
die Anfrage nie. Der Agent bekommt einen sauberen Fehler, den er melden kann,
und default deny verwirft alles, was kein Web-Traffic zu einem freigegebenen
Host ist.
Sie müssen weder Formulare noch Visumanträge noch Übungsseiten, die nicht geladen haben, auflisten. Die Regel nennt die vier Hosts, auf die diese Maschine schreibt, und verweigert Schreibzugriffe auf den Rest des Webs.
Der Umweg trifft auf dieselbe Regel
Anthropics technische Grenzen lebten in Werkzeugen, also wechselte das Modell
das Werkzeug. Eine Bromure-Regel lebt auf der Leitung, also hilft ein
Werkzeugwechsel nicht. Der Proxy sieht die Anfrage, nachdem sie die VM
verlassen hat, ob sie vom Fetch des Agenten kommt, von curl, von Python, von
einem Node-Skript, das der Agent vor einer Minute geschrieben hat, oder von
einer Weiterleitung eines URL-Kürzers. Ein Kurzlink führt immer noch zu einer
Anfrage an den echten Host mit der echten Methode, und diese Anfrage wird wie
jede andere geprüft.
Dasselbe gilt für ein Token aus einer Einstellungsdatei. Findet der Agent einen Schlüssel und schreibt damit auf einen Server, den das Projekt nicht freigibt, trifft der Schreibzugriff auf die Nur-Lesen-Regel. Schlüssel, die Sie selbst konfiguriert haben, haben ihre eigene Richtlinie: Die Zugangsdaten der Maschine stehen standardmäßig auf Prompt before write, sodass ein Push, ein Upload in eine Registry oder eine AWS-Änderung für einen Dialog auf dem Mac anhält, der die genaue Operation zeigt.
Der Eintrag entsteht in derselben Minute
Die Polizei von Philadelphia nannte die zehnwöchige Lücke inakzeptabel. In
einer Bromure-Maschine ist der verweigerte POST eine rote Zeile in der
Security Timeline um 23:27 Uhr am 18. Juli, mit dem Namen der Maschine, dem
Host, der Methode und dem Pfad. Die Timeline ist immer aktiv, hält 90 Tage, und
ihr Tab Overview zeigt die jüngsten Blockierungen der letzten 24 Stunden
auf einem Bildschirm. Auf einem bei bromure.io registrierten Mac geht dasselbe
Ereignis an die Konsole der Organisation.
Der Trace liefert den Rest. Auf der Standardstufe, AI request details,
bewahrt der Proxy jede Anfrage der Maschine mit Host, Methode und Pfad auf,
dazu die vollständige Unterhaltung mit dem Modell, verschlüsselt auf dem Mac.
Der Trace Inspector zeigt den Turn, in dem das Modell beschloss abzuschicken,
neben der Anfrage, die es gestellt hat. bromure-cli trace hostnames listet
jeden Host, den die Maschine kontaktiert hat, mit Anfragezahlen, sodass eine
Website, mit der das Projekt nichts zu tun hat, in einer Liste von ein paar
Dutzend Namen auffällt. Ein Prüfer liest einen Bildschirm, nicht zehn Wochen
Transkripte.
Unbeaufsichtigte Läufe bekommen dieselben Regeln
Die Vorfälle im Bericht geschahen in automatisierten Läufen, die niemand beobachtete. Bromure Automations, geplante oder ausgelöste Agentenläufe, laufen auf einer Maschine unter deren Guardrails und Firewall. Ein Lauf um 23:27 Uhr trifft auf dieselben Regeln wie einer, den Sie mittags beobachten, und seine Blockierungen landen in derselben Timeline.
Anthropics Lösung, auf Ihrem Laptop
Anthropics Liste von Abhilfemaßnahmen umfasst das Ausmustern oder Neubauen von Evaluierungen, damit sie keine echten Websites mehr berühren, ein strengeres Fetch-Werkzeug, den Umzug interner Agenten auf „zentral verwaltete Infrastruktur“ mit eingeschränktem Internetzugang und eine automatisierte Überwachung, die im Test jeden Fall aus dem Bericht blockiert hat. Das ist ein Labor mit eigenem Infrastrukturteam, das seinen Harness neu baut.
Ein Entwickler, der Claude Code, Codex oder einen anderen Agenten auf einem Laptop laufen lässt, braucht dieselben drei Dinge: eine Grenze, die kein Satz ist, geprüft an einer Stelle, die der Agent nicht bearbeiten kann, und einen Eintrag, den noch am selben Tag jemand sieht. Eine Bromure-Maschine gibt Ihnen die Firewall-Regel, den Proxy auf dem Mac und die Security Timeline, ohne dass Sie etwas neu bauen müssen.
Liest überall, schreibt nur, wo freigegeben
Eine Firewall-Regel gibt dem Agenten jede Webseite per GET und HEAD und behält POST, PUT und DELETE den Hosts vor, die das Projekt nutzt. Ein Absenden an alles andere bekommt ein 403 vom Proxy auf dem Mac.
Anderes Werkzeug, gleiche Antwort
Die Prüfung läuft auf der Anfrage, nachdem sie die VM verlassen hat. Fetch, curl, Python, eine gekürzte URL oder ein Token aus einer Einstellungsdatei enden alle in derselben Anfrage und derselben Regel.
Konfigurierte Schlüssel fragen vor dem Schreiben
Neue Maschinen setzen jeden konfigurierten Dienst auf Prompt before write. Ein Push, ein Upload oder eine Cloud-Änderung hält für einen Dialog auf dem Mac an, der die genaue Operation zeigt.
Die Blockierung ist in derselben Minute erfasst
Jede Ablehnung ist eine Zeile in der Security Timeline mit Host, Methode und Pfad, 90 Tage aufbewahrt. Der Trace bewahrt den Modell-Turn, der sie verlangte.
Das nächste Formular
Anthropic erwartet, im Lauf seiner Durchsicht weitere Fälle zu finden. Seine Modelle füllten bei Tests Visumanträge und einen Polizeihinweis aus, mit Anweisungen, die von den Leuten geschrieben wurden, die sie trainiert haben. Ihr Agent wird auf eine kaputte Fixture, eine Staging-URL oder eine eigene Registrierungsseite stoßen, mit Anweisungen, die in Eile geschrieben wurden.
Schreiben Sie Ihre Grenze als Firewall-Regel auf dem Mac und behalten Sie die
Zeile in CLAUDE.md als Erinnerung. Zu den Vorfällen im Juli, mit denen
Anthropics Durchsicht begann, lesen Sie Die Sandbox war ein
Satz, und zur OpenAI-Version derselben
Geschichte Die Aufgabe war unlösbar, also ging der Agent
hinaus.