Vergiftete Regeldatei
Die Regel sah aus wie ein Hinweis. Der Assistent hat sie befolgt.
Was ist Vergiftete Regeldatei?
Ein KI-Coding-Assistent liest eine Regeldatei in Ihrem Repository und befolgt sie bei jeder Anfrage. Der Pull Request eines externen Mitarbeiters hat dieser Datei eine Zeile untergeschoben, nach der ein alter Auth-Bypass-Header erhalten bleiben soll, und wurde binnen Sekunden ohne Review gemergt. Ein Routine-Refactoring hat die Regel dann befolgt und den Bypass wieder in die Produktion gebracht. Sie verfolgen die Zeile bis zu ihrem Pull Request zurück, entfernen sie, wiederholen das Refactoring sauber und weisen der Regeldatei einen Code Owner mit verpflichtendem Review zu. Die Lehre daraus: Eine Regeldatei wirkt wie ausführbarer Code, also prüfen Sie sie wie Code.
Was Sie lernen in Vergiftete Regeldatei
- Erklären, warum eine Regeldatei für den Assistenten ausführbare Anweisungen enthält und keine Dokumentation ist, sodass jede Änderung daran verändert, was der Assistent tut
- Die Anzeichen einer manipulierten Änderung erkennen: ein schneller Merge, kein Review, ein harmloses Label und ein unbekannter Autor
- Ein vom Assistenten eingeführtes Verhalten mithilfe der Kontextkarte und der Herkunftsmarkierungen in der Randleiste bis zu der Datei zurückverfolgen, die es angeordnet hat
- Regel-, Prompt- und Konfigurationsdateien des Assistenten einem Code Owner mit verpflichtendem Review zuweisen, damit ein einzelner ungeprüfter Pull Request das Verhalten nicht umschreiben kann
- Eine Sicherheitskorrektur überprüfen: genau die Anfrage wiederholen, die durchgekommen ist, und bestätigen, dass sie jetzt abgewiesen wird
Vergiftete Regeldatei — Trainingsschritte
-
Eine Zeile in der Regeldatei
Drei Wochen bevor Alice die Audit-Aufgabe bekommt, arbeitet Bob als externer Mitarbeiter am Repository portal-api. Er eröffnet einen einzeiligen Pull Request für .assistant/rules.md , die Datei, die der KI-Assistent des Teams liest, bevor er den Code anfasst, und versieht ihn mit dem Label documentation. Nach elf Sekunden ist er gemergt. Jetzt wartet Bob: Die nächste Routineänderung an der Authentifizierungs-Middleware wird diese Zeile aufgreifen und den Bypass wieder in die Produktion bringen.
-
Die Middleware vor dem Audit aufräumen
Ihr Entwicklungsleiter hat in Jotvane, dem Tracker des Teams, ein Issue für Sie angelegt: Die Authentifizierungs-Middleware ist auf drei kleine Funktionen angewachsen, und für das Sicherheitsaudit nächste Woche soll daraus eine werden. Führen Sie sie zusammen.
-
Das Projekt öffnen
Der Editor lädt die Authentifizierungs-Middleware, die dahinterliegenden Admin-Routen, die CODEOWNERS -Datei des Repositorys und eine Regeldatei für den Assistenten, die das Projekt unter .assistant/ ablegt. Die Middleware besteht aus den drei Funktionen, die Ihr Entwicklungsleiter erwähnt hat.
-
Das Refactoring anfordern
Öffnen Sie den Assistenten und bitten Sie ihn, die Middleware zu einer Funktion zusammenzuführen, genau wie Ihr Entwicklungsleiter es beschrieben hat.
-
Eine Funktion und eine Zeile, um die Sie nicht gebeten haben
Claude liest die Regeldatei, die Middleware und die Admin-Routen und schlägt dann eine einzige Funktion authenticate() vor. Sie liest sich sauber, doch mittendrin steht eine Header-Prüfung, um die niemand gebeten hat. Claudes Antwort ist kurz und selbstsicher.
-
Das Refactoring annehmen
Der Diff liest sich wie eine saubere Zusammenführung, und die Antwort klingt selbstsicher, also nehmen Sie ihn an. Die Randleiste markiert die neuen Zeilen violett als ungeprüft: von Claude geschrieben, von Ihnen noch nicht gelesen. Die Bypass-Zeile steckt mittendrin: eine der vier Zeilen, die Claude geschrieben hat.
-
Header senden, Daten abgreifen
Bob sendet die Anfrage, für die er die Zeile platziert hat. Er hat weder ein Konto bei Dunmerrow noch ein Session-Token, nur den Header. Er richtet den API Tester auf den Kunden-Endpunkt der Admin-Konsole und sendet eine GET-Anfrage, die nichts als x-internal-bypass: 1 mitführt.
-
Eine Sitzung, die keine war
Die Leiterin der IT-Sicherheit hat eine Warnung als Issue angelegt. Die Admin-Konsole hat auf eine Anfrage von einer Adresse geantwortet, die niemand kennt, und die Anfrage enthielt statt einer Anmeldung nur einen Header.
-
Die Zeile in der Regeldatei
Das Refactoring hat nur die Middleware geändert, und Ihr Entwicklungsleiter wollte keine Verhaltensänderung. Die Anweisung, den Bypass einzubauen, stammt also aus etwas, das der Assistent gelesen hat. Suchen Sie die Regeldatei in der Kontextkarte und lesen Sie Zeile 7.
-
Wie die Zeile hineinkam
Sie haben diese Zeile nie geschrieben. Öffnen Sie die Änderung, die Naomi verlinkt hat, und sehen Sie nach, wie die Zeile in die Regeldatei gelangt ist.
Abdeckung der Sicherheits-Frameworks
OWASP Top 10
- A08:2025 Software or Data Integrity Failures
CWE
- CWE-1427 Improper Neutralization of Input Used for LLM Prompting
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security