Massive Shai-Hulud-Kampagne kompromittiert über 600 npm-Pakete, zielt auf Entwicklergeheimnisse
Ein neuer **Shai-Hulud** Supply-Chain-Angriff hat bösartigen Code in über 600 Pakete im **npm**-Registry eingeschleust. Die Kampagne, die hauptsächlich das `@antv`-Ökosystem ins Visier nimmt, stiehlt Entwickler- und CI/CD-Geheimnisse und exfiltriert sie über das Session P2P-Netzwerk und GitHub.

Bedrohungsakteure haben im Rahmen einer neuen **Shai-Hulud** Supply-Chain-Kampagne über 600 bösartige Pakete im **Node Package Manager (npm)**-Index veröffentlicht.
Die meisten der betroffenen Pakete stammen aus dem `@antv`-Ökosystem, das Bibliotheken für Charting, Graphenvisualisierung, Erstellung von Flussdiagrammen und Kartierung umfasst. Allerdings wurden auch beliebte Pakete außerhalb dieses Namespace kompromittiert.
### Eine-Stunde-Angriff
Wie bei der vorherigen **Shai-Hulud**-Kampagne, die **TanStack**- und **Mistral**-Pakete betraf, sammelt die Payload Geheimnisse aus Entwickler- und CI/CD-Umgebungen und exfiltriert sie über das Session P2P-Netzwerk, um Erkennung und Bereinigung zu erschweren.
Der Bedrohungsakteur nutzte auch **GitHub** als sekundären Exfiltrationsmechanismus und veröffentlichte gestohlene Daten in Repositories unter den Konten der Opfer, wenn die für die Veröffentlichung verwendeten Tokens gefunden wurden.
Laut dem Unternehmen für Anwendungssicherheit **Socket** veröffentlichten die Hacker innerhalb von etwa einer Stunde am 19. Mai, zwischen 01:56 UTC und 02:56 UTC, 639 bösartige Versionen in 323 eindeutigen Paketen.
Der Angriff begann mit der Kompromittierung des npm-Kontos `atool`, das die Pakete im `@antv`-Namespace veröffentlicht. Einige der betroffenen Bibliotheken sind:
* echarts-for-react
* @antv/g2
* @antv/g6
* @antv/x6
* @antv/l7
* @antv/g2plot
* @antv/graphin
* timeago.js
* size-sensor
* canvas-nest.js
**Endor Labs**-Forscher weisen darauf hin, dass einige der Pakete (z. B. timeago.js, size-sensor und jest-canvas-mock) seit langem kein legitimes Update mehr erhalten hatten und ihre OIDC-basierte vertrauenswürdige Veröffentlichungs-Sicherheitsfunktion wahrscheinlich nicht konfiguriert war.
Zum Beispiel hat *jest-canvas-mock* trotz 10 Millionen monatlicher Downloads seit etwa 3 Jahren keine Aktivität mehr gezeigt.
**Socket**-Forscher pflegen eine Liste von Paket-Artefakten, die von allen **Shai-Hulud**-Angriffen betroffen sind, und diese Liste ist auf über 1.000 Einträge angewachsen.
Die **Shai-Hulud**-Kampagnen begannen im letzten September und betreffen weiterhin mehrere Software-Ökosysteme wie npm, PyPI und Composer, wenn auch in geringerem Maße.
### Veröffentlichung auf GitHub
Die Malware kompromittiert Maintainer-Konten oder Veröffentlichungs-Tokens, um legitime Pakete mit bösartigem Code zu versehen, der Entwickler- und CI/CD-Geheimnisse stiehlt und sich durch die gestohlenen Anmeldedaten auf andere Projekte ausbreiten kann.
Die neueste Welle beinhaltet die Einschleusung einer stark verschleierten `index.js`-Payload, die versucht, **GitHub**-, npm-, Cloud-, Kubernetes-, Vault-, Docker-, Datenbank- und SSH-Anmeldedaten zu stehlen.
Sie zielt hauptsächlich auf Entwickler-Workstations und CI/CD-Umgebungen ab, darunter **GitHub Actions**, GitLab CI, Jenkins, Azure DevOps, CircleCI, Vercel, Netlify und andere Build-Plattformen.
Die gestohlenen Daten werden serialisiert, Gzip-komprimiert, mit AES-256-GCM verschlüsselt und mit RSA-OAEP umhüllt, um die Netzwerkinspektion zu erschweren.
Wenn **GitHub**-Anmeldedaten verfügbar sind, nutzt die Malware die **GitHub**-API, um automatisch neue Repositories unter dem Konto des Opfers zu erstellen und die gestohlenen Daten dorthin hochzuladen.
Als Ergebnis dieses Angriffs veröffentlichte Repos enthalten eine Readme-Datei mit der Zeichenkette `niaga og ew ereh :duluh-iahs`, was die Umkehrung von *Shai-Hulud: Here We Go Again* ist, einem Satz, der letzte Woche in einem Leak der **Shai-Hulud**-Malware verwendet wurde.
Ein Bericht der Software-Sicherheitsplattform **Aikido** stellt fest, dass es über 2.700 bösartige Repositories auf **GitHub** gibt, die mit den Markern der Kampagne übereinstimmen.
Eine Suche vor der Veröffentlichung dieses Artikels zeigt, dass es derzeit mindestens 2.900 **GitHub**-Repositories gibt, die durch die neueste **Shai-Hulud**-Supply-Chain-Kampagne generiert wurden.

