Ein selbstverbreitender Wurm hat 187 Pakete in NPM befallen.

Der Angriff auf begleitende Pakete im NPM-Repository hat eine neue Stufe erreicht. Neben der Verwendung von Schadsoftware zum Abfangen von Zahlungen und vertraulichen Informationen haben Angreifer damit begonnen, in kompromittierte Pakete einen Wurm einzufügen, um die Automatisierung der Einspeisung von Malware in Abhängigkeiten zu ermöglichen. Der Einsatz des Worms wurde nach der Kompromittierung des NPM-Pakets @ctrl/tinycolor festgestellt, das 2,2 Millionen wöchentliche Downloads hat und als direkte Abhängigkeit in 964 Paketen verwendet wird. Infolge der Aktivitäten des Worms erfasste der Angriff 187 Pakete, für die bösartige Versionen (477 bösartige Releases) erstellt wurden.

Im Rahmen eines neuen Angriffs veröffentlichen Angreifer nach dem Erhalt von Begleitkonto-Parametern durch Phishing eine Version eines Pakets mit einem Wurm, der aktiviert wird, wenn das kompromittierte Paket in Abhängigkeiten installiert wird. Nach der Aktivierung sucht der Wurm im aktuellen Umfeld nach Anmeldeinformationen, indem er das TruffleHog-Tool herunterlädt und ausführt. Bei der Entdeckung eines Verbindungstokens zum NPM-Verzeichnis veröffentlicht der Wurm automatisch eine neue bösartige Version und infiziert kaskadenartig den Abhängigkeitsbaum. Neben dem Zugangstoken zu NPM speichert der Wurm auch Zugriffskeys zu GitHub und Cloud-Diensten wie AWS, Azure und GCP (Google Cloud Platform) sowie andere vertrauliche Daten, die der TruffleHog-Scanner finden kann.

Bösartige Releases werden für die 20 beliebtesten Pakete erstellt, auf die das gefundene NPM-Token Zugriff hat. Die Funktionalität der Veröffentlichung von Releases ist in Form der Funktion NpmModule.updatePackage implementiert, die das ursprüngliche Paketarchiv herunterlädt, die Version ändert und einen postinstall-Hook in die package.json-Datei hinzufügt, den Handler bundle.js einfügt, das Paket neu verpackt und veröffentlicht. Die Funktion ist unter Linux und macOS kompatibel.

Der Wurm trägt den Codenamen Shai-Hulud (ein riesiger Wurm, der im Roman Dune erwähnt wird). Die gefundenen Anmeldedaten werden auf GitHub veröffentlicht, indem Repositories mit dem Namen Shai-Hulud erstellt werden (zum Beispiel „B611/Shai-Hulud“), und sie erscheinen auch in kodierter Form in den Protokollen von GitHub Actions. In dem erstellten Repository wird eine Datei data.json abgelegt, die eine Zeile mit durch base64 kodierten Informationen über das System, Umgebungsvariablen und abgefangene Zugangsschlüssel enthält. Im CI-basierten GitHub erstellt der Wurm einen GitHub Actions-Handler (.github/workflows/shai-hulud-workflow.yml), um Informationen an einen externen Host zu übertragen. Anscheinend beschränkt sich der Angriff nicht auf die erwähnten 187 Pakete, da auf GitHub weiterhin neue Repositories mit dem Namen Shai-Hulud und der Datei data.json erscheinen.

Ein selbstverbreitender Wurm hat 187 Pakete in NPM befallen.

Unter anderem sind als Ergebnis der Aktivitäten des Wurms 25 Pakete der Firma CrowdStrike betroffen, die Werkzeuge zur Schutz vor Angriffen über Abhängigkeiten (Supply Chain) entwickeln. Laut CrowdStrike wurden die kompromittierten Pakete nicht in der Falcon-Plattform verwendet und der Angriff hat sich nicht auf die Kunden ausgeweitet. Es wurde auch bekannt, dass die letzte Welle der Veröffentlichung schädlicher Releases in NPM, die ohne den Wurm erfolgte, das Projekt gemini-cli, das von Google entwickelt wird, betroffen hat.

Quelle: opennet.ru

60GB SSD 8Gb DDR4