Threat Intelligence 4 min de lecture

Axios compromis sur npm : la Corée du Nord cible 100 millions de téléchargements par semaine

En bref

  • Axios (100M téléchargements/semaine sur npm) compromis le 30 mars 2026
  • Attaque attribuée à UNC1069 (Corée du Nord) par Google Threat Intelligence
  • RAT cross-platform WAVESHAPER.V2 déployé sur Windows, macOS et Linux via postinstall hook
  • 2 versions malveillantes (1.14.1 et 0.30.4) publiées en 39 minutes via un compte mainteneur compromis

Axios sur npm : 39 minutes pour compromettre des millions de projets

Le 30 mars 2026, l’écosystème JavaScript a subi l’une des attaques supply chain les plus significatives de l’année. Le package Axios, utilisé par plus de 100 millions de projets actifs sur npm chaque semaine, a été compromis pendant 39 minutes via le compte piraté de son mainteneur principal, jasonsaayman.

Deux versions malveillantes ont été publiées en succession rapide : 1.14.1 et 0.30.4. Tout projet ayant exécuté npm install pendant cette fenêtre temporelle a potentiellement installé le backdoor WAVESHAPER.V2, un RAT (Remote Access Trojan) cross-platform attribué au groupe nord-coréen UNC1069 par Google Threat Intelligence.

La mécanique de l’attaque

L’attaque a été préparée avec soin bien avant le déclenchement. La dépendance malveillante plain-crypto-js a été publiée sur npm environ 18 heures avant la compromission du compte Axios. Ce délai de pré-positionnement est caractéristique des opérations planifiées, permettant à la dépendance de ne pas attirer l’attention au moment critique.

Le mécanisme d’infection repose sur le postinstall hook de npm, un script exécuté automatiquement après l’installation d’un package. Les versions 1.14.1 et 0.30.4 d’Axios incluaient une référence à plain-crypto-js, dont le postinstall hook téléchargeait et exécutait WAVESHAPER.V2 sur le système cible.

WAVESHAPER.V2 est conçu pour fonctionner sur les trois systèmes d’exploitation principaux :

  • Windows : injection dans les processus système via API natives
  • macOS : persistence via LaunchAgent dans le répertoire utilisateur
  • Linux : exécution en arrière-plan avec suppression des traces après démarrage

Le RAT établit un canal de communication chiffré avec les serveurs de commande et contrôle d’UNC1069, permettant l’exfiltration de données, l’exécution de commandes à distance et le déploiement de charges utiles supplémentaires.

Suppression des traces

L’un des aspects les plus préoccupants de WAVESHAPER.V2 est sa capacité à s’auto-effacer après installation. Les scripts malveillants se suppriment une fois le backdoor implanté, ce qui complique l’analyse forensique post-incident. Les journaux npm ne conservent pas l’intégralité des métadonnées d’installation, rendant la détection difficile a posteriori.

Attribution à UNC1069

Google Threat Intelligence a publié une analyse détaillée attribuant cette attaque avec un niveau de confiance élevé au groupe UNC1069, un acteur de la menace affilié à la République populaire démocratique de Corée (RPDC). Ce groupe est connu pour cibler les développeurs de logiciels et les chaînes d’approvisionnement afin de compromettre des cibles en aval, notamment dans les secteurs financier et des cryptomonnaies.

L’attribution repose sur plusieurs indicateurs : les TTP (Tactiques, Techniques et Procédures) correspondent aux opérations précédentes d’UNC1069, l’infrastructure C2 partage des similarités avec des campagnes antérieures, et la sélection d’une cible à très fort volume de téléchargements est cohérente avec la stratégie du groupe.

Qui est affecté ?

Tout environnement ayant exécuté npm install, npm ci, ou tout processus d’intégration continue installant Axios entre 14h37 et 15h16 UTC le 30 mars 2026 est potentiellement compromis. Cela inclut :

  • Les pipelines CI/CD (GitHub Actions, GitLab CI, Jenkins, CircleCI)
  • Les environnements de développement local
  • Les Dockerfiles construisant des images avec npm install
  • Les outils de déploiement utilisant des dépendances npm non épinglées

Remédiation

1. Vérifier l’exposition

Examinez votre package-lock.json ou yarn.lock pour détecter les versions 1.14.1 ou 0.30.4 d’Axios. Recherchez également la présence de plain-crypto-js parmi les dépendances installées.

grep -r "\"axios\": \"1.14.1\"\|\"axios\": \"0.30.4\"" package-lock.json
grep -r "plain-crypto-js" node_modules/

2. En cas de détection

Si vous avez installé l’une de ces versions, considérez l’environnement comme compromis. Les actions prioritaires sont :

  • Rotation immédiate de tous les secrets présents dans l’environnement (tokens d’API, clés SSH, credentials de bases de données, variables d’environnement)
  • Analyse forensique des processus actifs et des connexions réseau sortantes
  • Reconstruction complète des environnements de build depuis une base propre
  • Vérification des déploiements en production effectués depuis des pipelines potentiellement compromis

3. Mesures préventives

  • Épinglez les versions de vos dépendances critiques dans package.json et validez les hachages via npm ci
  • Activez npm audit dans vos pipelines CI/CD
  • Utilisez un gestionnaire de mots de passe robuste pour protéger les credentials des comptes de publication npm

Lectures recommandées

Ces liens sont des liens affiliés. Si vous effectuez un achat via ces liens, nous pouvons recevoir une commission, sans coût supplémentaire pour vous.

  • Pro Cybersécurité : guide professionnel couvrant les attaques supply chain et la sécurisation des pipelines de développement.
  • NordPass : protégez les credentials de vos comptes de publication et réduisez le risque de compromission de compte mainteneur.

Sources

Partager :

Publicité

Articles liés