Der Haupt-Exfiltrationskanal führt jedoch über das Session P2P-Netzwerk zu *filev2.getsession[.]org/file/*, und der Endpunkt *t.m-kosche.com* dient zum Versand der gestohlenen Anmeldedaten.
"Auf der Leitung handelt es sich um Ende-zu-Ende-verschlüsselten Verkehr über TCP/443, der auf der Netzwerkebene von legitimen Session-App-Verkehr nicht zu unterscheiden ist. Es gibt keinen traditionellen C2 [Command-and-Control]-Endpunkt, der nach Hostnamen oder IP blockiert werden könnte", sagen **Endor Labs**-Forscher.
### Legit aussehendes Paket
Eine wichtige neue Ergänzung, die **Endor Labs** in dieser **Shai Hulud**-Variante entdeckt hat, ist die Fähigkeit, gültige **Sigstore**-Provenienz-Attestate zu generieren, indem OpenID Connect (OIDC)-Tokens aus kompromittierten CI-Umgebungen missbraucht und an Fulcio und Reko übermittelt werden.
Eine ähnliche Fähigkeit wurde in der Payload beobachtet, die beim **TanStack**-Angriff, der TeamPCP zugeschrieben wird, geliefert wurde, als der Bedrohungsakteur bösartige Paketversionen mit überprüfbaren Supply-chain Levels for Software Artifacts (SLSA)-Provenienz-Attestaten veröffentlichte.
Dadurch können bösartige npm-Pakete legitim signiert erscheinen und Standard-Provenienz-Überprüfungen bestehen, obwohl sie Anmeldedaten-stehlende Malware enthalten.
Die Fähigkeit zur Selbstverbreitung ist auch in diesem Angriff vorhanden. Die Malware validiert gestohlene npm-Tokens, zählt die vom Opfer besessenen Pakete auf, lädt die Tarballs herunter, injiziert die bösartige Payload und veröffentlicht die infizierten Pakete mit erhöhten Versionsnummern erneut.
Da der Code von **Shai Hulud** kürzlich von der Threat Group TeamPCP auf **GitHub** geleakt wurde und bereits in Angriffen verwendet wurde, ist die Zuordnung der neuen **Shai-Hulud**-Kampagne schwieriger.
### Persistenz über VS Code und Claude Code
**Socket** gibt an, dass sich diese Variante technisch von früheren Mini **Shai-Hulud**-Payloads unterscheidet, aber die gleichen operativen Merkmale aufweist.
„Die AntV-Payloads unterscheiden sich von früheren Mini **Shai-Hulud**-Artefakten wie **TanStacks** router_init.js und Intercom-bezogenen router_runtime.js-Payloads“, erklärt **Socket**.
„Die AntV-Stichprobe verwendet eine index.js auf Root-Ebene, einen anderen primären C2-Endpunkt und einen kleineren Payload-Körper. Das Kernmodell ist jedoch konsistent.“
**Aikido Security** bestätigt, dass das Kernmodell zwar gleich ist, es aber einige Unterschiede gibt. Die Payload ist jetzt kleiner und es gibt Persistenz durch Backdoors, die in VS Code- und Claude Code-Konfigurationen platziert werden.
Die Forscher warnen, dass dies darauf hindeuten könnte, dass „der Angreifer darüber nachdenkt, was passiert, nachdem die anfängliche Kompromittierung bereinigt wurde“.
Die allgemeine Empfehlung für Entwickler, die eines der infizierten npm-Pakete heruntergeladen haben, ist, es sofort zu entfernen oder auf eine bekannte gute Version vor dem 18. Mai zurückzustufen und dann alle exponierten Anmeldedaten (z. B. **GitHub**-, Cloud-Tokens, SSH-Schlüssel) zu widerrufen und zu rotieren.
Berichte über den Angriff von den Anwendungssicherheitsunternehmen **Socket**, **Endor Labs**, **Aikido Security** und **Step Security** enthalten Indikatoren für Kompromittierung sowie Ratschläge zur Erkennung, Behebung und Eindämmung, die Verteidiger zum Schutz von Entwicklungsumgebungen nutzen können.
**[UPDATE: 10:31 EST]:** *Artikel aktualisiert mit Informationen von **Aikido Security** und **Microsoft**.*
[The Validation Gap: Automated Pentesting Answers One Question. You Need Six.](https://hubs.li/Q048zztN0)
Automatisierte Pentesting-Tools liefern echten Mehrwert, aber sie wurden entwickelt, um eine Frage zu beantworten: Kann ein Angreifer sich im Netzwerk bewegen? Sie wurden nicht entwickelt, um zu testen, ob Ihre Kontrollen Bedrohungen blockieren, Ihre Erkennungsregeln ausgelöst werden oder Ihre Cloud-Konfigurationen standhalten.
Diese Anleitung behandelt die 6 Oberflächen, die Sie tatsächlich validieren müssen.
[Jetzt herunterladen](https://hubs.li/Q048zztN0)