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.