← Zurück zu allen Beiträgen
Veröffentlicht am · von Renaud Deraison

Das Agent-Log lag in ihrer Cloud

Warp hat offengelegt, dass Angreifer Agent-Traces und Telemetrie von rund 1 % seiner Nutzer gestohlen haben, indem sie bei einem Dienstleister in Warps Infrastruktur eingebrochen sind, und laut seinem CEO setzten die Eindringlinge dafür einen Schwarm von KI-Agenten ein. Ein Agent-Trace hält fest, was der Agent gelesen, ausgeführt und gesehen hat, und kann deshalb Code, Befehlsausgaben und Geheimnisse enthalten. In Bromure Agentic Coding wird der Trace des Agenten auf Ihrem Mac geschrieben und verschlüsselt, jedes Geheimnis, mit dem der Agent arbeitet, ist ein Platzhalter, und Sie entscheiden, welche Hosts überhaupt etwas erhalten.

Ein Agent-Trace ist eine Aufzeichnung von allem, was der Agent gelesen, ausgeführt und gesehen hat. Warps Traces lagen bei einem Dienstleister, und am 23. Oktober ist jemand bei diesem Dienstleister eingedrungen.

Am Freitag, dem 23. Oktober, bemerkte Warp, was sein Gründer und CEO Zach Lloyd „eine aktive und eng begrenzte Ausnutzung eines Dienstleisters in Warps Infrastruktur“ nannte. Warp hat sich vom Terminal zu dem entwickelt, was das Unternehmen eine agentische Entwicklungsumgebung nennt, und abgeflossen sind Agent-Traces und Nutzertelemetrie. Lloyd beziffert die Obergrenze auf rund 1 % der Warp-Nutzer. Die Website des Unternehmens nennt mindestens 800.000 Nutzer, 1 % sind also größenordnungsmäßig 8.000 Entwickler. BleepingComputer hat gestern über die Offenlegung berichtet.

Warp sagt, es habe die Operation innerhalb weniger Stunden entdeckt und eingedämmt. Das Unternehmen hat CrowdStrike hinzugezogen, die Strafverfolgungsbehörden informiert und die betroffenen Nutzer benachrichtigt. Laut Risky Business sagt Lloyd, die Eindringlinge hätten einen Schwarm von KI-Agenten eingesetzt, um in den Zulieferer einzubrechen. Warp hat weder den Dienstleister genannt noch die Schwachstelle beschrieben oder gesagt, ob die gestohlenen Traces Quellcode, Prompts oder Zugangsdaten enthielten. Der Rat an die Nutzer: Kontoaktivität beobachten und unaufgeforderte Nachrichten vorsichtiger als sonst behandeln.

Es ist in diesem Monat der zweite Einbruch bei einem Coding-Agenten, der auf den Servern eines Anbieters beginnt. Am 16. Oktober gelangten Angreifer an die Provider-API-Schlüssel, die etwa 1,4 % der OpenCode-Console-Nutzer gespeichert hatten, und einige Nutzer fanden Abbuchungen von bis zu 1.700 $, die sie nicht verursacht hatten. Wir haben darüber in Die Schlüssel lagen in ihrer Konsole berichtet.

Was ein Agent-Trace enthält

Ein Coding-Agent arbeitet in einer Schleife. Er liest eine Datei, führt einen Befehl aus, liest die Ausgabe und entscheidet, was als Nächstes kommt, und ein Trace zeichnet jeden Schritt auf. Dazu gehören der Prompt, den Sie getippt haben, die Dateien, die der Agent geöffnet hat, die Diffs, die er geschrieben hat, die Shell-Befehle, die er ausgeführt hat, und das, was diese Befehle ausgegeben haben.

Über diesen letzten Teil landen Geheimnisse darin. Ein Agent, der ein fehlschlagendes Deployment debuggt, führt env aus, öffnet .env, gibt eine Konfigurationsdatei aus und fügt einen Stack-Trace mit einem Connection-String ein. In Das Transkript behielt das Token hat Trellix gezeigt, wie Coding-Agenten Geheimnisse aus dem Schlüsselbund in Befehlszeilen, die Shell-History und ihre eigenen Transkripte kopieren, als Nebeneffekt ganz gewöhnlicher Arbeit. Kundendaten gelangen auf demselben Weg hinein: Der Agent öffnet eine CSV-Datei oder fragt eine Tabelle ab, um einen Fix zu prüfen, und die Zeilen landen im Trace.

