Millionen von JS-Entwicklern gehackt... (axios pwned)

BBetter Stack
Computing/SoftwareBusiness NewsInternet Technology

Transcript

00:00:00Dies könnte einer der größten NPM-Supply-Chain-Angriffe sein, die wir je gesehen haben,
00:00:03und nein, das ist kein Aprilscherz, es ist nur schlechtes Timing und die Leute müssen darüber Bescheid wissen.
00:00:07Es geschah im Axios-Paket; der HTTP-Client wurde diese Woche 101 Millionen Mal installiert
00:00:13und hat über 174.000 abhängige Projekte. Es hat bereits Pakete wie Datadog,
00:00:18OpenClaw und WordPress betroffen und wird zudem mit nordkoreanischen Hackern in Verbindung gebracht.
00:00:22Schauen wir uns also direkt an, was passiert ist.
00:00:29Hier ist die Geschichte: Am 31. März 2026 kompromittierte ein Angreifer das NPM-Konto
00:00:34des Axios-Hauptentwicklers und veröffentlichte zwei Backdoor-Releases, Version 1.14.1,
00:00:39die als aktuellste Version markiert war, sowie Version 0.30.4, die als Legacy-Version galt.
00:00:44In diesen Paketen führten sie eine Phantom-Abhängigkeit namens „plaincryptojs“ ein,
00:00:48was im Grunde das normale crypto.js-Paket war, aber mit einer kleinen Änderung:
00:00:52Es enthielt ein Post-Install-Skript namens setup.js. Das bedeutet, dass jeder Nutzer und jede CI,
00:00:58die diese kompromittierten Pakete installierte, auch dieses Skript ausführte. Das Skript selbst enthielt
00:01:02obfuskierte Codes, die prüften, welches Betriebssystem Sie verwenden, und sich dann mit einem Server verbanden,
00:01:07um eine zweite, für Ihr Betriebssystem relevante Payload herunterzuladen. Somit war niemand
00:01:12vor diesem Angriff sicher; sie gingen sogar so weit, dass die macOS-Payload
00:01:16sowohl auf Intel- als auch auf Apple-Macs funktionierte. Und diese zweite Payload ist das eigentlich Schlimme,
00:01:20denn das ist der RAT oder Remote-Access-Trojaner, der auf allen Betriebssystemen im Grunde gleich funktioniert.
00:01:25Zuerst scannt er Ihre Dateien und durchsucht Dokumente, Desktop
00:01:29und Konfigurationsordner. Die Windows-Version scannte sogar Ihr OneDrive, AppData und jedes
00:01:33Laufwerk auf Ihrem System und sendete diese Dateiliste an den Server zurück,
00:01:38vermutlich um zu prüfen, ob es etwas Stehlenswertes gibt. Danach begann er mit dem
00:01:42„Beaconing“: Alle 60 Sekunden meldete er Hostnamen, Benutzernamen, Betriebssystem,
00:01:47Zeitzone, Hardwaremodell und eine vollständige Liste aller laufenden Prozesse an die Basis, damit der Angreifer sehen konnte,
00:01:52welche Software Sie nutzen und ob Sie gerade aktiv sind. Und falls das alles noch nicht schlimm genug klingt,
00:01:56kommt der schlimmste Teil noch: Der Angreifer konnte jederzeit aus der Ferne vier Befehle erteilen,
00:02:00um jedes Verzeichnis auf Ihrem System zu durchsuchen, beliebige Shell-Befehle oder Skripte auszuführen,
00:02:05weitere Malware zu platzieren und auszuführen oder sogar den gesamten Prozess zu beenden, um Spuren zu verwischen.
00:02:10Tatsächlich stellten sie sicher, dass das ursprüngliche Setup-Skript sich selbst sowie die package.json löschte,
00:02:15die den Post-Install-Befehl enthielt, und diese durch eine saubere Version ersetzte, um so
00:02:19unentdeckt wie möglich zu bleiben. Man sieht also, dieser Hack war wirklich bösartig und darauf ausgelegt,
00:02:23Entwickler-Workstations und CI/CD-Runner ins Visier zu nehmen, um nach Geheimnissen wie .env-Dateien,
00:02:28NPM-Token, SSH-Schlüsseln und vielem mehr zu suchen. Jedes System, das diese schädlichen Payloads ausgeführt hat,
00:02:34sollte als Fall von vollständigem Identitätsdiebstahl behandelt werden. Zu all dem kommt noch
00:02:38das Rätsel, wie das NPM-Konto kompromittiert wurde. Der Maintainer gab an, dass er die Zwei-Faktor-Authentifizierung
00:02:43sowie Auth für seine GitHub-Action-Pipelines aktiviert hatte. Es scheint also so zu sein, dass die
00:02:47Pakete über das NPM-CLI mit einem langlebigen NPM-Access-Token veröffentlicht wurden. Die nächste Frage lautet,
00:02:53wie sie Zugriff auf diesen Token erhielten. Der Maintainer vermutet sogar, dass jemand
00:02:56seine Wiederherstellungscodes erlangt haben könnte, aber wie das geschah, bleibt vorerst ein absolutes Rätsel.
00:03:01Wenn Sie prüfen möchten, ob Sie betroffen sind, durchsuchen Sie unbedingt Ihre Lock-Dateien nach den betroffenen
00:03:04Axios-Versionen sowie nach dem Paket „plaincryptojs“ und suchen Sie in Ihren node_modules
00:03:09direkt nach dem Paket. Falls Sie fündig werden, sind das leider schlechte Nachrichten. Sie können
00:03:14Ihr System auch nach RAT-Artefakten durchsuchen. Ich verlinke unten vollständige Berichte dazu, damit Sie
00:03:18die Schritte befolgen können und wissen, was im Falle einer Kompromittierung zu tun ist. Für die Zukunft gibt es
00:03:22einige Schritte zur Vorbeugung solcher Angriffe: Erstens, checken Sie Ihre Lock-Dateien immer ein
00:03:26und nutzen Sie in Ihren Pipelines den Befehl „npm ci“ anstelle von „npm install“.
00:03:31Zudem sollten Sie ein Mindestalter in Ihrem Paketmanager festlegen, um sicherzustellen,
00:03:35dass Pakete mindestens 48 Stunden alt sind, bevor sie installiert werden – in der Hoffnung, dass schädliche Pakete
00:03:39rechtzeitig entdeckt werden, da dieser Axios-Fall tatsächlich nach drei Stunden entdeckt und gelöscht wurde. Zuletzt,
00:03:44verwenden Sie nach Möglichkeit das Flag „--ignore-scripts“ bei „npm install“ oder nutzen Sie einen
00:03:48Paketmanager wie Bun, der standardmäßig alle Post-Install-Skripte blockiert und sie nur für
00:03:53Abhängigkeiten ausführt, die Sie explizit als vertrauenswürdig eingestuft haben. Ich hoffe, dies ist der größte Angriff,
00:03:57den wir dieses Jahr sehen, aber wir erleben definitiv immer mehr davon. Passen Sie also gut
00:04:01auf sich auf und lassen Sie mich in den Kommentaren unten wissen, was Sie davon halten,
00:04:04oder abonniert den Kanal. Wie immer, wir sehen uns im nächsten Video.

