Aikido

Axios piraté sur npm : le compte du responsable a été détourné, un RAT a été déployé

Écrit par
Madeline Lawrence

Points clés à retenir

  • Le compte npm du responsable principal de la maintenance d'Axios a été piraté. Deux versions malveillantes ont été publiées : axios@1.14.1 et axios@0.30.4. npm a depuis supprimé les deux.
  • Toute personne ayant installé l'une ou l'autre de ces versions avant leur retrait doit considérer que son système a été compromis. Les versions malveillantes injectent une dépendance (plain-crypto-js) qui déploie un cheval de Troie d'accès à distance multiplateforme ciblant macOS, Windows et Linux.
  • Axios enregistre environ 100 millions de téléchargements par semaine. Il s'agit de l'une des attaques de la chaîne d’approvisionnement npm les plus importantes attaques de la chaîne d’approvisionnement recensées attaques de la chaîne d’approvisionnement .
  • Le logiciel malveillant s'autodétruit après son exécution ; par conséquent, l'analyse post-infection de node_modules Je ne vais pas vous le révéler. Vous devez consulter vos fichiers journaux.

Nous remercions les médias suivants pour leur excellente couverture de cet incident :

Comment vérifier si vous êtes concerné par l'attaque Axios

Option 1) Vérifier manuellement

1. Vérifiez s'il existe des versions malveillantes d'Axios

Analyse vos paquets installés et votre fichier de verrouillage pour 1.14.1 ou 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. Recherchez le paquet de dropper caché

Même si setup.js même s'il s'est supprimé lui-même, le répertoire existe toujours. Sa simple présence confirme que le dropper s'est exécuté.

ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIELLEMENT CONCERNÉ"

3. Rechercher des traces de RAT sur le disque

macOS

ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "COMPROMIS"

Windows

dir "%PROGRAMDATA%\wt.exe" 2>nul && echo COMPROMIS

Linux

ls -la /tmp/ld.py 2>/dev/null && echo "COMPROMIS"

Option 2) Utiliser Aikido gratuit)

Connectez vos référentiels à Aikidohttps://app.aikido.dev). Le Malware Monitor Aikido compare vos dépendances avec le flux de logiciels malveillants en temps réel Aikido . Si axios@1.14.1, axios@0.30.4, ou plain-crypto-js@4.2.1 Si cela apparaît dans l'un de vos projets, Aikido le Aikido immédiatement. Cette fonctionnalité est disponible dans la version gratuite.

Vérifiez si votre code est concerné par l'attaque de la chaîne d'approvisionnement d'Axios : analysez-le gratuitement avec Aikido

Étapes de remédiation

  1. Ajouter aux versions sécurisées :
npm install axios@1.14.0   # Utilisateurs de la version 1.x
npm install axios@0.30.3   # Utilisateurs de la version 0.x
  1. Ajoutez des règles de remplacement pour empêcher la résolution transitive :
{
  "dependencies": { "axios": "1.14.0" },
  "overrides":    { "axios": "1.14.0" },
  "resolutions":  { "axios": "1.14.0" }
}
  1. Supprimez plain-crypto-js à partir de node_modules :
rm -rf node_modules/plain-crypto-js
npm install --ignore-scripts
  1. Si un artefact RAT est détecté (com.apple.act.mond, wt.exe, ld.py), n'essayez pas de nettoyer sur place. Reconstruisez à partir d'un état connu pour être correct.
  2. Renouvelez tous les identifiants accessibles sur le système concerné : jetons npm, clés d'accès AWS, clés privées SSH, secrets CI/CD, .env valeurs.
  3. Vérifiez les journaux du pipeline CI/CD pour toutes les exécutions au cours desquelles les versions concernées ont été installées. Renouvelez tous les secrets intégrés.
  4. Exécutez npm ci --ignore-scripts dans le cadre d'une politique systématique en matière de CI/CD.

Que s'est-il passé lors de l'attaque de la chaîne d'approvisionnement d'Axios ?

L'attaquant a compromis le jasonsaayman le compte npm, principal responsable de la maintenance d'axios. L'adresse e-mail associée à ce compte a été modifiée pour ifstap@proton.me. L'attaquant a ensuite publié axios@1.14.1 à 00 h 21 UTC le 31 mars et axios@0.30.4 à 01 h 00 UTC. Les branches 1.x et 0.x (ancienne version) ont toutes deux été touchées en l'espace de 39 minutes.

