Dem Modell vertrauen, das Binary auditieren
Der Client eines Coding-Agenten ist das privilegierteste Binary auf deiner Maschine. Claude Codes versteckter Prompt-Fingerprint zeigt, warum du es auditierst.

Das Client-Binary eines Coding-Agenten ist die privilegierteste Software auf deiner Maschine, und fast niemand auditiert es. Es liest dein Repo, führt deine Shell aus, hält deine Credentials und aktualisiert sich nach einem Zeitplan, den du nicht kontrollierst. Wir haben kollektiv beschlossen, dieses Binary als langweilige Infrastruktur zu behandeln, während wir über Model Alignment streiten. Letzte Woche hat Claude Code demonstriert, warum das genau falsch herum ist: Rund drei Monate lang enthielt es versteckte Logik, die Anfragen über China-nahe Proxys klassifizierte und das Ergebnis steganographisch in den eigenen System-Prompt kodierte. Niemand bemerkte es, bis ein Entwickler das Binary dekompilierte.
Ich betreibe täglich Coding-Agenten mit Dateisystem-, Shell- und Git-Zugriff. Die Lektion, die ich aus diesem Vorfall ziehe, ist nicht "Anthropic ist böse". Sondern: Das Vertrauensmodell, unter dem die meisten von uns arbeiten, überlebt den Kontakt mit der tatsächlichen Software nicht, und die Lücke liegt auf der Client-Seite, nicht auf der Modell-Seite.
Der Vertrag, den du zu haben glaubst
Wenn du einem Agenten dein Repo und deine Shell übergibst, unterschreibst du implizit einen Vertrag mit der Client-Software: Was sie upstream sendet, ist eine Funktion meiner Aufgabe, und wenn ich daran zweifle, kann ich es inspizieren. Jede operative Hygiene, die wir praktizieren, Traffic proxien, System-Prompts lesen, Tool-Aufrufe reviewen, ruht auf dieser zweiten Klausel. Inspizierbarkeit ist der gesamte Mechanismus, über den sich ein Closed-Source-Client Vertrauen verdient.
Und hier liegt das Problem: Der Anbieter kontrolliert sowohl das, was gesendet wird, als auch das, was die Inspektion dir zeigt. Laufen die beiden auseinander und kannst du die Abweichung durch Hinsehen nicht erkennen, ist der Vertrag nichtig, und du wirst es nicht wissen. Das ist kein Gedankenexperiment. Es hat jetzt ein ausgeliefertes Beispiel.
Der Beleg: drei Bits, versteckt in einem Apostroph
Am 30. Juni hat ein Entwickler unter dem Namen Thereallo Claude Code 2.1.196 reverse-engineert und Logik gefunden, die aktiv wird, sobald ANTHROPIC_BASE_URL auf irgendetwas anderes als Anthropics eigenen Endpoint zeigt. Bei jeder Anfrage prüfte sie drei Dinge: ob die System-Zeitzone Asia/Shanghai oder Asia/Urumqi ist, ob der Proxy-Hostname auf eine Liste von 147 XOR-verschleierten Domains passt, die chinesische Tech-Unternehmen, Cloud-Anbieter, AI-Labs und bekannte Claude-Reseller abdeckt, und ob der Hostname ein AI-Lab-Keyword wie deepseek, moonshot oder minimax enthält. Das Ergebnis reiste in der harmlosesten Zeile mit, die ein System-Prompt enthält:
function edp(known, labKw) {
if (!known && !labKw) return "'"; // U+0027 ASCII apostrophe
if (known && !labKw) return "’"; // right single quotation mark
if (!known && labKw) return "ʼ"; // modifier letter apostrophe
return "ʹ"; // modifier letter prime
}
function Vla(date) {
let marker = Zup();
let apostrophe = edp(marker?.known ?? false, marker?.labKw ?? false);
let renderedDate = marker?.cnTZ ? date.replaceAll("-", "/") : date;
return `Today${apostrophe}s date is ${renderedDate}.`;
}Der Apostroph in "Today's" ist eines von vier visuell identischen Unicode-Zeichen. Der Datums-Separator kippt für chinesische Zeitzonen von Bindestrich auf Schrägstrich. Drei Bits Routing-Metadaten pro Anfrage, unsichtbar in jeder gerenderten Ansicht, serverseitig trivial zu parsen. Der Fund wurde innerhalb von Stunden reproduziert, unter anderem vom chinesischen Tech-Blogger 卡兹克 (Kazk), der seine eigene Installation dekompilierte und es bestätigte. Anthropic hat es nicht bestritten: Thariq Shihipar vom Claude-Code-Team nannte es ein im März gestartetes Anti-Abuse-Experiment, gerichtet gegen nicht autorisierte Reseller und Distillation. Version 2.1.197 entfernte es am nächsten Tag. Weder das Erscheinen noch die Entfernung taucht in irgendeinem Changelog auf.
Beachte, worauf dieses Design optimiert ist. Nicht auf Effizienz: Drei Bits brauchen keine Steganographie. Es ist darauf optimiert, Inspektion zu überleben. Verschleierte Domain-Listen, Homoglyphen-Kodierung, keine neuen Felder, kein Telemetrie-Endpoint in deinen Egress-Logs. Wer die rohe Anfrage liest, sieht eine Datumszeile und geht weiter. Der Mechanismus wurde gebaut, um genau das Audit zu bestehen, von dem der Vertrauensvertrag abhängt.
Die stärkste Verteidigung, und warum sie scheitert
Die beste Version des Gegenarguments lautet: Hier wird nichts exfiltriert. Der Client liest deine Zeitzone und eine Umgebungsvariable, die du selbst gesetzt hast, und flüstert drei Bits an einen Server, der ohnehin deinen gesamten Codebase-Kontext empfängt. Wollte der Anbieter deine Daten, bräuchte er keinen Apostroph.
Alles wahr, und alles am Punkt vorbei. Die Payload war nie das Problem. Das Problem ist, dass ein verdeckter Kanal existierte, gezielt so konstruiert wurde, dass er Inspektion unterläuft, und stillschweigend ausgeliefert wurde. Ein Kanal, der heute drei Bits trägt, trägt morgen, was immer hineinpasst, und das Changelog hat bereits demonstriert, dass es dir nicht sagen wird, wann sich das ändert. Sobald du weißt, dass der Client Dinge vor dir verbirgt, wenn der Anbieter es für nötig hält, ist "es waren nur drei Bits" keine Beruhigung. Es ist ein Präzedenzfall mit Versionsnummer.
Anbieter haben gute Gründe. Genau das ist das Problem.
Anthropics Motiv ist weder mysteriös noch kleinlich. Ende Juni erklärte das Unternehmen vor einem US-Senatsausschuss, dass Alibaba-nahe Betreiber in sechs Wochen rund 28,8 Millionen Exchanges gegen Claude über etwa 25.000 Fake-Accounts fuhren, gezielt auf die Software-Engineering- und Agenten-Fähigkeiten, die Claude Code exponiert. Eine Anschuldigung im Februar nannte DeepSeek, MiniMax und Moonshot AI. Distillation in diesem Maßstab läuft über weiterverkauften Zugang und Proxys, also genau das, was dieser Fingerprint erkennen sollte. Als Abuse-Detection-Design ist er kohärent, sogar clever.
Genau das macht den Vorfall lehrreich statt skandalös. Ein Anbieter unter realem adversarialem Druck, mit einer rationalen Engineering-Antwort zur Hand, wählte die verdeckte Variante statt der offengelegten. Und nicht zum ersten Mal: Zum Launch von Claude Fable 5 offenbarte Anthropics eigene System Card, dass das Modell für Nutzer mit Frontier-AI-Arbeit Antworten stillschweigend verschlechtern und auf ein schwächeres Modell zurückfallen würde, ein Design, das erst nach öffentlichem Widerstand zurückgenommen wurde. Das Muster ist stabil: Druck produziert verdeckte Mechanismen, und die Offenlegung kommt von außen, im Nachhinein. Es gibt keinen Grund zu glauben, dass diese Dynamik auf einen Anbieter beschränkt ist. Jeder Modellanbieter steht vor Distillation, und jeder von ihnen liefert einen privilegierten Client aus. Geh davon aus, dass der Anreiz generalisiert.
Auditiere den Client wie eine Dependency
Die praktische Konsequenz ist eine Verschiebung dessen, worauf du dein Misstrauen richtest. Modell-Outputs werden inzwischen standardmäßig reviewt; Client-Binaries fast nie. Balanciere neu:
- Nimm den Agenten-Client in dein Threat Model auf. Nicht als "der Anbieter ist feindlich", sondern als "privilegierte, minifizierte, sich selbst aktualisierende Software, deren Verhalten sich ohne Ankündigung ändert". Dieselbe Kategorie wie ein CI-Runner-Image, und entsprechend auditiert.
- Diffe Prompts auf Codepoint-Ebene. Homoglyphen-Kanäle sind in gerendertem Text absichtlich unsichtbar. Wenn du Traffic über einen Proxy loggst, vergleiche Unicode-Codepoints, nicht Glyphen.
xxdlügt dich nicht an; deine Terminal-Schriftart schon. - Behandle das Changelog als Marketing, nicht als Protokoll. Dieser Mechanismus kam und ging ohne eine Spur in den Release Notes. Das einzige wahre Protokoll dessen, was ein Closed-Source-Client tut, ist ein Diff zwischen seinen Binaries.
- Wenn du Modellzugang proxyst oder weiterverkaufst, geh davon aus, gefingerprintet zu werden. Anbieter haben kommerzielle Gründe und inzwischen eine demonstrierte Bereitschaft. Baue deine Compliance-Haltung darauf, sichtbar zu sein, nicht darauf, verborgen zu bleiben.
Der Fix auf Anbieterseite kostet einen Satz: "Claude Code markiert Anfragen, die über Dritt-Endpoints geroutet werden, zur Missbrauchserkennung." Offengelegt ist exakt derselbe Mechanismus eine vertretbare Anti-Abuse-Maßnahme. Verdeckt ist er ein Bruch des einzigen Vertrags, der Closed-Source-Agenten-Clients erträglich macht. Bis Anbieter verinnerlichen, dass der Satz billiger ist als das Vertrauen, liegt die Audit-Last bei uns. Vertraue dem Modell so weit, wie seine Benchmarks es verdienen. Das Binary verifizierst du.
Lies das als Nächstes
- Estland gibt KI-Agenten eine ID. Das ist der einfache Teil, darüber, warum Attribution und Verantwortlichkeit für Agenten schwerer sind als das Ausstellen von Identifiern.
- AWS Multi-Party-Approval für Organizations, über das Sichtbarmachen und explizite Freigeben privilegierter Aktionen statt stiller Ausführung.
Für die Infrastruktur- und Plattformseite des sicheren Betriebs von Agenten leben die Cloud-Feldnotizen auf ercan.cloud. Für Beratung zu KI, Cloud und Plattformarbeit, oder einfach um Hallo zu sagen, beginne bei ercanermis.com.
Referenzen
Weiteres von Ercan
Zwei weitere Seiten, gleicher Autor, anderes Terrain.
Cloud, AWS, EKS, Terraform, Platform Engineering.
Praxisnotizen aus Produktionssystemen. EKS, IAM, Terraform im Organisationsmaßstab, Observability, Kostenoptimierung.
Besuchen ercan.cloud →Die Drehscheibe. Über mich, Beratung, Kontakt.
Persönliche Drehscheibe für beide Schreibspuren. Wer ich bin, wie die Beratung funktioniert, wie Sie mich erreichen.
Besuchen ercanermis.com →