Ein großangelegter Angriff auf die Softwarelieferkette spioniert per Schadsoftware sensible Daten aus – mit potenziell gravierenden Folgen für ganze Entwicklungsumgebungen.
Ein neuer Angriff auf die Softwarelieferkette (Supply Chain) bedroht sowohl Entwickler-Workstations als auch Umgebungen für automatisierte Continuous Integration (CI). Das sind Systeme, die Softwareänderungen automatisch testen und zusammenführen: Sobald Entwickler Code ins zentrale Repository hochladen, beginnt die CI-Umgebung automatisch damit, die Software zu kompilieren und auf Fehler zu testen. Auf diese Weise kann man Probleme früh erkennen und die Qualität des Codes fortlaufend sichern. Bekannte CI-Systeme sind etwa Github Actions [1], Gitlab CI [2] und Jenkins [3].
Die Sicherheitsfirma Socket [4] warnte kürzlich vor einer gezielten Kampagne, bei der schädliche NPM-Pakete zum Einsatz kommen. Der Node Package Manager NPM ist das am weitesten verbreitete Paketverwaltungssystem für Javascript, insbesondere in Webentwicklung und DevOps. Mit seiner Hilfe binden Entwickler externe Module und Bibliotheken einfach in ihre Projekte ein.
Insgesamt identifizierte Socket in NPM 60 kompromittierte Pakete, die einen sogenannten Infostealer enthalten. Das ist Schadsoftware, die sensible Informationen auf dem infizierten System ausspäht und an die Angreifer überträgt. Dazu zählen etwa ein spezifischer Fingerabdruck der Maschine (Fingerprint), Netzwerkdaten oder die Struktur wichtiger Verzeichnisse. Im vorliegenden Fall nutzt die Malware Discord für die Datenübertragung. Angreifer missbrauchen die Messaging-Plattform häufig als unauffälligen Datenkanal.
Die bösartigen Pakete stammen von den drei NPM-Nutzerkonten »bbbb335656«, »cdsfdfafd1232436437« und »sdsds656565«, mit jeweils 20 Paketen pro Account. Laut Socket wurden sie bereits rund 3000 Mal heruntergeladen. Das Schadskript wird direkt bei der Installation durch den Befehl »npm install« aktiv. Es startet zunächst einen Sandbox-Check, über den es erkennt, ob es sich in einer virtuellen oder in einer Testumgebung befindet. Nur wenn es auf einem produktiven System läuft, etwa auf einem Entwicklerrechner oder einem echten Build-Knoten innerhalb einer CI-Pipeline, späht es Daten aus. Das soll verhindern, dass Sicherheitsforscher oder automatisierte Analysen die Malware frühzeitig erkennen.
Die Schadsoftware ist plattformübergreifend konzipiert und kann sowohl unter Windows und MacOS als auch unter Linux Schaden anrichten. Obwohl die betreffenden Pakete mittlerweile aus dem offiziellen NPM-Repository entfernt wurden, warnen die Analysten vor einer möglichen erneuten Veröffentlichung: Die Skripte lassen sich leicht kopieren, ihre Kommunikationskanäle in Echtzeit beobachten und modifizieren, sodass die Angreifer sie unter neuen Namen erneut verbreiten könnten.
Die abgegriffenen Systeminformationen liefern den Angreifern wertvolle Einblicke in die jeweilige Umgebung. Besonders in CI-Umgebungen lassen sich Informationen über verwendete Paket-Registries, Build-Verzeichnisse und die Netzwerkarchitektur verwenden, um gezielte Folgeangriffe auf Unternehmen oder Open-Source-Projekte auszuführen. Diese Art von Angriff zählt zu den gefährlichsten Formen von Supply-Chain-Attacken, weil sie Software bereits in der Entwicklungsphase kompromittiert, bevor man sie überhaupt produktiv nutzt.
Entwickler sollten ihre Build- und Deployment-Prozesse besser absichern. Konkret gilt es zu prüfen, ob die Software nach der Installation ungewöhnliche Verbindungen aufbaut, beispielsweise zu Discord oder anderen unerwarteten Servern. Unter einem Webhook versteht man automatische Nachrichten, die ein System an eine festgelegte Adresse sendet, sobald ein bestimmtes Ereignis eintritt. Solche Webhooks ermöglichen es, sofort und ohne manuelles Eingreifen auf Änderungen zu reagieren. Im Sicherheitskontext lassen sie sich missbrauchen, um Daten an Angreifer weiterzuleiten. Außerdem sollte man auf hartcodierte URLs innerhalb der Paketquellen achten. Verdächtig sind daneben ungewöhnlich kleine Tarballs von Paketdateien, da sie auf minimalistischen Schadcode hindeuten. (jcb)
Infos
- Github Actions: https://docs.github.com/en/actions
- Gitlab CI: https://docs.gitlab.com/ci
- Jenkins: https://www.jenkins.io
- Warnung von Socket: https://socket.dev/blog/60-malicious-npm-packages-leak-network-and-host-data






