Avant-propos

Les chercheurs d’Unit 42 ont observé des répercussions importantes de l’attaque majeure de la supply chain ciblant la bibliothèque JavaScript d’Axios. L’attaque s’est produite après que le compte npm d’un mainteneur d’Axios a été détourné, ce qui a conduit à la publication de mises à jour malveillantes (versions v1.14.1 et v0.30.4).

Ces versions compromises ont introduit une dépendance cachée appelée plain-crypto-js. Celle-ci est un cheval de Troie d’accès à distance (RAT) multiplateforme capable d’affecter les systèmes Windows, macOS et Linux. Le logiciel malveillant a été conçu pour effectuer une reconnaissance et établir une persistance, avec une fonction supplémentaire d’autodestruction pour échapper à la détection.

Axios est une bibliothèque client HTTP populaire, basée sur des promesses (promise-based), pour JavaScript, utilisée pour effectuer des demandes d’API dans les navigateurs et Node.js. Il propose la transformation automatique des données JSON, l’interception des requêtes/réponses et l’annulation des requêtes, ce qui en fait un outil standard pour connecter les applications front-end aux services back-end.

L’analyse du malware utilisé par les attaquants révèle des points communs avec des opérations précédemment signalées comme impliquant la République populaire démocratique de Corée (Corée du Nord).

Cette campagne a atteint les secteurs suivants aux États-Unis, en Europe, au Moyen-Orient, en Asie du Sud et en Australie :

  • Services aux entreprises
  • Service client
  • Services financiers
  • Hautes technologies
  • Enseignement supérieur
  • Assurances
  • Médias et divertissements
  • Matériel médical
  • Services professionnels et juridiques
  • Services de vente au détail

Cet article recommande un certain nombre de mesure de neutralisation de l’attaque.

Les clients de Palo Alto Networks sont mieux protégés contre les menaces décrites dans cet article grâce aux produits et services suivants :

L’équipe de réponse à incident d’Unit 42 peut également intervenir en cas de compromission ou réaliser une évaluation proactive afin de réduire votre niveau de risque.

Les vulnérabilités dont il est question Supply Chain, Menaces de grande envergure

Détails de l’attaque contre la supply chain d’Axios

L’attaquant a publié deux versions compromises d’Axios (v1.14.1 et v0.30.4), mais il n’a pas modifié le code source d’Axios. Au lieu de cela, il a injecté plain-crypto-js@4.2.1 dans le fichier package.json en tant que dépendance d’exécution.

Le dropper post-installation

Avec les versions compromises d’Axios, lorsqu’un développeur exécute npm install axios, npm résout automatiquement l’arbre des dépendances et installe plain-crypto-js. Cela déclenche le hook de cycle de vie post-installation de npm, qui exécute en arrière-plan un script de dropper Node.js fortement obfusqué nommé setup.js.

Pour obfusquer ses opérations, setup.js utilise un schéma de codage à deux couches impliquant l’inversion de chaîne, le décodage Base64 et un chiffrement XOR utilisant la clé OrDeR_7077.

Récupération de payloads spécifiques à la plateforme

Le dropper interroge le système d’exploitation et envoie une requête HTTP POST à un serveur de commande et de contrôle (C2) à l’adresse sfrclak[.]com:8000. Pour que ce trafic sortant ressemble à des requêtes de registre npm anodines, il ajoute des chemins spécifiques à la plateforme :

  • packages.npm[.]org/product0 pour macOS
  • packages.npm[.]org/product1 pour Windows
  • packages.npm[.]org/product2 pour Linux

La figure 1 montre les commandes pour cette première étape de téléchargement.

Extraits de code de commandes pour chaque système d’exploitation : macOS, Windows et Linux.
Figure 1. Première étape de téléchargement par plateforme.

Exécution du RAT