Ein Trace enthält außerdem Ihre Codebasis in Bruchstücken, die Namen interner Hosts und eine Zeitleiste dessen, woran Sie gearbeitet haben. Für einen Angreifer sind ein paar Tausend davon eine Liste von Entwicklern, die sich phishen lassen, jeder mit einer glaubwürdigen Geschichte über das Projekt, an dem er in jener Woche saß. Dieses Risiko steckt hinter Warps Rat zu unaufgeforderten Nachrichten.

Wohin ein in der Cloud gespeicherter Agent-Trace wandert1 · Der Agent arbeitetauf dem Entwickler-Laptop:liest Dateien, führt Befehleaus, liest die Ausgabe2 · Trace zum AnbieterEntscheidungs-Logs undTelemetrie, gespeichert inder Cloud des Anbieters3 · Der Zuliefererein Dritter in Warps Infra-struktur; ungenannt, Lückenicht offengelegt4 · Einbruch am 23. Okt.durch KI-Agenten-Schwarm,laut Warps CEO; Traces von~1 % der Nutzer gestohlenWas ein Agent-Trace enthalten kannPrompts · vom Agenten geöffnete Quelldateien · Diffs · Shell-Befehle und Ausgaben · beim Debuggen ausgegebene UmgebungswerteKundenzeilen aus einer Abfrage oder CSV · interne Hostnamen · eine Zeitleiste der Arbeit jedes Entwicklers
Der Weg eines Agent-Traces, wenn das Tool ihn in der Cloud aufbewahrt. Der Agent arbeitet auf dem Laptop, der Trace geht an den Tool-Anbieter, und der Anbieter speichert oder verarbeitet ihn bei einem Dritten. Bei diesem Dritten sind Warps Angreifer eingedrungen.

Dieselbe Sitzung auf einer Bromure-Maschine

Bromure Agentic Coding führt Claude Code, Codex, Grok, Kimi und omp in Ubuntu-VMs auf Ihrem Mac aus. Jede Anfrage einer Maschine, einschließlich jedes Aufrufs des Agenten an sein Modell, läuft über einen Proxy auf dem Mac. In diesem Proxy zeichnet Bromure den Trace auf, tauscht Zugangsdaten aus und wendet Ihre Netzwerkregeln an. Nehmen Sie die Debugging-Sitzung von oben und lassen Sie sie dort laufen.

Der Trace wird auf Ihrem Mac geschrieben

Bromures Sitzungs-Trace beantwortet die Frage, die man nach einem Vorfall stellt: Was hat der Agent getan? Neue Maschinen zeichnen AI request details auf: einen Metadatensatz für jede Anfrage, dazu die vollständigen Request- und Response-Bodies für die Modellanbieter. Der Trace Inspector (⇧⌘I) zerlegt diese Bodies in eine Gesprächsansicht mit jedem Tool-Aufruf, jedem Shell-Befehl, den der Agent ausgeführt hat, und jeder Datei, die er gelesen oder geschrieben hat. bromure-cli trace liefert dieselben Daten im Terminal.

All das liegt in ~/Library/Application Support/BromureAC/traces/ auf Ihrem Mac. Erfasste Bodies werden mit AES-GCM unter einem Schlüssel aus Ihrem Schlüsselbund versiegelt, mit den Dateirechten 0600. Bei einer Einzelinstallation wird kein Trace-Datensatz, kein Body und keine Zusammenfassung irgendwohin hochgeladen, und der Proxy hat für einzelne Nutzer keinen Analytics-Endpunkt angebunden. Auch die Prompt-Injection-Klassifikatoren, die denselben Datenverkehr lesen, laufen auf dem Mac.

Kein Anbieter hält eine Kopie, und auch keiner seiner Zulieferer. Ein Angreifer, der bei einem Logging-Dienst einbricht, findet dort keine Ihrer Sitzungen.

Die Geheimnisse im Trace sind Platzhalter

Zurück zur Debugging-Sitzung. Der Agent führt env aus, öffnet .env und gibt die Deployment-Konfiguration aus. Auf einer Bromure-Maschine ist jedes Credential, das Sie eingerichtet haben, innerhalb der VM eine Fälschung. ANTHROPIC_API_KEY enthält einen Wert sk-ant-api03-brm-, GH_TOKEN und ~/.git-credentials enthalten einen ghp_-Platzhalter, ~/.aws/config verweist auf einen Helfer, der einen falschen Secret Key ausgibt, und die SSH-Schlüssel bleiben auf dem Host hinter einem Agent-Socket. Schlüssel, die Sie aus einer vorhandenen .env importieren, werden ebenfalls zu Platzhaltern. Der Proxy setzt den echten Wert nur für den Host auf die Leitung, zu dem dieses Credential gehört.

