Shai-Hulud kehrt zurück – npm-Wurm kompromittiert über 400 Pakete

Shai-Hulud kehrt zurück – npm-Wurm kompromittiert über 400 Pakete

Shai-Hulud kehrt zurück – npm-Wurm kompromittiert über 400 Pakete.

Das Security Research Team von JFrog hat eine neue Variante der Schadsoftware Shai-Hulud identifiziert, die sich über die npm-Registry verbreitet und bereits mehr als 400 Pakete in über 1.700 Versionen betrifft.

Zusammenfassung (TL; DR):

  • Ein npm-Wurm namens Shai-Hulud hat über die Caching-Bibliotheken keyv und cacheable mehr als 400 Pakete infiziert.
  • Die Schadsoftware stiehlt sensible Zugangsdaten aus Cloud-, CI- und lokalen Systemen. Sie verbreitet sich über npm- und GitHub-Token eigenständig weiter.
  • Bereits das Öffnen eines infizierten Repositorys in Entwicklungsumgebungen löst den Schadcode aus. Daher empfiehlt JFrog den kompletten Neuaufbau betroffener Systeme.

Ausgangspunkt: Caching-Bibliotheken keyv und cacheable

Ausgangspunkt waren die weit verbreiteten Caching-Bibliotheken keyv und cacheable. Da keyv als transitive Abhängigkeit in zahlreichen gängigen Werkzeugen steckt und sich der Wurm eigenständig weiterverbreitet, wächst die Zahl der betroffenen Pakete fortlaufend. Wer eine kompromittierte Version installiert hat, sollte die eigene Umgebung als kompromittiert betrachten. Die Untersuchung dauert an. JFrog aktualisiert die Analyse mit jedem neu bestätigten Paket.

Shai-Hulud: Was ist passiert

Die aktuelle Welle begann mit der Kompromittierung der Pakete keyv und cacheable sowie der zugehörigen @cacheable-Paketfamilie. Anders als bei einem klassischen, auf feste Pakete beschränkten Angriff ist die Verbreitung nicht an eine feste Liste gebunden. Ein einziger gestohlener npm-Token mit breiter Schreibberechtigung genügt, um jedes Paket des betroffenen Herausgebers zur nächsten Angriffswelle zu machen.

Der Name Shai-Hulud verweist auf die riesigen Sandwürmer aus Frank Herberts Romanzyklus Dune. Die Variante identifiziert sich selbst über die von ihr angelegten GitHub-Repositorys, deren Beschreibung „Shai-Hulud: Here We Go Again” lautet.

Technischer Hintergrund

Angriffe dieser Art funktionieren, weil moderne Software aus vielen quelloffenen Bausteinen zusammengesetzt ist. Eine einzige manipulierte Bibliothek kann sich über verschachtelte Abhängigkeiten in eine Vielzahl von Projekten ausbreiten, ohne dass die betroffenen Teams dies bemerken. Genau hier wird die Bedeutung von keyv deutlich, das als transitive Abhängigkeit in vielen gängigen Werkzeugen steckt.

Die von den Forschern analysierte Variante verfolgt vier miteinander verbundene Ziele: Sie sammelt Zugangsdaten aus lokalen Umgebungen, CI-Systemen, Cloud-Diensten, Kubernetes und Vault. Die verschlüsselten Ergebnisse exfiltriert sie über einen dynamischen HTTPS-Endpunkt oder eigens angelegte öffentliche GitHub-Repositories.

Mit gestohlenen npm-Zugangsdaten veröffentlicht sie infizierte Patch-Versionen jedes beschreibbaren Pakets. Schließlich nutzt sie GitHub-Zugangsdaten sowie GitHub Actions, um weitere Repositorys zu infizieren und zusätzliche Zugangsdaten abzugreifen.

Besonders kritisch ist die Verankerung in Entwicklungsumgebungen. Der Wurm hinterlegt Dateien in erreichbaren GitHub-Branches, sodass bereits das Öffnen eines infizierten Repositorys in VS Code oder der Start einer Claude-Sitzung darin genügt, um den Schadcode auszuführen.

  • Was bisher bestätigt ist
  • Betroffener Ausgangspunkt. Die weit verbreiteten Caching-Bibliotheken keyv und cacheable sowie die @cacheable-Paketfamilie wurden manipuliert.
  • Wachsendes Ausmaß. Betroffen sind bereits über 400 Pakete in mehr als 1.700 Versionen, mit fortlaufend steigender Tendenz.
  • Diebstahl und Weitergabe von Zugangsdaten. Die Malware sammelt Geheimnisse aus lokalen Systemen, CI, Cloud, Kubernetes und Vault und nutzt gestohlene Token zur automatisierten Weiterverbreitung.
  • Risiko in Entwicklungsumgebungen. Das Öffnen eines infizierten Repositorys in VS Code oder der Start einer Claude-Sitzung reicht zur Ausführung des Schadcodes.
  • Schutz bei npm 12 und neuer. Ab npm 12 werden preinstall-Lifecycle-Hooks standardmäßig nicht mehr ausgeführt. In diesen Umgebungen wird das System durch diesen Verbreitungsweg nicht infiziert.
  • Laufende Untersuchung. Die Liste der betroffenen Pakete und Versionen wird fortlaufend aktualisiert.
  • Einordnung

Angriff auf die Lieferketten

Shai-Hulud steht exemplarisch für eine neue Generation von Angriffen auf die Software-Lieferkette, die nicht mehr auf einzelne Ziele beschränkt bleiben, sondern sich automatisiert im Ökosystem ausbreiten. Für Unternehmen unterstreicht der Vorfall, wie wichtig Lückenlosigkeit in der eigenen Software-Lieferkette ist, von der Kontrolle eingesetzter Abhängigkeiten bis zur schnellen Rotation potenziell offengelegter Zugangsdaten. JFrog empfiehlt betroffenen Anwendern, kompromittierte Systeme nicht zu bereinigen, sondern aus sauberen Images neu aufzusetzen und sämtliche erreichbaren Zugangsdaten zu widerrufen und zu erneuern.

Weitere Inhalte zum Thema

Logo Newsletter IT-Sicherheit

Nichts mehr verpassen!

Mit Klick auf „Newsletter anmelden“ erhalten Sie unseren Newsletter. Die Anmeldung wird erst aktiv, nachdem Sie den Bestätigungslink in der E-Mail angeklickt haben. Datenschutzerklärung