Aikido

axios auf npm kompromittiert: Konto des Betreuers gekapert, RAT eingesetzt

Verfasst von
Madeline Lawrence

Wichtige Erkenntnisse

  • Das npm-Konto des Hauptentwicklers von Axios wurde gehackt. Es wurden zwei schädliche Versionen veröffentlicht: axios@1.14.1 und axios@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_modules Das wird nicht angezeigt. Sie müssen Ihre Protokolldateien überprüfen.

Dank gebührt der hervorragenden Berichterstattung über diesen Vorfall durch:

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 KOMPROMITIERT

Linux

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.

Prüfen Sie, ob Ihr Code von dem Axios-Supply-Chain-Angriff betroffen ist – scannen Sie ihn kostenlos mit Aikido

Abhilfemaßnahmen

  1. An sichere Versionen anheften:
npm install axios@1.14.0   # Benutzer von Version 1.x
npm install axios@0.30.3   # 0.x-Benutzer
  1. 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" }
}
  1. Entfernen Sie plain-crypto-js aus node_modules:
rm -rf node_modules/plain-crypto-js
npm install --ignore-scripts
  1. 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.
  2. Alle auf dem betroffenen System verfügbaren Anmeldedaten aktualisieren: npm-Token, AWS-Zugriffsschlüssel, private SSH-Schlüssel, CI/CD secrets, .env Werte.
  3. Ü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.
  4. Führen Sie npm ci --ignore-scripts als 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
  • Windows: %PROGRAMDATA%\wt.exe, %TEMP%\6202033.vbs, %TEMP%\6202033.ps1
    • sha256: 617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101 (PowerShell)
  • Linux: /tmp/ld.py
    • sha256: fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf

Angreifer-Konten:

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 | sh

Die Geschichte entwickelt sich... Bleiben Sie dran für Updates.

{{cta}}

Teilen:

https://www.aikido.dev/blog/axios-npm-compromised-maintainer-hijacked-rat

Abonnieren Sie Bedrohungs-News.

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten
Prüfen Sie, ob Sie von dem Angriff auf die Axios-Lieferkette betroffen sind

Kostenlos, keine Kreditkarte erforderlich

Auf Malware prüfen

Sicherheit jetzt implementieren

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.