Key Takeaway

Ein Supply-Chain-Angriff auf Axios infiltrierte über 100 Millionen wöchentliche Installationen mittels kompromittierter NPM-Tokens, um einen plattformübergreifenden Remote-Access-Trojaner auf Entwickler-Workstations und CI/CD-Runnern zu platzieren.

Highlights

Ein Angreifer kompromittierte am 31. März 2026 das NPM-Konto des Axios-Hauptentwicklers und veröffentlichte die Backdoor-Versionen 1.14.1 und 0.30.4.

Der Angriff betraf den Axios-HTTP-Client, der wöchentlich 101 Millionen Mal installiert wird und 174.000 abhängige Projekte versorgt.

Die Schadsoftware nutzte eine Phantom-Abhängigkeit namens plaincryptojs, um ein Post-Install-Skript zur Infektion von Windows, macOS und Linux auszuführen.

Der eingeschleuste Remote-Access-Trojaner (RAT) scannte Dokumente, Desktop-Dateien, OneDrive-Inhalte und Prozesslisten für den Datenabzug.

Das System zur Selbsttarnung löschte das ursprüngliche Setup-Skript und die package.json nach der Infektion und ersetzte sie durch saubere Versionen.

Die Installation von Paketen mit dem Flag --ignore-scripts oder die Nutzung von Bun verhindert die automatische Ausführung solcher bösartigen Skripte.