Was der Agent ausgibt und in sein Gespräch einfügt, ist also ein Platzhalter. Das gilt für jede Kopie: die Logs des Modellanbieters, die eigenen History-Dateien der Agent-CLI, einen Absturzbericht, einen Trace. Außerhalb der Maschine authentifizieren die Platzhalter nirgends. Wenn einer davon an einen Host geht, für den er nicht ausgestellt wurde, blockiert der Proxy die Anfrage mit HTTP 451, pausiert die VM und zeigt This environment may have been compromised mit dem Credential, dem Host, zu dem es gehört, und dem Host, an den es gesendet wurde.

Bromures eigener Trace geht noch einen Schritt weiter. Authorization, Cookie, api-key und ähnliche Header werden zu <redacted> umgeschrieben, bevor irgendetwas geschrieben wird, und jeder Credential-Austausch wird als Vorschau aus den ersten und letzten Zeichen gespeichert, etwa sk-a…f9q3. Das echte Geheimnis gelangt nie in einen Trace-Datensatz, ob verschlüsselt oder nicht.

Kundendaten bleiben auf dem Mac

Schalten Sie in den Einstellungen der Maschine PII Protection ein, und der Proxy findet personenbezogene Daten in jeder Anfrage, bevor sie zum Modellanbieter geht: Namen, E-Mail-Adressen, Telefonnummern, Karten- und Kontonummern, amtliche Ausweisnummern und Postanschriften. Er ersetzt jeden Wert durch einen realistischen Platzhalter, einen erfundenen Namen oder eine @example.com-Adresse, und setzt die echten Werte in der Antwort wieder ein, auch in den Argumenten von Tool-Aufrufen. Die Erkennung läuft auf dem Mac mit dem eingebauten Rampart-Modell.

Der Agent arbeitet mit den echten Zeilen, und der Anbieter sieht die Platzhalter. Derselbe Kunde bekommt in jeder Runde denselben Platzhalter, sodass Prompt-Caching weiter funktioniert. Die Security Timeline zählt jeden Austausch, 3 names · 1 phone number → api.anthropic.com, ohne einen einzigen Wert zu protokollieren.

Für Arbeit, die auf dem Mac bleiben soll, leiten Sie den Agenten zu einem lokalen Modell. MLX-Modelle laufen auf der GPU des Mac, und diese Runden gehen nirgendwo anders hin.

Sie entscheiden, wer etwas erhält

Agent-CLIs sprechen nicht nur mit ihrem Modell. Fehlerberichte, Feature-Flags und Nutzungstelemetrie gehen jeweils an einen eigenen Host. Stellen Sie im Bereich Guardrails der Maschine Unmatched traffic auf Deny und erlauben Sie die Hosts, die das Projekt braucht: den Modellanbieter, Ihre Forge, Ihre Paket-Registries. Jede andere Verbindung wird am Mac abgewiesen, und jede Abweisung ist eine Zeile in der Security Timeline. Am Ende haben Sie eine schriftliche Liste der Unternehmen, die Daten von dieser Maschine erhalten, und Sie haben sie selbst geschrieben.

Teams behalten den Überblick, ohne Transkripte zu sammeln

Organisationen müssen trotzdem sehen, was ihre Agenten tun. Ein Mac, der in einem bromure.io-Workspace registriert ist, streamt Sitzungsmetadaten an die Administratoren: verwendete Tools, berührte Dateien, ausgeführte Befehle, Token-Verbrauch. Rohe Prompts werden nie gesendet. Das vollständige Gespräch bleibt im verschlüsselten Trace auf dem Mac des Entwicklers. Ein roter Punkt in der Kopfzeile des Fensters zeigt an, wann eine Maschine streamt, und der Private mode hält die Aktivität eines Workspace lokal, etwa eines, der einen persönlichen API-Schlüssel nutzt.

