Piratage Axios : Une attaque supply chain diffuse un malware RAT

Partager
Piratage Axios : Une attaque supply chain diffuse un malware RAT

Les faits

Qui

La bibliothèque concernée est axios, un client HTTP largement utilisé dans l'écosystème JavaScript, tant côté serveur (Node.js) que côté client. Axios est référencé et distribué via le registre npm, et son niveau d'adoption en fait une cible logique pour des opérateurs malveillants ².

Quoi

Des versions d'axios ont été détournées pour livrer un Remote Access Trojan (RAT) capable d'opérer sur plusieurs systèmes d'exploitation. Le code malveillant permet d'exécuter des commandes à distance, de transférer des fichiers, de collecter des informations systèmes et d'installer des mécanismes de persistance. Plusieurs analyses techniques publiques détaillent les composants du malware et le second stade de téléchargement utilisé par l'attaquant ¹.

Quand

Les premières alertes sont apparues lorsque des chercheurs et des équipes de sécurité ont repéré des versions suspectes publiées sur npm. La détection d'artefacts malveillants dans le registre a déclenché des signalements et des analyses publiques à partir de ces découvertes ¹.

La compromission a été observée au niveau du registre npm, point d'entrée principal pour la distribution d'axios. Étant donné le volume de téléchargements hebdomadaires d'axios, l'impact potentiel touche un grand nombre de projets qui intègrent la bibliothèque directement ou via des dépendances transverses ².

Comment

Les techniques utilisées suivent des schémas déjà vus dans des attaques de la chaîne d'approvisionnement:

  • Compromission de comptes de mainteneurs ou d'outils CI/CD pour publier des versions infectées.
  • Ajout de scripts postinstall qui s'exécutent au moment de l'installation et lancent des charges utiles.
  • Inclusion de dépendances malveillantes dans l'arborescence du package ou modification d'artefacts binaires pour intégrer un downloader de second stade.

Plusieurs rapports open source décrivent le fragment de code et le mécanisme de chargement à distance qui ont permis la diffusion du RAT ¹.

Contexte

Historique des attaques supply chain

Les registres de paquets (npm, PyPI, etc.) sont des vecteurs récurrents pour des campagnes de distribution de malwares. Les modes opératoires comprennent le typosquatting, la compromission de comptes de mainteneurs et la publication d'artefacts corrompus. Ces incidents ont montré que la chaîne de distribution logicielle est souvent le maillon faible, car une seule mise à jour compromise peut toucher des milliers de projets en cascade.

Particularité d'axios

Axios n'est pas un composant anodin : sa présence dans des projets critiques, des outils CLI et des images de build en fait une plate-forme d'attaque efficace. Un package très téléchargé augmente la probabilité que le logiciel malveillant atteigne des environnements de production, des machines de développeurs et des runners CI/CD ².

Pourquoi les projets sont exposés

Plusieurs facteurs expliquent la vulnérabilité des écosystèmes npm :

  • Dépendances transitives qui complexifient l'inventaire et rendent l'audit manuel peu réaliste.
  • Confiance implicite dans les versions publiées : beaucoup privilégient la vélocité des mises à jour plutôt que la vérification cryptographique des artefacts.
  • Pipelines automatisés et runners avec des élévations de privilèges ou des secrets accessibles peuvent propager une compromission à l'ensemble des environnements.
  • Mainteneurs sans authentification forte ou sans protection des comptes, rendant le vol d'identifiants plus simple pour un attaquant.

Des mesures comme l'authentification multi-facteurs pour les mainteneurs et la vérification des signatures des paquets réduisent significativement la surface d'attaque.

Réactions et conséquences

Réponses officielles

Quand une publication malveillante est identifiée, les mainteneurs et les équipes de sécurité procèdent généralement au marquage ou au retrait des versions compromise, à la révocation de clés et à la publication de correctifs. Les équipes d'incident doivent ensuite enquêter, analyser les artefacts affectés et tracer l'impact dans les logs pour établir l'étendue de la compromission.

Impacts immédiats sur les projets

Les conséquences varient selon l'usage d'axios :

  • Applications serveur : risque d'exfiltration de données, d'exécution de commandes arbitraires et de mouvements latéraux vers d'autres services.
  • Chaînes CI/CD : compromission des runners, fuite de secrets stockés dans les environnements de build et pollution des images construites.
  • Environnements de développement et bundles front-end : si le malware s'exécute sur la machine d'un développeur, il peut exposer des clés, tokens ou modifier des artefacts de build.

Conséquences business

Les coûts d'un incident comprennent l'enquête, la remédiation, le support juridique, la notification des parties prenantes et, en cas de fuite de données, les conséquences réglementaires et de réputation.

