🌐 Contexte

Publié le 31 mars 2026 par le Google Threat Intelligence Group (GTIG) / Mandiant, cet article documente une attaque de supply chain active ciblant le package NPM axios, l’une des bibliothèques JavaScript les plus populaires au monde (plus de 100 millions de téléchargements hebdomadaires pour la version 1.x).

🎯 Déroulement de l’attaque

Entre le 31 mars 2026 00:21 et 03:20 UTC, un attaquant a compromis le compte mainteneur du package axios (en changeant l’adresse email associée vers ifstap@proton.me) et introduit une dépendance malveillante nommée plain-crypto-js (version 4.2.1) dans les versions axios 1.14.1 et 0.30.4.

La dépendance malveillante exploite le hook postinstall du fichier package.json pour exécuter silencieusement un dropper JavaScript obfusqué nommé setup.js (SILKBELL) lors de l’installation du package.

🔬 Analyse technique du malware

SILKBELL (setup.js) :

  • Utilise une routine d’obfuscation XOR + Base64 pour masquer l’URL C2 et les commandes d’exécution
  • Charge dynamiquement fs, os, execSync pour évasion d’analyse statique
  • Détecte l’OS cible et déploie des payloads spécifiques :
    • Windows : copie powershell.exe vers %PROGRAMDATA%\wt.exe, télécharge un script PS1 via curl (POST body packages.npm.org/product1), exécution avec bypass de politique
    • macOS : télécharge un binaire Mach-O natif vers /Library/Caches/com.apple.act.mond (POST body packages.npm.org/product0)
    • Linux : télécharge un backdoor Python vers /tmp/ld.py (POST body packages.npm.org/product2)
  • Tente de s’auto-supprimer et de restaurer le package.json original après exécution

WAVESHAPER.V2 (backdoor final) :

  • Écrit en C++ (macOS), PowerShell (Windows) et Python (Linux)
  • Beacon vers le C2 sur port 8000 toutes les 60 secondes en JSON Base64
  • User-Agent codé en dur : mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0)
  • Commandes supportées : kill, rundir, runscript (AppleScript), peinject
  • Persistance Windows : batch caché %PROGRAMDATA%\system.bat + clé de registre HKCU:\Software\Microsoft\Windows\CurrentVersion\Run\MicrosoftUpdate
  • Capacités RAT : reconnaissance système, exécution de commandes (PE injection en mémoire), énumération du système de fichiers

🕵️ Attribution

GTIG attribue cette activité à UNC1069, acteur nord-coréen à motivation financière actif depuis au moins 2018. L’attribution repose sur :

  • L’utilisation de WAVESHAPER.V2, évolution directe de WAVESHAPER précédemment attribué à UNC1069
  • Le C2 sfrclak.com (142.11.206.73) connecté à un nœud AstrillVPN historiquement utilisé par UNC1069
  • Infrastructure adjacente sur le même ASN liée à des opérations passées d’UNC1069

🔗 Contexte élargi

L’article mentionne également UNC6780 (TeamPCP) ayant récemment empoisonné des GitHub Actions et packages PyPI (Trivy, Checkmarx, LiteLLM) pour déployer le stealer SANDCLOCK et mener des opérations d’extorsion.

📋 Type d’article

Il s’agit d’une analyse technique approfondie publiée par GTIG/Mandiant, visant à documenter l’attaque, fournir des IOCs exploitables, des règles YARA et des recommandations de remédiation pour la communauté défensive.

🧠 TTPs et IOCs détectés

Acteurs de menace

  • UNC1069 (state-sponsored)
  • UNC6780 (cybercriminal)

TTP

  • T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
  • T1078 — Valid Accounts (Initial Access)
  • T1059.001 — Command and Scripting Interpreter: PowerShell (Execution)
  • T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
  • T1059.006 — Command and Scripting Interpreter: Python (Execution)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1070.004 — Indicator Removal: File Deletion (Defense Evasion)
  • T1036.003 — Masquerading: Rename System Utilities (Defense Evasion)
  • T1547.001 — Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder (Persistence)
  • T1105 — Ingress Tool Transfer (Command and Control)
  • T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
  • T1082 — System Information Discovery (Discovery)
  • T1083 — File and Directory Discovery (Discovery)
  • T1055 — Process Injection (Defense Evasion)

IOC

  • IPv4 : 142.11.206.73
  • IPv4 : 23.254.167.216
  • Domaines : sfrclak.com
  • URLs : http://sfrclak.com:8000
  • URLs : http://sfrclak.com:8000/6202033
  • SHA256 : e10b1fa84f1d6481625f741b69892780140d4e0e7769e7491e5f4d894c2e0e09
  • SHA256 : fcb81618bb15edfd
  • SHA256 : 92ff08773995ebc8
  • SHA256 : 617b67a8e1210e4f
  • SHA256 : ed8560c1ac7ceb69
  • SHA256 : f7d335205b8d7b20
  • SHA256 : 58401c195fe0a620
  • MD5 : 04e3073b3cd5c5bfcde6f575ecf6e8c1
  • MD5 : 089e2872016f75a5223b5e02c184dfec
  • MD5 : 7658962ae060a222c0058cd4e979bfa1
  • Emails : ifstap@proton.me
  • Fichiers : setup.js
  • Fichiers : plain-crypto-js-4.2.1.tgz
  • Fichiers : system.bat
  • Fichiers : ld.py
  • Chemins : %PROGRAMDATA%\wt.exe
  • Chemins : %PROGRAMDATA%\system.bat
  • Chemins : /Library/Caches/com.apple.act.mond
  • Chemins : /tmp/ld.py

Malware / Outils

  • WAVESHAPER.V2 (backdoor)
  • SILKBELL (loader)
  • WAVESHAPER (backdoor)
  • SANDCLOCK (stealer)
  • plain-crypto-js (loader)

🔗 Source originale : https://cloud.google.com/blog/topics/threat-intelligence/north-korea-threat-actor-targets-axios-npm-package?hl=en