Paket-Halluzination durch KI
Der Assistent hat ein Paket genannt. Niemand hat geprüft, ob es echt ist.
Was ist Paket-Halluzination durch KI?
Ein KI-Coding-Assistent kann ein Paket nennen, hinter dem keine echte Bibliothek steht, und jeder kann diesen Namen registrieren und ein Installationsskript daran hängen. Sie nehmen den selbstsicheren Diff des Assistenten an, installieren das genannte Paket und sehen zu, wie ein Postinstall-Skript läuft, bevor Sie eine Zeile davon gelesen haben. Danach lesen Sie die Paketseite in der Registry, die Sie übersprungen haben, widerrufen das dabei exponierte Token, leiten Installationen über eine Allowlist und wechseln zu einer geprüften Bibliothek. Am Ende können Sie eine Abhängigkeit prüfen, bevor Sie ihr vertrauen.
Was Sie lernen in Paket-Halluzination durch KI
- Erkennen, dass ein KI-Assistent einen Paketnamen erfinden kann und ein vorgeschlagener Name kein Beleg dafür ist, dass das Paket existiert oder sicher ist
- Eine Abhängigkeit vor der Installation in der Registry prüfen und dabei auf Alter, Versionen, Downloads, Quellcode und Herausgeber achten
- Erklären, warum ein Postinstall-Skript aus einem ungeprüften Paket schon bei der Installation gefährlich ist und nicht erst beim Import
- Ein kompromittiertes npm-Token durch Widerruf eindämmen und den nächsten erfundenen Namen mit einer Registry-Allowlist stoppen
- Eine erfundene Abhängigkeit durch eine etablierte Bibliothek mit derselben Schnittstelle ersetzen
Paket-Halluzination durch KI — Trainingsschritte
-
Den Namen besetzen
Bob besetzt die Paketnamen, die KI-Assistenten erfinden. Er sammelt plausibel klingende Bibliotheksnamen, die ein Assistent wahrscheinlich vorschlagen wird, registriert sie in der öffentlichen pkghaus-Registry, bevor jemand danach fragt, und wartet, bis jemand eines der Pakete installiert. Vor sechs Tagen hat er ratelimit-guard registriert und mit einem Postinstall-Skript versehen. Prüfen Sie, ob die Falle noch scharf ist.
-
Drosselung bis Freitag
An Ihrem Schreibtisch finden Sie ein Issue, das Ihre Teamleiterin in Jotvane, dem Issue-Tracker des Teams, für Sie angelegt hat: Die Login-Route braucht vor dem Release am Freitag Rate Limiting.
-
Das Projekt öffnen
Der Editor lädt die Login-Route, das Manifest und die .npmrc des Projekts. In der Route steht ein Platzhalter an der Stelle, an die das Rate Limiting gehört, und die .npmrc verweist npm auf die pkghaus-Registry.
-
Rate Limiting anfordern
Öffnen Sie den Assistenten und bitten Sie ihn: „Füge der Login-Route Rate Limiting hinzu“.
-
Ein Paket taucht auf
Claude liest die Route und das Manifest und schlägt dann einen Diff vor, der ein Paket namens ratelimit-guard importiert und auf die Route anwendet. Die Antwort klingt selbstsicher und liefert gleich den einzeiligen Installationsbefehl.
-
Den Diff annehmen
Wenn Sie den Diff annehmen, landen die Zeilen des Assistenten in der Datei. Die Randleiste markiert sie violett als ungeprüft: von Claude geschrieben, noch von keinem Menschen gelesen.
-
Das Paket installieren
Sie führen den Installationsbefehl des Assistenten aus. npm gibt die Zeilen des Postinstall-Skripts aus und meldet, dass das Paket hinzugefügt wurde. Auf der Kontextkarte leuchtet eine neue Datei unter node_modules auf, die die Installation gerade auf diesen Laptop gebracht hat.
-
Veröffentlichung unter Galtmeres Namen
Bei Alices Installation hat das Postinstall-Skript unbemerkt genau eine Sache erledigt: Es hat ihr npm-Publish-Token aus ~/.npmrc gelesen und an Bobs Sammelserver geschickt. Mit diesem Token lässt sich jedes Paket im Scope @galtmere veröffentlichen. Jetzt löst Bob es ein. Er veröffentlicht einen manipulierten Patch von Galtmeres eigenem Paket @galtmere/session-kit direkt in der Registry.
-
Eine Meldung zu Ihrem Token
Der Leiter der IT-Sicherheit hat ein Issue zu einer Meldung der Registry angelegt: Mit Ihrem npm-Token wurde etwas unter Galtmeres Namen veröffentlicht, und zwar von einer Adresse, die nicht Ihre ist.
-
Das Paket nachschlagen
Vor der Installation haben Sie die Seite des Pakets nie geöffnet. Öffnen Sie sie jetzt über den Link im Diff, den Claude vorgeschlagen hat.
Abdeckung der Sicherheits-Frameworks
OWASP Top 10
- A03:2025 Software Supply Chain Failures
CWE
- CWE-1357 Reliance on Insufficiently Trustworthy Component
- CWE-829 Inclusion of Functionality from Untrusted Control Sphere
MITRE ATT&CK
- T1195.001 Supply Chain Compromise: Compromise Software Dependencies and Development Tools
CIS Controls
- CIS 16 Application Software Security
- CIS 2 Inventory and Control of Software Assets
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
- ID.AM Asset Management