NPM unter Angriff: der Wurm, der Anmeldeinformationen stiehlt und Ihre CI-Pipelines überprüft

Autor: Veröffentlicht 5 min de lectura 216 Lesen

Die Bilder in diesem Artikel wurden mit künstlicher Intelligenz erstellt. So veröffentlichen wir

Am 4. August 2026 wurde eine npm-Vergiftungskampagne entdeckt, die mit dem schädlichen Release keyv @ 6.0.0 begann und schnell durch mehrere Paketnamen und Organisationen erweitert wurde. Es war ein Wurm, um Anmeldeinformationen zu stehlen., die durch ein Pre-Installations-Skript aktiviert wurde und ein Paket binär in der Lage, Token und Repository-Tasten, Datensätze, Wolken und kontinuierliche Integration Läufer (CI) auszufiltern, sowie Mechanismen, um neue Versionen mit gestohlenen Identitäten zu veröffentlichen.

Die Telemetrie unabhängiger Forscher stimmte nicht auf eine einzige Endzahl zu: SafeDep verifizierte Hunderte von schädlichen Versionen in Dutzenden von Paketen, Aikido präsentierte eine noch größere Anzahl und andere Beobachtungen aufgezeichnet Teilpunkte. Die Gesamtzahl der gemeldeten Pakete oder Versionen zeigt Skala an, beträgt jedoch nicht die Anzahl der Opfersysteme; eine solche Bestimmung erfordert die Überprüfung der genauen Version auf jeder Maschine und vor allem, ob das Lebenszyklus-Skript ausgeführt wurde.

NPM unter Angriff: der Wurm, der Anmeldeinformationen stiehlt und Ihre CI-Pipelines überprüft
Bild generiert mit IA.

Aus technischer Sicht verwendet die Kampagne eine vorinstallierte Datei, die setup.mjs aufgerufen hat und ein kompiliertes Paket bereitgestellt hat, das Laufzeiten wie Bun suchte, heruntergeladene Komponenten und dann ausgeführten Code, der den Läuferspeicher untersuchte, Geheimnisse in Dateien und Umgebungsvariablen gelesen und einen "Beobachter" platzierte, dessen Funktion Tokens Retorations beobachtete. Dieser Uhrmacher stellt ein wichtiges operationelles Risiko dar: Erst das Drehen der Anmeldeinformationen kann einen lokalen Controller des Angreifers feuern, so die Antwort Teams sollten die Malware neutralisieren, bevor Sie die Rotation beginnen.

Die Angriffsfläche war größer, weil das kompromittierte Repository auch Haken für Redakteure und Entwicklungsumgebungen enthielt: Claude Code und Visual Studio Code Konfigurationsdateien, die, wenn vertraut, setup.mjs ausführen können, wenn das Projekt geöffnet wird. In Entwicklungsumgebungen und in CI-Läufern gibt es zwei unabhängige Vektoren - der npm-Installator und die Workspace-Konfiguration - und beide müssen als potenziell gefährlich angesehen werden.

Die Kampagne ergab, dass die Garantien von Provenienz und Unterschrift des Baus keine Panacea sind: mehrere der vergifteten Freisetzungen trugen gültige Signaturen und SLSA-Aufstellen, weil der Publikationsfluss durch die legitime Pipeline des Projekts geleitet. Eine Attestation, die den Bauprozess überprüft, garantiert nicht, dass der Quellcode, der in diesen Prozess eingegeben wurde, sicher ist, und daher sollte die Überprüfung der Lieferkette Kontrollen auf dem Quell-Repository enthalten und wer die Veröffentlichungsdaten kontrolliert.

Um die Exposition in Ihrer Umgebung zu erkennen, ist es wichtig, die lokalen Quellen zu verwenden: inspect package-lock.json, npm-shrinkwrap.json, Garn. sperren und pnpm-lock. yaml, um die genauen Versionen zu finden gelöst; überprüfen, ob das Manifest ein vorinstallieren Skript oder verdächtige Dateien (z.B. setup.mjs oder ungewöhnliche Namen in der Publikation enthalten); und analysieren CI- und Installationsprotokolle, um zu sehen, ob Life-Cycle-Skripte ausgeführt wurden. Verlassen Sie sich nicht auf öffentliche Listen von "letzten" Paketen oder auf Leerzeichenblöcke; die Überprüfung sollte mit genauem Namen und Version sein.