Timeline

Kompromittierung der Axios-Lieferkette

  • Axios verzeichnete zum Zeitpunkt des Angriffs 101 Millionen wöchentliche Installationen.
  • Große Projekte wie Datadog, WordPress und OpenClaw sind von der Sicherheitslücke betroffen.
  • Sicherheitsanalysen bringen den Vorfall mit nordkoreanischen Hacker-Gruppen in Verbindung.

Die enorme Reichweite von Axios macht diesen Vorfall zu einem der bedeutendsten Supply-Chain-Angriffe im NPM-Ökosystem. Über 174.000 Projekte hängen direkt von diesem HTTP-Client ab. Da die bösartige Version als aktuellste Version markiert wurde, verbreitete sich der Code unmittelbar nach der Veröffentlichung.

Funktionsweise der Backdoor-Mechanismen

  • Die Angreifer schleusten die manipulierte Abhängigkeit plaincryptojs in die Axios-Versionen 1.14.1 und 0.30.4 ein.
  • Ein Post-Install-Skript namens setup.js lud betriebssystemspezifische Payloads für Windows und macOS herunter.
  • Die macOS-Payload unterstützt sowohl Intel-Prozessoren als auch Apple-Silicon-Chips.

Nach der Installation der kompromittierten Axios-Pakete startete automatisch das Skript setup.js. Dieses Skript prüfte das Betriebssystem des Opfers und baute eine Verbindung zu einem externen Server auf. Durch die Verwendung einer getarnten Krypto-Bibliothek blieb die zusätzliche Abhängigkeit für viele automatisierte Sicherheitstools zunächst unauffällig.

Fähigkeiten des Remote-Access-Trojaners

  • Der Trojaner übermittelt alle 60 Sekunden Hostnamen, Benutzernamen und laufende Prozesse an den Angreifer.
  • Vier Fernbefehle ermöglichen das Durchsuchen von Verzeichnissen, Ausführen von Shell-Skripten und Nachladen weiterer Malware.
  • Die Schadsoftware löscht eigene Spuren durch das Ersetzen der manipulierten package.json mit dem Original.

Der RAT ist primär auf den Diebstahl von Identitäten und Zugangsdaten ausgelegt. Unter Windows durchsucht die Software gezielt Cloud-Speicher wie OneDrive und sensible AppData-Ordner nach .env-Dateien oder SSH-Schlüsseln. Die Beaconing-Funktion stellt sicher, dass der Angreifer stets über die Aktivität auf der infizierten Workstation informiert bleibt.

Ursachenanalyse und Präventionsmaßnahmen

  • Der Diebstahl eines langlebigen NPM-Access-Tokens oder von Wiederherstellungscodes ermöglichte die Veröffentlichung trotz aktiver Zwei-Faktor-Authentifizierung.
  • Die Verwendung von npm ci und eingecheckten Lock-Dateien erhöht die Sicherheit in Build-Pipelines.
  • Ein künstliches Mindestalter für Paket-Updates schützt vor kurzlebigen Schadcode-Veröffentlichungen.

Obwohl der Maintainer 2FA und GitHub-Action-Sicherheitsmaßnahmen nutzte, gelang der Zugriff vermutlich über das NPM-CLI. Da der schädliche Code bereits nach drei Stunden entdeckt und gelöscht wurde, hätte eine Sicherheitsverzögerung von 48 Stunden bei Paket-Updates die meisten Infektionen verhindert. Werkzeuge wie Bun bieten zusätzlichen Schutz, da sie Post-Install-Skripte standardmäßig blockieren.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video