Aucune de ces versions ne correspondait à un commit, une balise ou une version dans le dépôt GitHub d'Axios. Les versions officielles d'Axios sont publiées via GitHub Actions avec une liaison OIDC Trusted Publisher. Celles-ci ont été publiées manuellement à l'aide d'un jeton d'accès npm volé.

La seule modification apportée aux deux versions a été l'ajout de plain-crypto-js@^4.2.1 en tant que dépendance. Ce paquet n'est jamais importé nulle part dans le code source d'Axios. Il existe uniquement pour exécuter un hook post-installation qui déploie un RAT.

La dépendance avait été mise en place environ 18 heures plus tôt par un autre compte de pirate (par ailleurs, nrwise@proton.me). Une version simplifiée (4.2.0) a d'abord été publié pour constituer un historique du registre, puis le programme malveillant 4.2.1 le 30 mars à 23 h 59 UTC.

Le dropper RAT (setup.js) contacte sfrclak[.]com:8000 et déploie des charges utiles spécifiques à la plateforme : un binaire macOS déguisé en démon de cache Apple à l'adresse /Bibliothèque/Caches/com.apple.act.mond, un script PowerShell sous Windows exécuté via un script VBScript caché, dont l'interpréteur a été copié dans %PROGRAMDATA%\wt.exe, ainsi qu'un script Python sous Linux à l'adresse /tmp/ld.py. Une fois exécuté, le dropper s'efface et remplace son propre package.json en effaçant toute trace pour faire disparaître les preuves.

{{cta}}

Indicateurs de compromission (IOC)

Versions et dépendances malveillantes d'Axios :

  • axios@1.14.1 (shasum : 2553649f2322049666871cea80a5d0d6adc700ca)
  • axios@0.30.4 (shasum : d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71)
  • plain-crypto-js@4.2.1 (shasum : 07d889e2dadce6f3910dcbc253317d28ca61c766)

Réseau :

  • C2: sfrclak[.]com / 142.11.206[.]73 / http://sfrclak[.]com:8000/6202033

Système de fichiers :

  • macOS : /Bibliothèque/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

Comptes des attaquants :

Comment se protéger contre l'installation de logiciels malveillants

Chaîne Aikido (https://github.com/AikidoSec/safe-chain) est un outil open source qui s'intègre à npm, yarn et pnpm. Il vérifie chaque paquet par rapport à la base de données de logiciels malveillants Aikido avant qu'il n'atteigne votre machine et impose un délai minimum configurable (48 heures par défaut), bloquant ainsi les versions nouvellement publiées jusqu'à ce qu'elles aient été validées. Dans cette attaque visant Axios, plain-crypto-js@4.2.1 Il n'existait que depuis moins de 24 heures avant que les versions compromises d'Axios ne l'intègrent. Le simple contrôle d'âge de Safe Chain aurait suffi à le bloquer.

Gratuit, aucun jeton requis :

curl -fsSL https://github.com/AikidoSec/safe-chain/releases/latest/download/install-safe-chain.sh | sh

Article en cours de rédaction... Restez informé pour les mises à jour.

{{cta}}

Partager :

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

Abonnez-vous pour les actualités sur les menaces.

4,7/5
Fatigué des faux positifs ?
Essayez Aikido, comme 100 000 autres.
Commencez maintenant
Obtenez une démonstration personnalisée

Approuvé par plus de 100 000 équipes

Réserver maintenant
Analysez votre application à la recherche d'IDORs et de chemins d'attaque réels

Approuvé par plus de 100 000 équipes

Démarrer l'analyse
Découvrez comment le pentest IA teste votre application

Approuvé par plus de 100 000 équipes

Démarrer les tests
Vérifiez si vous êtes concerné par l'attaque visant la chaîne d'approvisionnement d'Axios

Gratuit, aucune carte de crédit requise

Rechercher des logiciels malveillants

Sécurisez votre environnement dès maintenant.

Sécurisez votre code, votre cloud et votre environnement d’exécution dans un système centralisé unique.
Détectez et corrigez les vulnérabilités rapidement et automatiquement.

Aucune carte de crédit requise | Résultats en 32 secondes.