Attaque de la chaîne d’approvisionnement : npm subit un coup dur ; le compte du mainteneur d’axios a été piraté, et les 300 millions de téléchargements hebdomadaires sont tous en difficulté

供應鏈攻擊重挫npm

L’organisation de recherche en sécurité Socket a détecté le 31 mars une attaque active par compromission de la chaîne d’approvisionnement visant le paquet central npm axios. L’attaquant a compromis le compte npm du principal mainteneur d’axios, jasonsaayman, a publié des versions malveillantes et injecté des dépendances malveillantes, afin de diffuser un cheval de Troie d’accès à distance (RAT) multiplateforme, ciblant les systèmes macOS, Windows et Linux.

Analyse de la chaîne d’attaque : du piratage du compte au processus complet d’auto-destruction du RAT

axios供應鏈攻擊 (Source : Socket)

Cet incident constitue une attaque de chaîne d’approvisionnement multi-étapes soigneusement orchestrée. L’attaquant s’est d’abord emparé du compte du mainteneur, en modifiant l’adresse e-mail en ifstap@proton.me, puis a utilisé les identifiants d’accès npm volés pour publier manuellement des versions malveillantes, en contournant entièrement le processus de publication officiel d’axios via GitHub Actions + OIDC Trusted Publisher. Les deux versions malveillantes ne correspondent à aucun commit, tag ou enregistrement de publication dans le dépôt GitHub.

Le travail de préparation de l’attaquant est également minutieux : il contrôle un autre compte (nrwise, nrwise@proton.me) qui a d’abord publié il y a environ 18 heures une version leurre propre plain-crypto-js@4.2.0 afin d’établir un historique, puis a publié le 30 mars à 23:59 UTC une version malveillante 4.2.1.

Après exécution du postinstall hook malveillant, le lanceur du RAT (setup.js) se connecte au serveur de commande et contrôle sfrclak[.]com:8000 pour déployer une charge utile spécifique à la plateforme. Une fois l’opération terminée, il s’auto-détruit et remplace package.json par un simple modèle sain, empêchant toute détection d’indices d’infection ultérieurs dans le répertoire node_modules.

Indicateurs techniques clés de l’attaque (IOC)

Versions du paquet malveillant : axios@1.14.1、axios@0.30.4、plain-crypto-js@4.2.1

Serveur C2 : sfrclak[.]com / 142.11.206.73 / [.]com:8000

Traces d’infection sur macOS : /Library/Caches/com.apple.act.mond

Traces d’infection sur Windows : %PROGRAMDATA%\wt.exe、%TEMP%\6202033.vbs

Traces d’infection sur Linux : /tmp/ld.py

Compte de l’attaquant : jasonsaayman(compromis)、nrwise(compte créé par l’attaquant)

Guide d’intervention d’urgence : vérifier l’exposition et les étapes de remédiation

Étant donné que le lanceur malveillant s’auto-détruit après exécution, il est impossible de confirmer l’infection en inspectant le répertoire node_modules. La bonne méthode consiste à vérifier directement si le lockfile (package-lock.json ou yarn.lock) contient des enregistrements des versions axios@1.14.1 ou axios@0.30.4.

Retour à une version saine : pour les utilisateurs 1.x, rétrograder vers axios@1.14.0 ; pour les utilisateurs 0.x, rétrograder vers axios@0.30.3, puis après avoir supprimé le répertoire plain-crypto-js depuis node_modules, réinstaller les dépendances.

Si vous trouvez dans le système des traces d’infection par RAT (com.apple.act.mond、wt.exe、ld.py), n’essayez pas de les supprimer sur place. Il faut reconstruire le système depuis un état connu comme sain et, immédiatement, faire tourner (rotater) tous les identifiants potentiellement exposés, notamment les jetons npm, les clés d’accès AWS, les clés privées SSH, les clés de configuration CI/CD et les valeurs des fichiers .env.

Pour les développeurs de cryptomonnaies et de Web3, axios est une bibliothèque HTTP essentielle utilisée par de nombreux protocoles DeFi pour les frontends, la gestion d’actifs cryptographiques et les services de requête de données on-chain. Un environnement de développement infecté peut conduire à la fuite de clés de portefeuille, de phrases mnémoniques ou de clés API vers l’attaquant ; il est recommandé de prioriser l’audit et la rotation de tous les identifiants sensibles.

Questions fréquentes

Comment confirmer si une version d’axios affectée est installée ?

Étant donné que le lanceur malveillant s’auto-détruit après exécution, il n’est pas possible de confirmer l’infection en se basant sur le répertoire node_modules. Il faut vérifier directement si le lockfile contient des enregistrements de axios@1.14.1 ou axios@0.30.4, et confirmer si un répertoire plain-crypto-js existe dans node_modules. Il est possible d’exécuter npm list axios ou de rechercher directement la chaîne de version dans le lockfile.

Quel impact spécifique cette attaque sur la chaîne d’approvisionnement a-t-elle pour les développeurs de cryptomonnaies et Web3 ?

axios est une bibliothèque HTTP couramment utilisée pour les applications front-end Web3 et les interfaces des protocoles DeFi. Un environnement de développement infecté peut exposer des identifiants sensibles tels que des clés privées, des phrases mnémoniques, des clés API d’exchanges ou des configurations CI/CD. Les développeurs concernés doivent prioriser l’audit et la rotation de tous les identifiants liés à la cryptographie susceptibles d’avoir été exposés.

Comment se prémunir contre les futures attaques de la chaîne d’approvisionnement npm ?

Les mesures de prévention principales incluent : dans le CI/CD, utiliser systématiquement npm ci --ignore-scripts pour désactiver les postinstall hooks ; fixer les versions des paquets de dépendances critiques ; examiner régulièrement l’historique des modifications du lockfile ; et déployer des outils comme Socket, Aikido, etc. pour surveiller en temps réel les logiciels malveillants dans les paquets de dépendances.

Avertissement : Les informations contenues dans cette page peuvent provenir de tiers et ne représentent pas les points de vue ou les opinions de Gate. Le contenu de cette page est fourni à titre de référence uniquement et ne constitue pas un conseil financier, d'investissement ou juridique. Gate ne garantit pas l'exactitude ou l'exhaustivité des informations et n'est pas responsable des pertes résultant de l'utilisation de ces informations. Les investissements en actifs virtuels comportent des risques élevés et sont soumis à une forte volatilité des prix. Vous pouvez perdre la totalité du capital investi. Veuillez comprendre pleinement les risques pertinents et prendre des décisions prudentes en fonction de votre propre situation financière et de votre tolérance au risque. Pour plus de détails, veuillez consulter l'avertissement.
Commentaire
0/400
Aucun commentaire