Le serveur C2 délivre un payload différent en fonction du système d’exploitation de la victime :

  • macOS : le dropper utilise AppleScript pour télécharger un binaire Mach-O compilé en C++, l’enregistre dans /Library/Caches/com.apple.act.mond, le rend exécutable et le lance silencieusement via /bin/zsh.
  • Windows : Le dropper recherche le binaire Windows PowerShell et le copie dans %PROGRAMDATA%\wt.exe. Il utilise ensuite VBScript pour récupérer et lancer un script PowerShell secondaire de type cheval de Troie d'accès à distance RAT, qui est par la suite exécuté par wt.exe. Il établit également sa persistance par le biais d'une clé de registre d'exécution (Run key).
  • Linux : le dropper utilise la commande execSync de Node.js pour télécharger un script RAT Python dans /tmp/ld.py, et l’exécute en arrière-plan à l’aide de la commande nohup.

Architecture RAT unifiée

Bien qu’ils soient écrits dans trois langages différents (C++, PowerShell et Python), les trois payloads fonctionnent comme des implémentations du même framework RAT.

Ils utilisent tous un protocole C2 identique, envoient des données JSON codées en Base64 par le biais d’une requête HTTP POST et envoient une balise au serveur toutes les 60 secondes. Le serveur C2 accepte les quatre mêmes commandes de l’attaquant :

  • kill (auto-termination)
  • runscript (exécuter des commandes shell/script)
  • peinject (dépôt et exécution de payloads binaires)
  • rundir (énumérer les répertoires)