Observables et comportements techniques relevés

Parmi les comportements identifiés :

  • Lancement de processus enfants via child_process.exec pour récupérer un binaire supplémentaire.
  • Création de tâches planifiées ou d'entrées de démarrage pour assurer la persistance.
  • Communication chiffrée vers des serveurs de commande et contrôle (C2) sur HTTPS pour dissimuler le trafic.
  • Chiffrement local des données avant exfiltration afin de contourner certains outils DLP.

Détection et réponse opérationnelle

Illustration cybersécurité

Signes à surveiller :

  • Connexions réseau sortantes inhabituelles initiées par des processus node ou npm.
  • Exécution de scripts postinstall lors des installations de dépendances qui tentent des téléchargements externes.
  • Apparition de binaires inconnus ou d'exécutables lancés depuis les répertoires node_modules.
  • Modifications inattendues de package.json, lockfiles ou artefacts de build.

En réponse immédiate, il faut isoler les environnements suspects, collecter les logs npm et CI/CD, et analyser les captures réseau pour retracer le point d'injection.

Mesures pratiques et préventives

Actions immédiates pour une organisation affectée

  • Bloquez immédiatement les versions d'axios signalées comme compromises dans vos règles de gestion des dépendances. ²
  • Passez vos builds sur un repository miroir interne pour contrôler les artefacts qui entrent dans votre chaîne.
  • Révoquez et faites tourner tous les tokens et credentials potentiellement exposés dans les runners et comptes de publication.
  • Restaurer les runners CI/CD à partir d'images de référence saines et vérifier l'intégrité des images de build.
  • Auditez les logs pour identifier les installations et exécutions suspectes au moment des mises à jour.

Mesures structurelles pour réduire le risque supply chain

  • Générer et exploiter des SBOM (Software Bill of Materials) pour cartographier les composants externes et leurs versions.
  • Mettre en place des pipelines conformes aux niveaux SLSA pour assurer la traçabilité des artefacts de build.
  • Forcer la vérification des signatures numériques des paquets et vérifier l'intégrité des artefacts avant déploiement.
  • Mettre en place des politiques de pinning et des scans automatisés pour détecter rapidement les changements de versions suspectes.
  • Exécuter les scripts d'installation dans des sandboxes ou des runners à faible privilège pour limiter les actions possibles en cas d'infection.
  • Imposer l'authentification multi-facteurs et la rotation régulière des secrets pour les comptes des mainteneurs.

Impact attendu si ces pratiques sont généralisées

Une meilleure hygiène des comptes, l'adoption de SBOM et de contrôles de build rigoureux diminuent la probabilité qu'une seule publication compromise atteigne des environnements critiques. La coordination entre équipes de développement, sécurité et mainteneurs est nécessaire pour réduire durablement la surface d'attaque.

Notes de traçabilité

Pour suivre l'incident et vérifier l'état d'axios dans vos projets, consultez les analyses techniques publiées par la communauté ainsi que la page du package sur npm ¹ ².


Questions fréquentes

Comment vérifier si mon projet a été impacté par cette compromission d'axios ?

Inspectez vos lockfiles (package-lock.json, yarn.lock) et recherchez les versions d'axios récemment mises à jour. Comparez ces versions avec la liste des versions signalées comme compromises par les sources publiques ¹. Analysez les logs CI/CD et npm pour repérer l'exécution de scripts postinstall lors des installations et scrutez les captures réseau pour des connexions sortantes au moment des mises à jour.

Dois-je supprimer immédiatement axios de tous mes projets ?

Pas systématiquement. Vérifiez d'abord si la version utilisée est dans la liste des versions compromises. Si c'est le cas, bloquez la version et remplacez-la par une version saine publiée ou attendez la confirmation des mainteneurs. Utilisez un proxy npm interne pour contrôler la distribution et testez les builds dans des environnements isolés avant déploiement.

Quelles configurations CI réduisent le risque d'infection via npm ?

Exécutez les builds dans des runners éphémères et à faible privilège, ne stockez pas de secrets en clair dans les runners, activez la rotation des tokens et appliquez le principe du moindre privilège. Scannez et sandboxez l'exécution des scripts d'installation et centralisez la gestion des dépendances via un proxy interne.

Quels indicateurs techniques signalent une infection par un RAT distribué via une dépendance ?

Surveillez des connexions réseau inhabituelles depuis des processus node, l'exécution de scripts postinstall déclenchant des téléchargements externes, la création de services persistants ou de tâches planifiées après installation, et la présence de binaires inconnus lancés depuis les répertoires node_modules.

Sources

Lire la suite