Wichtige Erkenntnisse
- Das npm-Konto des Hauptentwicklers von Axios wurde gehackt. Es wurden zwei schädliche Versionen veröffentlicht:
axios@1.14.1undaxios@0.30.4. npm hat beide inzwischen entfernt. - Jeder, der eine der beiden Versionen vor der Entfernung installiert hat, sollte davon ausgehen, dass sein System kompromittiert ist. Die schädlichen Versionen fügen eine Abhängigkeit ein (
plain-crypto-js), der einen plattformübergreifenden Fernzugriffstrojaner einsetzt, der auf macOS, Windows und Linux abzielt. - Axios verzeichnet wöchentlich rund 100 Millionen Downloads. Dies ist einer der schwerwiegendsten Lieferkettenangriffe verzeichnet wurden.
- Die Malware löscht sich nach der Ausführung selbst, sodass eine Überprüfung nach der Infektion von
node_modulesDas wird nicht angezeigt. Sie müssen Ihre Protokolldateien überprüfen.
Dank gebührt der hervorragenden Berichterstattung über diesen Vorfall durch:
- StepSecurity (https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan)
- Socket socket)
So überprüfen Sie, ob Sie von dem Axios-Angriff betroffen sind
Option 1) Manuell überprüfen
1. Auf schädliche Axios-Versionen prüfen
Überprüft Ihre installierten Pakete und die Sperrdatei auf 1.14.1 oder 0.30.4.
npm list axios 2>/dev/null | grep -E "1.14.1|0.30.4"
grep -A1 '"axios"' package-lock.json | grep -E "1.14.1|0.30.4"2. Überprüfen Sie, ob das versteckte Dropper-Paket vorhanden ist
Selbst wenn setup.js Obwohl es selbst gelöscht wurde, existiert das Verzeichnis weiterhin. Allein seine Existenz bestätigt, dass der Dropper ausgeführt wurde.
ls node_modules/plain-crypto-js 2>/dev/null && echo "MÖGLICH BETROFFEN"3. Auf RAT-Spuren auf der Festplatte prüfen
macOS
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "COMPROMISED"Windows
dir "%PROGRAMDATA%\wt.exe" 2>nul && echo KOMPROMITIERTLinux
ls -la /tmp/ld.py 2>/dev/null && echo "GEFÄHRDET"Option 2) Aikido nutzen Aikido kostenlos)
Verbinden Sie Ihre Repositorys mit Aikidohttps://app.aikido.dev). Der Malware-Monitor Aikido vergleicht Ihre Abhängigkeiten mit dem Live-Malware-Feed Aikido . Wenn axios@1.14.1, axios@0.30.4, oder plain-crypto-js@4.2.1 sollte dies in einem Ihrer Projekte vorkommen, Aikido dies sofort. Dies funktioniert auch in der kostenlosen Version.
Abhilfemaßnahmen
- An sichere Versionen anheften:
npm install axios@1.14.0 # Benutzer von Version 1.x
npm install axios@0.30.3 # 0.x-Benutzer- Füge Überschreibungen hinzu, um eine transitive Auflösung zu verhindern:
{
"dependencies": { "axios": "1.14.0" },
"overrides": { "axios": "1.14.0" },
"resolutions": { "axios": "1.14.0" }
}- Entfernen Sie
plain-crypto-jsaus node_modules:
rm -rf node_modules/plain-crypto-js
npm install --ignore-scripts- Falls ein RAT-Artefakt gefunden wird (
com.apple.act.mond,wt.exe,ld.py), versuchen Sie nicht, die Reinigung vor Ort durchzuführen. Führen Sie eine Neuinstallation aus einem bekanntermaßen fehlerfreien Zustand durch. - Alle auf dem betroffenen System verfügbaren Anmeldedaten aktualisieren: npm-Token, AWS-Zugriffsschlüssel, private SSH-Schlüssel, CI/CD secrets,
.envWerte. - Überprüfen Sie die Protokolle der CI/CD-Pipeline auf alle Durchläufe, bei denen die betroffenen Versionen installiert wurden. Ersetzen Sie alle eingebetteten secrets.
- Führen Sie
npm ci --ignore-scriptsals fester Bestandteil der CI/CD-Richtlinien.
Was geschah bei dem Angriff auf die Lieferkette von Axios?
Der Angreifer hat die jasonsaayman npm-Konto, der Hauptbetreuer von axios. Die E-Mail-Adresse des Kontos wurde geändert in ifstap@proton.me. Der Angreifer veröffentlichte daraufhin axios@1.14.1 am 31. März um 00:21 Uhr UTC und axios@0.30.4 um 01:00 Uhr UTC. Sowohl der 1.x- als auch der ältere 0.x-Zweig waren innerhalb von 39 Minuten betroffen.
Keine der beiden Versionen wies einen entsprechenden Commit, Tag oder Release im GitHub-Repository von Axios auf. Echte Axios-Releases werden über GitHub Actions mit einer OIDC-Trusted-Publisher-Bindung veröffentlicht. Diese wurden manuell mit einem gestohlenen npm-Zugriffstoken veröffentlicht.
Die einzige Änderung in beiden Versionen war die Hinzufügung von plain-crypto-js@^4.2.1 als Abhängigkeit. Dieses Paket wird an keiner Stelle im Axios-Quellcode importiert. Es dient ausschließlich dazu, einen Postinstall-Hook auszuführen, der eine RAT installiert.
Die Abhängigkeit wurde etwa 18 Stunden zuvor von einem separaten Angreiferkonto vorbereitet (nrwise, nrwise@proton.me). Eine saubere Decoy-Version (4.2.0) wurde zunächst veröffentlicht, um eine Registrierungshistorie aufzubauen, gefolgt von der bösartigen 4.2.1 am 30. März um 23:59 Uhr UTC.
Der RAT-Dropper (setup.js) kontaktiert sfrclak[.]com:8000 und liefert plattformspezifische Nutzdaten: eine macOS-Binärdatei, die als Apple-Cache-Daemon getarnt ist, unter /Library/Caches/com.apple.act.mond, ein PowerShell-Skript unter Windows, das über ein verstecktes VBScript ausgeführt wird, wobei der Interpreter in den Ordner %PROGRAMDATA%\wt.exeund ein Python-Skript unter Linux unter /tmp/ld.py. Nach der Ausführung löscht sich der Dropper selbst und ersetzt seine eigene package.json mit einem sauberen Stummel, um die Spuren zu verwischen.
{{cta}}
Indikatoren für eine Kompromittierung (IOCs)
Schädliche Axios-Versionen und Abhängigkeiten:
axios@1.14.1(shasum:2553649f2322049666871cea80a5d0d6adc700ca)axios@0.30.4(shasum:d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71)plain-crypto-js@4.2.1(shasum:07d889e2dadce6f3910dcbc253317d28ca61c766)
Netzwerk:
- C2:
sfrclak[.]com/142.11.206[.]73/http://sfrclak[.]com:8000/6202033
Dateisystem:
- macOS:
/Library/Caches/com.apple.act.mond- sha256:
92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a
- sha256:
- Windows:
%PROGRAMDATA%\wt.exe, %TEMP%\6202033.vbs, %TEMP%\6202033.ps1- sha256:
617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101(PowerShell)
- sha256:
- Linux:
/tmp/ld.py- sha256:
fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf
- sha256:
Angreifer-Konten:
- jasonsaayman: Axios-Betreuer kompromittiert, E-Mail-Adresse geändert auf ifstap@proton.me
- nrwise: vom Angreifer erstellt, nrwise@proton.me
So schützen Sie sich vor der Installation von Malware
Aikido -Sicherheitskette (https://github.com/AikidoSec/safe-chain) ist ein Open-Source-Tool, das npm, yarn und pnpm einbindet. Es gleicht jedes Paket mit dem Malware-Feed Aikido ab, bevor es auf Ihren Rechner gelangt, und erzwingt ein konfigurierbares Mindestalter für Pakete (standardmäßig 48 Stunden), wodurch neu veröffentlichte Versionen zurückgehalten werden, bis sie validiert wurden. Bei diesem Axios-Angriff, plain-crypto-js@4.2.1 Es existierte weniger als 24 Stunden, bevor die kompromittierten Axios-Versionen es einbunden. Allein die Altersprüfung von Safe Chain hätte es blockiert.
Kostenlos, keine Tokens erforderlich:
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/latest/download/install-safe-chain.sh | shDie Geschichte entwickelt sich... Bleiben Sie dran für Updates.
{{cta}}