Toutes les variantes du RAT utilisent une chaîne d’agent utilisateur codée en dur, très anachronique, qui usurpe l’identité d’Internet Explorer 8 sur Windows XP : mozilla/4.0 (compatible ; msie 8.0 ; windows nt 5.1 ; trident/4.0.

Chevauchement avec WAVESHAPER

Une première analyse du payload confirme l’existence d’un chevauchement avec WAVESHAPER. WAVESHAPER est une backdoor C++ qui communique avec son serveur C2 à l’aide de la bibliothèque curl, en utilisant soit HTTP, soit HTTPS, comme spécifié dans les arguments de la ligne de commande.

L’adresse du serveur C2 est également fournie via des paramètres de ligne de commande, ce qui permet à la backdoor de télécharger et d’exécuter des payloads arbitraires à partir de l’infrastructure de l’attaquant.

WAVESHAPER fonctionne également comme un daemon en se transformant en un processus enfant qui s’exécute en arrière-plan, indépendamment de la session parent. Il collecte les informations système renvoyées, qui sont envoyées au serveur C2 dans une requête HTTP POST.

Nettoyage forensique

L’ensemble du processus, de l’installation à la compromission, prend environ 15 secondes. Une fois le payload lancé avec succès, le dropper Node.js effectue un nettoyage anti-forensique agressif. Il supprime le fichier setup.js et le hook post-installation, puis remplace le fichier package.json compromis par un fichier leurre propre nommé package.md. Cela garantit que les développeurs qui inspectent leurs dossiers node_modules après l’installation ne trouveront pas de signes évidents de code malveillant.

Requêtes de l'équipe de Threat Hunting d’Unit 42

L’équipe de threat hunting d’Unit 42 continue de surveiller activement toute tentative d’exploitation de cette situation chez nos clients, à l’aide de Cortex XDR et des requêtes XQL ci-dessous. Les clients Cortex XDR peuvent également utiliser ces requêtes pour rechercher d’éventuels indicateurs d’exploitation.

Conclusion

Depuis le début de l’année 2026, les attaquants ont augmenté la fréquence et l’ampleur des opérations de la supply chain npm. La sécurisation du pipeline d’intégration continue/de déploiement continu (CI/CD) devrait être une priorité absolue pour n’importe quelle organisation, afin d’atténuer cette menace croissante.

Sur la base de la quantité d’informations publiquement disponibles, nous recommandons vivement les actions suivantes :

Évaluation et isolement immédiats

  • Vérifier la présence de paquets malveillants : recherchez dans vos répertoires projects et node_modules les versions compromises d’Axios (1.14.1 et 0.30.4) et le paquet plain-crypto-js injecté (versions 4.2.0 et 4.2.1).
  • Vérifier la présence d’artefacts liés au malware : inspectez les systèmes à la recherche d’indicateurs de compromission spécifiques à la plateforme, tels que /Library/Caches/com.apple.act.mond (macOS), %PROGRAMDATA%\wt.exe (Windows) et /tmp/ld.py (Linux).
  • Isoler les systèmes affectés : si vous découvrez des paquets malveillants ou des artefacts de RAT, isolez immédiatement le système du réseau.

Assainissement et reconstruction

  • Reconstruire à partir de zéro : si un environnement est compromis, n’essayez pas de nettoyer les malwares tant qu’ils sont encore en place. Au lieu de cela, reconstruisez complètement l’environnement à partir d’un état connu.
  • Vider les caches : videz les caches de vos gestionnaires de paquets locaux et partagés (npm, yarn, pnpm) sur tous les postes de travail et les serveurs de build afin d’éviter toute réinfection lors d’installations ultérieures.

Rotation complète des identifiants

  • Se préparer à une compromission : si le paquet malveillant a été exécuté, vous devez supposer que tous les secrets accessibles sur cette machine ont été dérobés.
  • Changer tous les secrets : procédez immédiatement à la rotation des matériels d’authentification, y compris les jetons npm, les clés d’accès AWS, les clés privées SSH, les matériels d’authentification cloud (Google Cloud, Azure), les secrets CI/CD et toutes les valeurs sensibles stockées dans les fichiers .env.

Contrôle de version et épinglage des dépendances

  • Rétrogradation d’Axios : mettez immédiatement à niveau vers les dernières versions sûres connues d’Axios : 1.14.0 ou 0.30.3.
  • Dépendances de l’épingle : épinglez Axios à ces versions sûres dans votre fichier package-lock.json pour éviter les mises à niveau accidentelles.
  • Utiliser les substitutions : ajoutez un bloc de substitutions dans la configuration de votre paquet pour empêcher les versions malveillantes d’être résolues de manière transitoire par d’autres paquets.
  • Restreindre les référentiels d’entreprise : configurez les référentiels npm gérés par l’entreprise pour qu’ils ne servent que les bonnes versions connues d’Axios.

Défense et surveillance des réseaux

  • Bloquer le trafic C2 : bloquez tout le trafic sortant vers le domaine C2 (sfrclak[.]com) et l’adresse IP (142.11.206[.]73) de l’attaquant.
  • Contrôler les journaux : surveillez les journaux du réseau pour détecter les connexions sortantes suspectes sur le port 8000, les comportements de beacon et les requêtes HTTP POST anormales.

Durcissement du CI/CD et du pipeline

  • Audit des pipelines CI/CD : Examinez les journaux des builds automatisés pour vérifier si les versions concernées ont été installées lors d’exécutions récentes. Changez tous les secrets pour les workflows qui les ont exécutés.
  • Mettre en pause et valider les déploiements : mettez temporairement en pause les déploiements CI/CD pour les projets reposant sur Axios, afin de valider que vos builds ne récupèrent pas automatiquement les « dernières » versions empoisonnées.
  • Désactiver les scripts de cycle de vie : utilisez l’option « --ignore-scripts » lors des installations CI/CD pour empêcher explicitement les hooks post installation npm de s’exécuter pendant les builds automatisées.

Sécurité à long terme des développeurs

  • Environnements Sandbox : isolez les environnements de développement à l’aide de conteneurs ou sandboxes afin de limiter l’accès au système de fichiers de l’hôte.
  • Secrets du coffre : migrez les secrets en clair hors des machines des développeurs et dans des coffres-forts sécurisés ou des keychains d’OS (à l’aide d’outils comme aws-vault) afin que les scripts malveillants ne puissent pas les récupérer de manière programmatique.
  • Déployer l’EDR (détection et réponse sur les terminaux) : assurez-vous que les solutions EDR sont déployées sur les postes de travail des développeurs afin de surveiller les processus suspects issus des applications Node.js.

Palo Alto Networks a partagé nos conclusions avec les autres membres de la Cyber Threat Alliance (CTA). Les membres de la CTA s’appuient sur ces renseignements pour déployer rapidement des mesures de protection auprès de leurs clients et perturber de manière coordonnée les activités des cybercriminels. Cliquez ici pour en savoir plus sur la Cyber Threat Alliance.

Les clients Palo Alto Networks bénéficient d’une protection renforcée grâce à nos solutions, comme détaillé ci-dessous. Nous mettrons à jour ce Bulletin sécurité au fur et à mesure de l’évolution de la situation et de l’arrivée de nouvelles informations pertinentes.

Protections de Palo Alto Networks contre les attaques de la supply chain

Les clients Palo Alto Networks peuvent s’appuyer sur un large éventail de protections intégrées aux produits et de mises à jour pour identifier et contrer cette menace.

Vous pensez que votre entreprise a été compromise ? Vous devez faire face à une urgence ? Contactez l’équipe Unit 42 de réponse à incident ou composez l’un des numéros suivants :

  • Amérique du Nord : Gratuit : +1 (866) 486-4842 (866.4.UNIT42)
  • Royaume-Uni : +44 20 3743 3660
  • Europe et Moyen-Orient : +31.20.299.3130
  • Asie : +65.6983.8730
  • Japon : +81 50 1790 0200
  • Australie : +61.2.4062.7950
  • Inde : 000 800 050 45107
  • Corée du Sud : +82.080.467.8774

Advanced WildFire

Les modèles de Machine Learning et les techniques d’analyse d’Advanced WildFire ont été mis à jour sur la base des indicateurs de compromission (IoC) identifiés dans cette recherche.

Cloud-Delivered Security Services pour les pare-feu nouvelle génération

Advanced URL Filtering et Advanced DNS Security permettent d’identifier les adresses IP et domaines associés à cette activité comme étant malveillants.

Cortex AgentiX

Les analystes en sécurité peuvent utiliser le langage naturel pour interroger l'agent Cortex AgentiX Threat Intel afin d'extraire les indicateurs de compromission (IoC - Indicators of Compromise) de fichiers à partir de ce bulletin de sécurité (threat brief). Ils devront ensuite les enrichir, rechercher leurs éventuelles occurrences (sightings) dans leur locataire (tenant) Cortex ainsi que les alertes associées, et fournir une synthèse rapide de l'impact sur l'organisation.

Cortex XDR et XSIAM

Cortex XDR et XSIAM offrent une défense multicouche pour aider à protéger contre l’accès initial, le C2 et le mouvement latéral potentiel décrits dans cet article. Il s’agit notamment de Behavioral Threat Protection (BTP), Advanced WildFire et Cortex Analytics.

Plus précisément, nous avons observé une prévention prête à l’emploi (OotB) via Advanced WildFire et BTP pour les deuxièmes étapes de cette attaque sur Windows et macOS. Cortex Analytics peut aider à détecter les activités C2 et les activités suspectes de la supply chain à l’aide de nos détecteurs sur mesure décrits dans les articles suivants :

Nous conseillons à nos clients de mettre à niveau les agents vers les versions prises en charge et la dernière mise à jour du contenu pour bénéficier de la meilleure protection possible.

Cortex Cloud

La plateforme Cortex Cloud fournit des opérations de détection et de prévention pour les deux premières étapes de la chaîne d’attaque d’Axios. Il s’agit notamment de la sécurité de la supply chain logicielle, de la sécurité des applications (AppSec), de la protection du workload dans le cloud (CWP), de Cortex XDR et de XSIAM.

Chaque phase de l’attaque peut être associée à une capacité de Cortex Cloud qui aide à la prévenir ou à la détecter, depuis les opérations de vérification de l’éditeur de confiance CI/CD jusqu’à la surveillance post-installation en cours d’exécution et à la détection de la persistance des terminaux.

Indicateurs de compromission

Hachages SHA256

  • ad8ba560ae5c4af4758bc68cc6dcf43bae0e0bbf9da680a8dc60a9ef78e22ff7
  • fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf
  • cdc05cd30eb53315dadb081a7b942bb876f0d252d20e8ed4d2f36be79ee691fa
  • 8449341ddc3f7fcc2547639e21e704400ca6a8a6841ae74e57c04445b1276a10
  • 01c9484abc948daa525516464785009d1e7a63ffd6012b9e85b56477acc3e624
  • 7b47ed28e84437aee64ffe9770d315c1b984135105f7f608a8b9579517bc0695
  • 526ab39d1f56732e4e926715aaa797feb13b1ae86882ec570a4d292e7fdc3699
  • a98e04dec3a7fe507eb30c72da808bad60bc14d9d80f9770ec99c438faa85a1a
  • 0d83030ab8bfba675fc1661f0756b6770be7dd80b1b718de3d68a01f2e79a5f4
  • 92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a
  • 58401c195fe0a6204b42f5f90995ece5fab74ce7c69c67a24c61a057325af668
  • fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf
  • e10b1fa84f1d6481625f741b69892780140d4e0e7769e7491e5f4d894c2e0e09
  • f7d335205b8d7b20208fb3ef93ee6dc817905dc3ae0c10a0b164f4e7d07121cd
  • 617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101
  • e49c2732fb9861548208a78e72996b9c3c470b6b562576924bcc3a9fb75bf9ff
  • 92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a
  • 506690fcbd10fbe6f2b85b49a1fffa9d984c376c25ef6b73f764f670e932cab4
  • 4465bdeaddc8c049a67a3d5ec105b2f07dae72fa080166e51b8f487516eb8d07
  • fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf
  • 58401c195fe0a6204b42f5f90995ece5fab74ce7c69c67a24c61a057325af668
  • 5bb67e88846096f1f8d42a0f0350c9c46260591567612ff9af46f98d1b7571cd
  • 59336a964f110c25c112bcc5adca7090296b54ab33fa95c0744b94f8a0d80c0f
  • a224dd73b7ed33e0bf6a2ea340c8f8859dfa9ec5736afa8baea6225bf066b248
  • 5e2ab672c3f98f21925bd26d9a9bba036b67d84fde0dfdbe2cf9b85b170cab71
  • 20df0909a3a0ef26d74ae139763a380e49f77207aa1108d4640d8b6f14cab8ca
  • 5b5fbc627502c5797d97b206b6dcf537889e6bea6d4e81a835e103e311690e22
  • 506690fcbd10fbe6f2b85b49a1fffa9d984c376c25ef6b73f764f670e932cab4
  • 4465bdeaddc8c049a67a3d5ec105b2f07dae72fa080166e51b8f487516eb8d07
  • 9c64f1c7eba080b4e5ff17369ddcd00b9fe2d47dacdc61444b4cbfebb23a166c

Adresses IP et domaines

  • 142.11.206[.]73
  • sfrclak[.]com
  • callnrwise[.]com
  • hxxp://sfrclak[.]com:8000
  • hxxp://sfrclak[.]com:8000/6202033

Mise à jour le 1er avril 2026 à 13h15 PT pour ajouter la couverture pour Advanced WildFire.

Mis à jour le 9 avril 2026 à 8 h 50 (heure du Pacifique) pour ajouter la couverture par Advanced Threat Prevention.

Mis à jour le 13 avril 2026 à 12 h 50 (heure du Pacifique) pour clarifier le mode d'exécution du cheval de Troie d'accès à distance (RAT) dans sa version Windows. Ajout de la couverture par Cortex AgentiX.

Enlarged Image