Die unmittelbare technische Antwort sollte Malware Isolation und Entfernung mit einem koordinierten Anmelde-Rotationsplan kombinieren. Zuerst quarantine verdächtige Maschinen und Läufer und suchen und entfernen Sie den Watcher oder jedes persistente Gerät, das auf den Widerruf reagieren kann. Dann, rote Schlüssel, Token und Zertifikate verpflichtet. Wenn es ohne erste Neutralisation des Watchers gebrochen wird, besteht die Gefahr, den Code des Angreifers zu aktivieren, der die Rotation ausnutzt. Schließlich rekonstruieren Artefakte und Container aus vertrauenswürdigen Quellen und aus verifizierten Codebäumen.

In der CI / CD-Infrastruktur und Entwicklungspolitik gibt es konkrete Maßnahmen, um die zukünftige Exposition zu reduzieren: Aktualisierung von npm-Kunden, die Standard-Lebenszyklus-Skripte blockieren, wenn sie mit ihrem Fluss kompatibel sind, deaktivieren Sie die automatische Ausführung von Workspace-Aufgaben in VS Code und Claude Code, übernehmen Ephemeral Tokens und OIDC für Bereitstellungen, beschränken Publikations in Aufzeichnungen und erfordern Multifactor-Authentifizierung und menschliche Bewertungen für kritische. Effektive Sicherheit kombiniert Werkzeuge (z.B. Verriegelung von Lifecycle-Skripten), Richtlinien (Mindest-Privileg-Prinzip) und Prozesse (Übersicht der Verpflichtungen und Kontrolle des Zugangs zu Anmeldeinformationen).

Packaging Maintenance Teams müssen ihren Arbeitsbaum und die Geschichte der Verpflichtungen auf der Suche nach Änderungen, die verdächtige Dateien auf mehrere Unterpakete verteilt haben. Achten Sie auf Verpflichtungen, die von Bots unterzeichnet oder überprüft werden, dass, auch wenn sie eine Verifikationsabzeichen zeigen, nicht identifizieren, wer die Anmeldedaten kontrolliert, die die Aktion unterzeichnet haben. Unterschriftsverifikation ist erforderlich, aber nicht ausreichend; kombinieren Sie dieses Signal mit Kontrollen, die Zugriff auf die Pipeline hatten und mit Änderungen der Integrität des Quellcodes.

NPM unter Angriff: der Wurm, der Anmeldeinformationen stiehlt und Ihre CI-Pipelines überprüft
Bild generiert mit IA.

Für Verbraucher und Organisationen ist die sofortige praktische Empfehlung, konkrete Instanzen zu identifizieren, die betroffene Versionen installieren und festlegen könnten, ob Installationsskripte ausgeführt wurden. Wenn Sie die Ausführung bestätigen, isolieren Sie die Maschine und den Läufer, bewahren Sie Beweise und gehen Sie zur Reinigung und Rotation von Geheimnissen gemäß der beschriebenen Reihenfolge. Wenn Sie nicht sicher sind, dass der Zustand der Ausführung, behandeln Sie die Maschinen, wie möglicherweise ausgesetzt, um etwas anderes mit Bildern zu beweisen oder wieder aus sauberen Quellen.

Um die Unterschriftsprüfungspraktiken und den empfohlenen SLSA-Rahmen für die Aufmerksamkeit der Lieferkette zu vertiefen, siehe GitHubs offizielle Dokumentation zur Unterschriftsprüfung Über die Unterschriftsprüfung und die Prinzipien des SLSA-Projekts in Slsa.dev. Für Kampagnenanalysen und Repository-Verpflichtungen sammeln Ressourcen wie der Semgrep-Blog nützliche Beispiele und Regeln, die in Repository-Scans angewendet werden können. Semgrep Blog.

Dieser Vorfall zeigt eine wichtige Lektion: die Lieferkettenabwehre müssen proaktiv sein, auf Genauigkeit (aufgelöste Versionen und Lockfiles) und auf die Hygiene der Anmeldeinformationen ausgerichtet sein.. Organisationen sollten ihre Publishing-Prozesse überprüfen, Pipelines verschärfen, den Strahlradius von Token begrenzen und Antwort-Spielbücher vorbereiten, die die ordnungsgemäße Rotation von Secrets Kampagne nach der Beseitigung von jedem Überwachungsmechanismus von dem Angreifer installiert.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.