Mit dem Wurm Shai-Hulud wurden 600 NPM-Pakete kompromittiert.

Ein zweiter Angriff auf Pakete im NPM-Repository wurde festgestellt, der mit einer Modifikation des selbstverbreitenden Wurms Shai-Hulud durchgeführt wird, der schädliche Software in Abhängigkeiten einschleust. Infolge des Angriffs wurden schädliche Versionen von 605 Paketen veröffentlicht, die insgesamt mehr als 100 Millionen Downloads verzeichnen.

Um den Angriff durchzuführen, überwältigten die Angreifer durch Phishing die Zugangsdaten des Betreuers eines der beliebten Pakete, das als Abhängigkeit von vielen Paketen verwendet wird. Unter Ausnutzung des erbeuteten Kontos veröffentlichten die Angreifer eine Version des Pakets, in die Code integriert wurde, der den Wurm aktiviert, wenn das betroffene Paket als Abhängigkeit installiert wird. Der aktivierte Wurm sucht nach Zugangsdaten im aktuellen Umfeld und lädt das Tool TruffleHog herunter und führt es aus.

Sollte ein Verbindungstoken zum NPM-Verzeichnis entdeckt werden, veröffentlicht der Wurm automatisch neue schädliche Versionen von Paketen, die im aktuellen Umfeld entwickelt werden. Auf diese Weise wird die gesamte Abhängigkeitsstruktur schrittweise infiziert. Neben dem NPM-Token speichert der Wurm auch Zugangsschlüssel für GitHub sowie für die Cloud-Dienste AWS, Azure und GCP (Google Cloud Platform) sowie Umgebungsvariablen und andere vertrauliche Daten, die der Scanner TruffleHog erfassen kann.

Die im System gefundenen vertraulichen Daten werden in GitHub gespeichert, indem Repositories mit zufälligen Namen (zum Beispiel „qzx15djl71alh6p80h“) und der Phrase „Sha1-Hulud: The Second Coming“ in der Beschreibung erstellt werden, und außerdem werden sie in kodierter Form in die Logs von GitHub Actions ausgegeben. In dem erstellten Repository wird eine Datei im JSON-Format (zum Beispiel jsonactionsSecrets.json oder contents.json) abgelegt, die eine Zeile mit kodierten base64-Daten über das System, Umgebungsvariablen und erbeutete Informationen enthält. Um Informationen aus den kontinuierlichen Integrationssystemen auf GitHub nach außen zu übertragen, erstellt der Wurm einen GitHub Actions-Handler mit dem Namen „.github/workflows/formatter_123456789.yml“ und konfiguriert einen Runner mit dem Namen SHA1HULUD.

Die Unterschiede zu einem ähnlichen Septemberangriff liegen in einer anderen Methode zur Einfügung von Schadcode in das Paket. In den von dem Wurm erzeugten schädlichen Releases wird die Unterstützung der JavaScript-Plattform Bun angegeben. In die Datei package.json wird im Abschnitt „preinstall“, der die vor der Installation ausgeführten Skripte definiert, der Befehl „node setup_bun.js“ hinzugefügt.

Mit dem Wurm Shai-Hulud wurden 600 NPM-Pakete kompromittiert.

In der Datei „setup_bun.js“ befindet sich Code zur Ausführung des obfuskierten Skripts „bun_environment.js“, das den Wurmcode enthält. Für seine weitere Verbreitung findet der Wurm den Code von Paketen, ändert die Datei package.json (erhöht die Versionsnummer und inkludiert den Aufruf von setup_bun.js), fügt die Dateien setup_bun.js und bun_environment.js hinzu, verpackt das Paket neu und führt den Befehl „npm publish“ aus, um die neue Version zu veröffentlichen.

Unter den kompromittierten beliebten Paketen befinden sich: @zapier/zapier-sdk (2,8 Millionen Downloads pro Woche), @posthog/core (2,8 Millionen), posthog-node (1,5 Millionen), @asyncapi/specs (1,4 Millionen), @postman/tunnel-agent (1,2 Millionen). Es wird vermutet, dass der Angriff mit der Kompromittierung des unterstützenden Pakets @asyncapi/specs begann.

Quelle: opennet.ru

60GB SSD 8Gb DDR4