Vorbereitung auf Krypto-Miner-Angriff: Hunderte verdächtige Pakete auf npm

Auf dem Paketmanager wurden über 1000 Pakete automatisiert erstellt, die einen Supply-Chain-Angriff vorbereiten könnten.

In Pocket speichern vorlesen Druckansicht 43 Kommentare lesen

(Bild: Gorodenkoff/Shutterstock.com)

Lesezeit: 3 Min.

Auf npm sind in den letzten Tagen gut 1200 Pakete aufgetaucht, die auf einen anstehenden Supply-Chain-Angriff hindeuten. Offenbar enthalten alle Pakete eine Kopie des Codes aus einem Paket zum Schürfen von Kryptowährungen. Derzeit startet der Code noch nicht, da er auf einen externen Aufruf angewiesen ist.

Das auf sichere Softwareentwicklung spezialisierte Unternehmen Checkmarx hat die Paketflut auf npm entdeckt und analysiert. Demnach stammen die Packages nicht von einem oder wenigen, sondern von knapp über 1000 automatisiert erstellten npm-Accounts. Ein Großteil der Pakete ist wohl weiterhin auf npm verfügbar.

Alle Pakete enthalten laut Checkmarx eine nahezu identische Kopie des legitimen Pakets eazyminer, das wiederum ein JavaScript-Wrapper für die C++-XMRig-Software zum Schürfen der Kryptowährung Monero ist. Das Paket verwendet ungenutzte Ressourcen unter anderem auf Webservern und CI/CD-Systemen (Continuous Integration / Continuous Delivery). Es läuft auf der niedrigsten CPU-Priorität, um die Rechner nicht zu beeinträchtigen.

Neben dem Code enthalten zahlreiche Pakete den hartcodierten User-Namen "cute" in den Konfigurationsdateien. Checkmarx hat den Angriff "cuteboi" getauft, unter Einbeziehung des offensichtlich nicht rein zufälligen Namens "cloudboi12", den einer der automatisiert erstellten npm-Accounts trägt.

Die Konfigurationsdatei enthält eine URL und den einheitlichen User-Namen "cute".

(Bild: Checkmarx)

Neben dem Namen findet sich in der Konfiguration eine URL, bei der die geschürfte Kryptowährung landen soll. Checkmarx vermutet, dass unter der Adresse ein XMRig-Proxy läuft. Die Pakete von cuteboi enthalten Binaries der XMRig-Mining-Software für Linux und Windows, deren Namen jeweils zu dem zugehörigen Paket passen. Welche Software den Prozess in den Paketen letztlich starten soll, ist derzeit noch nicht erkennbar.

Bemerkenswert ist die hohe Zahl automatisch erstellter npm-Accounts. cuteboi hat dafür mail.tm genutzt, einen Service für Einweg-Mails. Der Dienst hat eine REST-API, über die cuteboi die zum Erstellen eines npm-Accounts erforderliche Anmeldung über Zwei-Faktor-Authentifizierung (2FA) automatisiert hat.

Bei der 2FA zum Erstellen neuer User half die REST-API eines Einweg-Mail-Services.

(Bild: Checkmarx)

Derzeit ist noch unklar, ob die Paketflut tatsächlich einen Krypto-Miner-Angriff vorbereitet oder lediglich ein großer Testballon ist. Die Namen von cutebois npm-Paketen deuten auf kein bekanntes Angriffsmuster wie Typosquatting, Brandjacking oder Dependency Confusion hin, sondern wirken wie zufällig erstellte Zeichenketten.

Angriff auf die Software Supply Chain

Schadcode in Open-Source-Paketen gehört zu den verbreiteten Angriffen auf die Software Supply Chain. Angreiferinnen und Angreifer veröffentlichen auf Paketmanagern vermeintlich nützliche Pakete, die Developer in ihren Anwendungen verwenden. Häufige Methoden sind das Typosquatting und das Brandjacking. Letzteres verwendet Firmennamen wie Twilio, um eine legitime Quelle vorzutäuschen.

Beim Typosquatting tragen die Pakete mit Schadcode Namen, die den Bezeichnungen beliebter Pakete ähneln. Die Methode setzt zum einen auf Tippfehler und verwendet zum anderen Trennzeichen wie Unter- und Bindestriche. Aus my-packet wird my-paket, mypacket oder my_packet. Irgendwer wird sich schon vertippen, so die berechtigte Hoffnung der Angreifenden.

Ein weiterer Angriffsvektor sind zunächst nützliche und harmlose Pakete, die den Schadcode erst dann mitbringen, wenn sie eine gewisse Verbreitung erreicht haben. Das npm-Team hatte 2019 mit electron-native-notify ein solches Package entdeckt. Schließlich versucht Dependency Confusion intern gehostete Dependencies durch gleichnamige externe Pakete mit Schadcode zu ersetzen. Letztere bekommen dazu eine hohe Versionsnummer, da die Paketinstallationswerkzeuge wie pip je nach Einstellung das Paket mit der höchsten Nummer verwenden, das vermeintlich das aktuellste ist.

Checkmarx hat eine dedizierte Website angelegt, die die Aktivitäten von cuteboi auf npm weiter verfolgt. Das Open-Source-Projekt ist zudem auf GitHub verfügbar. Weitere Details finden sich im Checkmarx-Blog.

(rme)