Laptop-Agent, Trace in der CloudAgent führt env aus, öffnet .envechte API-Schlüssel und Tokens in der AusgabeTrace beim Anbieter gespeichertund von dessen Zulieferern verarbeitetEin Zulieferer gehacktgültige Schlüssel, Codefragmente, Kundenzeilenund ein Phishing-Vorwand für jeden EntwicklerBromure: Trace auf Ihrem MacAgent-VM (Ubuntu)env und .env zeigen Platzhalter; echte Keys nie in der VMHost-Proxy auf dem MacPII vor dem Anbieter ersetzt; fremde Hostsabgewiesen; Platzhalter woanders: 451, VM pausiertTrace in Application SupportAES-GCM, Schlüssel im Schlüsselbund; Auth-Headergeschwärzt, Vorschauen; kein Upload
Dieselbe Debugging-Sitzung mit einem Laptop-Agenten, dessen Traces in der Cloud liegen, und auf einer Bromure-Maschine. Auf dem Laptop trägt der Trace echte Geheimnisse und Kundenzeilen zum Anbieter und seinen Zulieferern. Bei Bromure ist der Trace auf dem Mac verschlüsselt, die Geheimnisse darin sind Platzhalter oder Vorschauen, personenbezogene Daten auf dem Weg zum Anbieter werden ersetzt, und nicht freigegebene Hosts werden abgewiesen.

Die Woche danach

Warps betroffene Nutzer müssen jetzt herausfinden, was ihre Traces enthielten, und alles rotieren, was darin gewesen sein könnte. Auf einem Mac mit Bromure dauert der erste Teil ein paar Minuten. Öffnen Sie den Trace Inspector, filtern Sie nach Workspace und schalten Sie Conversations only ein, um jeden Befehl zu sehen, den der Agent ausgeführt hat, und jede Datei, die er gelesen hat. Leaks only listet jede Anfrage, die ein echtes Token trug, das Bromure nicht ausgestellt hat. Daran sehen Sie, ob je ein rohes Geheimnis an den Platzhaltern vorbeigegangen ist.

Die Rotation passiert an einer Stelle. Die echten Schlüssel liegen in einem einzigen verschlüsselten Tresor auf dem Host. Fügen Sie den neuen Wert im Bereich Credentials der Maschine ein, und der nächste Start schreibt den passenden Platzhalter. Ein Schlüssel, der als 1Password-Referenz gespeichert ist, wird alle zwei Minuten neu aufgelöst, sodass eine Rotation in 1Password laufende Maschinen ohne Neustart erreicht.

Traces bleiben zu Hause

Der Sitzungs-Trace wird auf Ihrem Mac geschrieben und unter einem Schlüssel aus dem Schlüsselbund versiegelt. Einzelinstallationen laden nichts hoch.

Geheimnisse sind Platzhalter

Was der Agent ausgibt, ist eine Fälschung. Traces halten Auth-Header geschwärzt und Austausche als kurze Vorschauen.

Personendaten werden ersetzt

Namen, E-Mails, Kartennummern und Adressen erreichen den Modellanbieter als Platzhalter, erkannt auf dem Mac.

Sie wählen die Hosts

Mit Unmatched traffic auf Deny erhalten nur die Hosts etwas, die Sie erlaubt haben, und jede Abweisung wird protokolliert.

Die Aufzeichnung dort behalten, wo gearbeitet wurde

Agent-Traces lohnen sich. Mit ihnen finden Sie heraus, was ein Agent um 3 Uhr morgens getan hat, und beantworten die Fragen eines Auditors. Die Frage ist, wer sie aufbewahrt. Jedes Unternehmen, das das Entscheidungsprotokoll Ihres Agenten speichert, ist ein weiteres Unternehmen, dessen Zulieferer es verlieren können, und Angreifer lassen inzwischen eigene Agenten laufen, um den schwachen Zulieferer zu finden.

Bromure Agentic Coding behält die vollständige Aufzeichnung auf der Maschine, auf der der Agent gearbeitet hat, verschlüsselt unter Ihrem Schlüsselbund, und füllt sie mit Platzhaltern statt mit Geheimnissen. Wenn der nächste Anbieter einen Einbruch offenlegt, beantworten Sie „Waren wir betroffen?“ in Ihrem eigenen Trace Inspector.

Wie Agenten Geheimnisse über ihre eigenen Transkripte verbreiten, lesen Sie in Das Transkript behielt das Token. Zum Einbruch bei OpenCode Console Anfang dieses Monats lesen Sie Die Schlüssel lagen in ihrer Konsole.