Claude Code rückentwickelt: 6 Lektionen für Ihren KI-Agenten
Die Forscher haben das CLI-Bundle von Claude Code deminimiert und seine Systemeingabeaufforderung, Tool-Schemata und Agentenschleife veröffentlicht. Sechs Lektionen für jeden, der einen KI-Agenten an echte Benutzer versendet.
Claude Code wird als npm-Paket geliefert. Jeder kann laufen npm install -g @anthropic-ai/claude-code,
Öffnen Sie das Paket cli.mjs, und lesen Sie die mitgelieferte Orchestrierungsschicht. Forscher haben es getan
genau das. Sie haben es deminimiert, die vollständige Systemeingabeaufforderung und die über 15 integrierten Toolschemata herausgezogen.
Die Agentenschleife und der Subagenten-Dispatcher veröffentlichten das Los dann in öffentlichen Repos.
Die Modellgewichte blieben hinter der API von Anthropic zurück. Das Gerüst nicht. Und dieses Gerüst ist Der Teil, von dem die meisten Teams glauben, dass er ihn privat halten kann, wenn er eine CLI, eine VS Code-Erweiterung oder einen Desktop ausliefert App mit einem eingebetteten Agenten. Die Extraktion ist eine kostenlose Lektion: ein sehr sorgfältiges Team bei Anthropic bereits dafür geplant, und ihr Design hält stand. Hier sind sechs Dinge, die Sie vor Ihrem eigenen Agenten kopieren können trifft auf npm oder eine GitHub-Veröffentlichung.
1. Clientseitiger Code ist ein Veröffentlichungsschritt, kein Geheimnis
Jedes Byte in Ihrem versendeten Paket ist öffentlich. Durch die Verschleierung verlangsamt sich die Lesegeschwindigkeit um Minuten oder Stunden. es hält sie nicht auf. Das Bundle von Claude Code läuft über einen Standard-JavaScript-Minifier und den ersten Innerhalb weniger Stunden tauchte eine öffentliche entschlüsselte Kopie auf. Ihr Bundle folgt demselben Pfad.
Führen Sie den gleichen Pass noch heute für Ihr eigenes Paket aus. Wenn Sie eine CLI, eine Browsererweiterung oder ein Electron ausliefern App oder ein clientseitiges SDK, tun Sie dies vor Ihrer nächsten Veröffentlichung:
Alles, was zurückkommt, kommt in den Jetzt-Rotieren-Stapel. Ein API-Schlüssel in einem Client-Bundle ist ein Schlüssel
jede laufende Festplatte npm install. Ein fest codierter Backend-Hostname weist Angreifer auf das hin
Ziele, die Sie nicht bewerben wollten. Lesen Sie die Datei so, wie ein Fremder sie liest.
2. Ihre Systemaufforderung wird durchsickern, also planen Sie sie offenzulegen
Die Eingabeaufforderung des Claude-Code-Systems besteht aus ein paar tausend Hinweisen sorgfältiger Anleitung: Regeln für die Verwendung von Werkzeugen, Sicherheitsbeschränkungen, Stilrichtlinien, Ablehnungsbedingungen. Nichts davon hängt von der Geheimhaltung ab. Lass das fallen Das Ganze auf einem Pastebin und die CLI funktioniert auch morgen immer noch genauso.
Das ist der Test. Wenn die Veröffentlichung Ihrer Systemaufforderung Ihr Sicherheitsmodell zerstört, liegt eine Lücke vor. Verschieben Sie das tragende Bit von der Eingabeaufforderung auf eine serverseitige Prüfung. Zutrittskontrolle gehört dazu Ihre Authentifizierungsschicht. Ratenlimits gehören in Ihr Gateway. Werkzeugberechtigungen gehören in den Werkzeug-Dispatcher. Die Eingabeaufforderung beschreibt das Verhalten; es erzwingt es nicht.
Eine gute Aufforderung ist dennoch als Geschäftsgeheimnis schützenswert. Wochen der Iteration werden auf wenige reduziert Hundert Zeilen, und ein schneller Follower, der Ihre Aufforderung kopiert, spart diese Zeit. Behandeln Sie es wie ein Rezept IP, nicht wie ein privater Schlüssel. Legal und NDA, keine Krypto.
3. Richten Sie Authentifizierung, Ratenlimits und Abrechnung auf Ihrem Server ein
Die am weitesten verbreitete Agentenarchitektur sieht so aus und ist falsch:
Dieser Schlüssel wird mit jeder Installation geliefert. Ein entschlossener Benutzer holt es an einem Nachmittag aus dem Paket und
bringt Ihr Kontingent auf Null, bevor Sie es bemerken. Claude Code weicht dem durch Lektüre aus ANTHROPIC_API_KEY
aus der Umgebung des Benutzers zur Laufzeit; Jeder Benutzer bringt seine eigene Abrechnungsbeziehung mit Anthropic mit.
Die meisten verbraucherorientierten Agenten können diesem Muster nicht folgen, da die Benutzer keine eigenen Schlüssel haben.
was bedeutet, dass ein Server-Proxy die einzig sichere Form ist:
Überprüfen Sie auf Ihrem Server ein kurzlebiges pro Benutzer-Token, begrenzen Sie die Rate nach Benutzer-ID, protokollieren Sie die Nutzung und erstellen Sie dann der Upstream-Aufruf:
Geben Sie das benutzerspezifische JWT aus Ihrem Anmeldefluss mit einem Ablauf von 15 Minuten, einem bestimmten Bereich und einer Sitzung aus verbindlich. Ein Aufruf von botoi übernimmt die Signierung, sodass Sie den „falschen Algorithmus“ überspringen können JWT-Bibliotheken aus dem Jahr 2015 sind immer noch berühmt für:
4. Schlüssel rotieren und protokollieren, als wären sie bereits durchgesickert
Claude Code protokolliert seine eigene Tool-Call-Telemetrie lokal, sodass Benutzer überprüfen können, was der Agent auf ihrem Gerät getan hat Maschine. Ihr Server benötigt dieselbe Eigenschaft, jedoch serverseitig. Jeder Modellaufruf erhält eine Zeile: Benutzer-ID, Modell, Eingabetoken, Ausgabetoken, Werkzeugaufrufe, Kosten. Bewahren Sie es mindestens 30 Tage lang auf. Ein Angreifer Wer den Token eines Benutzers stiehlt, hat ein Ausgabeverhalten, das sich vom normalen Gebrauch unterscheidet, und das log ist, wie Sie es sehen.
Zählen Sie, bevor Sie sich anmelden. Die Verwendung von Token ist das schnellste Signal für Missbrauch und das schnellste Signal für Aufforderung aufblähen:
Legen Sie Warnungen für Token pro Benutzer und Stunde auf das Dreifache des p99-Basiswerts fest. Wenn Sie einen Pager erhalten, widerrufen Sie ihn das Token des Benutzers, nicht Ihr Hauptschlüssel. Die Hauptschlüssel wechseln vierteljährlich; Pro-Benutzer-Token rotieren, wenn die Anomalieerkennung ausgelöst wird.
5. Scrubben Sie PII, bevor die Eingabeaufforderung das Modell erreicht
Ein Benutzer fügt ein Support-Ticket mit einer Kreditkartennummer in Ihren Agenten ein. Das Model sieht es, das Die Protokollzeile erfasst es, die Feinabstimmungspipeline zieht es ein und jetzt befindet es sich an drei Stellen, die Sie erstellt haben nicht planen. Claude Code umgeht dies, indem es auf dem eigenen Computer des Benutzers gegen den des Benutzers läuft eigene Dateien; Ein gehosteter Agent hat diesen Luxus nicht.
Führen Sie bei jeder eingehenden Eingabeaufforderung einen Erkennungsdurchlauf durch und redigieren Sie ihn vor dem Anruf:
Senden Sie die redacted string zum Modell, behalte die findings in Erinnerung, und
Fügen Sie die Originale nur dann erneut ein, wenn die Modellantwort nach einem bestimmten Token zurückfragt (z. B. a
Support-Ticket-Zusammenfassung, in der die Zahlungsmethode angegeben werden muss). Ihre Protokolle, Ihr Trainingskorpus usw
Downstream-Analysepipelines sehen alle die redigierte Version; Nur der In-Memory-Anforderungspfad sieht
rohe PII.
6. Schützen Sie sich vor sofortiger Injektion, indem Sie Ihre eigene durchgesickerte Eingabeaufforderung verwenden
Der Vorteil einer durchgesickerten Systemeingabeaufforderung besteht darin, dass Sie sie für Ihre eigene Injektionssuite ausführen können. Ein Angreifer benötigt nur einen Bypass; Sie brauchen Deckung. Stellen Sie einen Staging-Agenten bereit und fügen Sie Ihre eigene Eingabeaufforderung ein in die Zwischenablage eines Prüfers und führen Sie einen Sondensatz aus, der die gängigsten Injektionsformen testet: Befehlsüberschreibung, Persona-Wechsel, Trennzeichenunterbrechung, Fake-User-Reset.
Alles, was dazu führt, dass der Agent seine Systemaufforderung ausgibt, Umgebungsvariablen offenlegt oder a aufruft Das Tool, das der Benutzerbereich nicht zulässt, ist ein Fehler. Beheben Sie das Problem mit einer serverseitigen Überprüfung, nicht mit einer sofortigen Optimierung. „Ihre Systemaufforderung nicht preisgeben“ in der Aufforderung ist ein Vorschlag; ein Antwortfilter, der das blockiert Die ersten 200 Zeichen der Eingabeaufforderung aus der Ausgabe sind ein Steuerelement.
Checkliste zur Tiefenverteidigung
| Schicht | Kontrolle | Warum es ein Bündelleck übersteht |
|---|---|---|
| Kundenpaket | Keine Geheimnisse, keine Master-URLs | Vom ersten Tag an lesbar; Behandeln Sie es als Dokumentation |
| Transport | JWT pro Benutzer, 15 Minuten Ablauf | Token-Diebstahl hat einen Explosionsradius im Minutenbereich |
| Tor | Ratenbegrenzung nach Benutzer-ID und Token-Anzahl | Die Obergrenze für Missbrauch liegt bei Ihren konfigurierten Ausgaben, nicht bei Ihrem Geldbeutel |
| Server | Pünktliche Montage und Werkzeugversand | Der Angreifer kann keine Werkzeuge hinzufügen, die er nicht erworben hat |
| Modelleingabe | Erkennung und Schwärzung personenbezogener Daten | Sensible Daten gelangen niemals in Protokolle oder Schulungen |
| Modellausgabe | Antwortfilter für Prompt-Echos und Tool-Schemata | Injektionsversuche schlagen beim letzten Hop fehl |
| Beobachtbarkeit | Token-Nutzung pro Benutzer mit Anomaliewarnungen | Gestohlene Token sehen anders aus als echte Benutzer |
Wichtige Erkenntnisse
- Versenden Sie, als ob Ihr Paket bereits öffentlich wäre. Suchen Sie in jeder Veröffentlichung nach Schlüsseln und interne Hosts vor der Veröffentlichung; Alles, was Sie finden, rotiert, bevor das Paket live geht.
- Ihre Systemaufforderung ist kein Schlüssel. Ziehen Sie jede sicherheitsrelevante Entscheidung aus dem Weg der Eingabeaufforderung und in eine serverseitige Prüfung.
- Proxy des Modells über Ihren eigenen Server. Benutzer erhalten ein kurzlebiges JWT, Ihr Der Server hält den Master-API-Schlüssel und vor beiden liegen Ratenlimits.
- PII auf dem Weg dorthin schwärzen. Das Modell sieht eine geschwärzte Zeichenfolge; Protokolle und Schulungen Rohrleitungen bleiben sauber.
- Führen Sie Injektionssonden gegen Ihre eigene durchgesickerte Eingabeaufforderung aus. Alles, was funktioniert, wird ein Ticket für einen serverseitigen Fix, keine sofortige Optimierung.
Botoi stellt Ihnen die serverseitigen Teile als HTTP-Aufrufe zur Verfügung: PII-Erkennung unter /v1/pii/detect,
Token-Zählung bei /v1/token/count, JWT-Signatur bei /v1/jwt/generate, plus
Hashing-, HMAC- und Rate-Limit-Bausteine für über 150 Endpunkte. Ein API-Schlüssel, 5 Anforderungen/Minute kostenlos,
Keine Installations-Hooks. Durchsuchen Sie die
interaktive Dokumente
oder verkabeln
MCP-Server hinein
Claude Code oder Cursor, um dieselben Endpunkte aus Ihrem Editor heraus aufzurufen.
FAQ
- Was wurde eigentlich aus Claude Code extrahiert?
- Die Forscher luden das npm-verteilte @anthropic-ai/claude-code-Paket herunter, ließen es durch einen Deobfuscator laufen und veröffentlichten die vollständige Systemeingabeaufforderung, die über 15 integrierten Tool-Schemata (Lesen, Bearbeiten, Bash, Grep usw.), die Agentenschleife und die Subagenten-Versandlogik. Die Modellgewichte blieben privat; Was geliefert wurde, war eine JavaScript-Orchestrierungsebene rund um Anthropic-API-Aufrufe. Jeder, der die CLI installiert, hat dieselben Bits auf seiner Festplatte.
- Wurden API-Schlüssel oder Kundendaten von Anthropic offengelegt?
- Nein. Die CLI liest den API-Schlüssel zur Laufzeit aus der eigenen Umgebung des Benutzers und bündelt niemals Anthropic-Anmeldeinformationen. Kundengespräche bleiben zwischen der CLI und api.anthropic.com. Das Leck enthüllte die schnelle Technik und das Tool-Design, nicht jedoch Authentifizierungsmaterial oder Benutzerdaten.
- Wenn Systemaufforderungen keine Geheimnisse sind, warum schützen Unternehmen sie dann?
- Zwei Gründe. Erstens: Wettbewerbszeit bis zum Kopieren: Eine gute Eingabeaufforderung bedeutet wochenlange Iteration, und die Verweigerung der Veröffentlichung verlangsamt einen schnellen Follower im selben Zeitfenster. Zweitens die Einschleusungsfläche für Eingabeaufforderungen: Je mehr Angreifer über die Leitplanken und Escape-Sequenzen Ihrer Systemeingabeaufforderung Bescheid wissen, desto einfacher ist es, Umgehungen zu erstellen. Beide sind real, aber keines davon ist ein kryptografisches Geheimnis. Behandeln Sie die Eingabeaufforderung als Geschäftsgeheimnis mit kurzer Halbwertszeit, nicht als Schlüssel.
- Hilft Verschleierung oder Minimierung überhaupt?
- Es verschafft Zeit, nicht Schutz. Ein motivierter Reverse-Engineer entschlüsselt ein JavaScript-Bundle in weniger als einer Stunde mit Standardtools. Die Verschleierung verlangsamt gelegentliche Inspektionen, die für die Erkennung von Manipulationen und Lizenzprüfungen wichtig sind. Doch jedes Bedrohungsmodell, das davon ausgeht, dass das Paket undurchsichtig bleibt, ist von Anfang an kaputt. Erstellen Sie so, als ob die Quelle vom ersten Tag an öffentlich wäre.
- Wie teste ich meinen eigenen KI-Agenten auf dieselben Schwächen?
- Führen Sie diese Woche drei Überprüfungen durch. Erstens: Laden Sie Ihr geliefertes Bundle herunter und suchen Sie nach sk-, pk_, apiKey, BEGIN PRIVATE KEY und Ihrer Backend-URL. Repariere alles, was du findest. Zweitens: Bitten Sie Ihren Agenten, seine Systemaufforderung wörtlich auszudrucken und zu bestätigen, dass nichts aus Sicherheitsgründen von der Geheimhaltung abhängt. Drittens: Protokollieren Sie jeden Tool-Aufruf serverseitig mit Benutzer-ID, Zeitstempel und Argument-Hash, damit Missbrauchsmuster auftauchen, bevor die Rechnung erscheint.
Starte mit botoi zu entwickeln
150+ API-Endpunkte für Abfragen, Textverarbeitung, Bildgenerierung und Entwickler-Tools. Kostenloser Tarif, keine Kreditkarte nötig.