Google attribue l'attaque de la chaîne d'approvisionnement Axios à l'acteur de menace nord-coréen UNC1069
<strong>Google</strong> a officiellement attribué le compromis de la chaîne d'approvisionnement du populaire package npm Axios à <strong>UNC1069</strong>, un acteur de menace nord-coréen motivé par des gains financiers. L'attaque a impliqué l'injection de code malveillant dans le package pour livrer une backdoor multiplateforme capable d'infecter les systèmes Windows, macOS et Linux.

<strong>Google</strong> a formellement attribué le compromis de la chaîne d'approvisionnement du populaire package npm Axios à un groupe d'activité de menace nord-coréen motivé par des gains financiers, suivi sous le nom <strong>UNC1069</strong>.
« Nous avons attribué l'attaque à un acteur de menace présumé nord-coréen que nous suivons sous le nom UNC1069 », a déclaré John Hultquist, analyste principal au <strong>Google</strong> Threat Intelligence Group (GTIG), à The Hacker News dans un communiqué.
« Les hackers nord-coréens ont une profonde expérience des attaques de la chaîne d'approvisionnement, qu'ils ont historiquement utilisées pour voler des cryptomonnaies. L'étendue complète de cet incident n'est pas encore claire, mais compte tenu de la popularité du package compromis, nous nous attendons à ce qu'il ait des impacts considérables. »
### Détails de l'attaque
Cette annonce intervient après que des acteurs de menace ont pris le contrôle du compte npm du mainteneur du package pour publier deux versions troyennes, 1.14.1 et 0.30.4, qui ont introduit une dépendance malveillante nommée « plain-crypto-js » utilisée pour livrer une backdoor multiplateforme capable d'infecter les systèmes Windows, macOS et Linux.
Plutôt que d'introduire des modifications de code dans Axios, l'attaque exploite un hook postinstall dans le fichier « package.json » de la dépendance malveillante pour obtenir une exécution furtive. Une fois le package Axios compromis installé, npm déclenche automatiquement l'exécution du code malveillant en arrière-plan.
Plus précisément, le package « plain-crypto-js » fonctionne comme un « véhicule de livraison de payload » pour un dropper JavaScript obfusqué nommé SILKBELL (« setup.js »), qui récupère la prochaine étape appropriée à partir d'un serveur distant en fonction du système d'exploitation de la victime.
Comme détaillé précédemment, la branche d'exécution Windows livre un malware PowerShell, un binaire C++ Mach-O pour macOS, et une backdoor Python pour les systèmes Linux. Le dropper effectue également un nettoyage pour se supprimer et remplacer le fichier « package.json » du package « plain-crypto-js » par une version propre qui ne contient pas le hook postinstall.
<table><tbody><tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-INPXY0ZSI_LBYJhbmZyqamH1PQlfh5ZfryzZIPg0Nn_ojjuKO1XO2RHZn7PZfkSw_jIew5EJoEHmrcJD3P3a-KG1Q5C5ofTMzfU28IE_Jha5sGl8E1XRJRorEQZidf-i9QKCt7FP96GFKrl2aYRqghFIjzz3ihMXw9cuFRhVXgmuMbjOIF5vClUOsLTu/s1600/elastic.jpeg"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-INPXY0ZSI_LBYJhbmZyqamH1PQlfh5ZfryzZIPg0Nn_ojjuKO1XO2RHZn7PZfkSw_jIew5EJoEHmrcJD3P3a-KG1Q5C5ofTMzfU28IE_Jha5sGl8E1XRJRorEQZidf-i9QKCt7FP96GFKrl2aYRqghFIjzz3ihMXw9cuFRhVXgmuMbjOIF5vClUOsLTu/s1600/elastic.jpeg" data-original-width="1864" data-original-height="1168" alt=""></a></td></tr><tr><td>Source de l'image : <strong>Elastic</strong> Security Labs</td></tr></tbody></table>
### Backdoor WAVESHAPER.V2
La backdoor, nommée WAVESHAPER.V2, est considérée comme une version mise à jour de WAVESHAPER, une backdoor C++ déployée par <strong>UNC1069</strong> dans des attaques visant le secteur des cryptomonnaies. L'acteur de menace est opérationnel depuis 2018. Les liens de l'attaque de la chaîne d'approvisionnement avec <strong>UNC1069</strong> ont été signalés pour la première fois par <strong>Elastic</strong> Security Labs, citant des chevauchements de fonctionnalités.
Les trois variantes de WAVESHAPER.V2 prennent en charge quatre commandes différentes, tout en beaconnant vers le serveur de commande et de contrôle (C2) à intervalles de 60 secondes :
* <strong>kill</strong>, pour terminer le processus d'exécution du malware.
* <strong>rundir</strong>, pour énumérer les listes de répertoires, ainsi que les chemins de fichiers, les tailles et les horodatages de création/modification.
* <strong>runscript</strong>, pour exécuter des commandes AppleScript, PowerShell ou shell en fonction du système d'exploitation.
* <strong>peinject</strong>, pour décoder et exécuter des binaires arbitraires.
« WAVESHAPER.V2 est une évolution directe de WAVESHAPER, une backdoor macOS et Linux précédemment attribuée à UNC1069 », ont déclaré <strong>Mandiant</strong> et GTIG. « Alors que le WAVESHAPER original utilise un protocole C2 binaire léger et brut et emploie un empaquetage de code, WAVESHAPER.V2 communique en utilisant JSON, collecte des informations système supplémentaires et prend en charge davantage de commandes de backdoor. »
« Malgré ces améliorations, les deux versions acceptent leur URL C2 dynamiquement via des arguments de ligne de commande, partagent des comportements de sondage C2 identiques et une chaîne User-Agent inhabituelle, et déploient des payloads secondaires dans des répertoires temporaires identiques (par exemple, /Library/Caches/com.apple.act.mond). »
### Attribution nord-coréenne
Les liens avec la Corée du Nord sont également renforcés par le fait que le binaire macOS fait référence à des chemins de build développeur tels que « Jain_DEV/client_mac/macWebT/macWebT », où « macWebT » est directement lié au module « webT » de <strong>BlueNoroff</strong> des campagnes de malware RustBucket et Hidden Risk en 2023, selon le chercheur Giuseppe Massaro.
### Atténuation
Pour atténuer la menace, il est conseillé aux utilisateurs d'auditer les arbres de dépendances pour les versions compromises (et de rétrograder vers une version sûre, si trouvée), d'épingler Axios à une version sûre connue dans le fichier « package-lock.json » pour éviter les mises à niveau accidentelles, de vérifier la présence de « plain-crypto-js » dans « node_modules », de terminer les processus malveillants, de bloquer le domaine C2 (« sfrclak[.]com », adresse IP : 142.11.206[.]73), d'isoler les systèmes affectés et de faire pivoter toutes les informations d'identification.
« L'attaque Axios doit être comprise comme un modèle, pas comme un événement unique. Le niveau de sophistication opérationnelle documenté ici, y compris les identifiants de mainteneur compromis, les payloads pré-positionnés construits pour trois systèmes d'exploitation, les deux branches de publication touchées en moins de 40 minutes, et l'auto-destruction médico-légale intégrée, reflète un acteur de menace qui a planifié cela comme une opération évolutive », a déclaré Tomislav Peričin, architecte logiciel en chef chez ReversingLabs, à The Hacker News.
« Si cette campagne apparaît maintenant dans PyPI et NuGet, cela est cohérent avec ce que les mécanismes d'attaque suggèrent déjà : l'objectif était une portée maximale des développeurs. Les organisations doivent auditer non seulement leurs dépendances npm, mais aussi chaque gestionnaire de paquets alimentant leurs pipelines de build, et traiter tous les secrets exposés dans les environnements affectés comme compromis, quel que soit le registre qu'ils ont touché. »