🗓️ Contexte

Le 20 août 2026, Wiz Research publie une analyse technique d’une attaque de chaîne d’approvisionnement ciblant l’écosystème Rust via le registre officiel crates.io. L’article s’appuie également sur des données de Google Threat Intelligence.

🎯 Vecteur d’attaque

Trois crates Rust légitimes ont été compromises par la publication de versions malveillantes :

Ces versions ajoutent une dépendance typosquattée (proc-macro1, imitant le légitime proc-macro2 avec 154M+ téléchargements). Le script de build build.rs de proc-macro1 exécute la charge malveillante au moment de la compilation (cargo build), sans interaction utilisateur supplémentaire.

⚙️ Fonctionnement technique

Le script de build malveillant :

  • Reconstruit une URL C2 depuis des fragments Base64
  • Désactive la validation TLS via un vérificateur AcceptAll personnalisé
  • Télécharge un payload spécifique à la plateforme (Linux x86_64, Windows x86_64, macOS x86_64/aarch64)
  • Écrit le payload dans /tmp/rust-setup (Unix) ou %TEMP%\rust-setup.ps1 (Windows)
  • Exécute le payload en lui passant l’adresse C2 comme argument

🦠 Capacités du backdoor (stage 2)

L’implant est un backdoor complet qui :

  • Balise vers le C2 via HTTPS POST sur l’endpoint /49890878, en exfiltrant des informations système et des identifiants en JSON encodé Base64
  • Collecte hostname, username, OS, applications installées
  • Lit les profils Chrome, Brave et Edge (logins sauvegardés, extensions) via leurs bases SQLite
  • Persiste via Registry Run key (Windows), LaunchAgent (macOS), ou service systemd (Linux)
  • Supporte quatre commandes : kill, minicfg, startup, runscript
  • Utilise un Domain Generation Algorithm (10 domaines .com tous les 5 jours) en fallback
  • Chiffre sa configuration avec AES-128-GCM (clé hardcodée : i am botking)
  • Authentifie les commandes via une clé privée RSA-2048 embarquée

🔗 Liens avec la Corée du Nord

Plusieurs chevauchements d’infrastructure sont identifiés avec des campagnes nord-coréennes :

  • L’endpoint /49890878 est utilisé dans la campagne Mastra, attribuée par Microsoft à DPRK / Sapphire Sleet
  • L’IP C2 partage un émetteur SSL (WIN-A6QF8AHPQH1\Administrator@WIN-A6QF8AHPQH1) avec 23.254.167[.]13, également utilisée dans Mastra
  • L’IP 23.254.167[.]216 apparaît dans l’analyse de Google Cloud Threat Intelligence sur l’attaque npm axios d’UNC1069, liée à la Corée du Nord par Mandiant
  • Les deux campagnes utilisent le même range Hostwinds LLC 23.254.164.0/23

🏷️ Type d’article

Publication de recherche et analyse technique produite par Wiz Research, visant à documenter une attaque supply chain active, fournir des IOCs exploitables et alerter les équipes de sécurité sur une campagne attribuée à des acteurs étatiques nord-coréens.

🧠 TTPs et IOCs détectés

Acteurs de menace

TTP

  • T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
  • T1059.001 — Command and Scripting Interpreter: PowerShell (Execution)
  • T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
  • T1547.001 — Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder (Persistence)
  • T1543.001 — Create or Modify System Process: Launch Agent (Persistence)
  • T1543.002 — Create or Modify System Process: Systemd Service (Persistence)
  • T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
  • T1568.002 — Dynamic Resolution: Domain Generation Algorithms (Command and Control)
  • T1573.001 — Encrypted Channel: Symmetric Cryptography (Command and Control)
  • T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
  • T1539 — Steal Web Session Cookie (Credential Access)
  • T1082 — System Information Discovery (Discovery)
  • T1083 — File and Directory Discovery (Discovery)
  • T1041 — Exfiltration Over C2 Channel (Exfiltration)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1553.004 — Subvert Trust Controls: Install Root Certificate (Defense Evasion)

IOC

  • IPv4 : 23.254.165.112AbuseIPDB · VT · ThreatFox
  • IPv4 : 23.254.167.107AbuseIPDB · VT · ThreatFox
  • IPv4 : 23.254.167.13AbuseIPDB · VT · ThreatFox
  • IPv4 : 23.254.167.216AbuseIPDB · VT · ThreatFox
  • Domaines : hwsrv-798836.hostwindsdns.comVT · URLhaus · ThreatFox
  • URLs : https://23.254.165.112:9089/URLhaus
  • SHA256 : 25ad700976873c76af785cb99b33c48db7df8b81f21d1e9e06b3676b9a9373aeVT · MalwareBazaar
  • SHA256 : 61198155da51b838772eecf5bfaac6cbc4dcc388dccc56658fc28a8e831b34d4VT · MalwareBazaar
  • SHA256 : b5c1b5b0763a8809a644a8f92224653f0aca623a98eecc714d27f74b80fbe436VT · MalwareBazaar
  • SHA1 : f22e3e01e38bcdf001f0d15a2dbfdec5a1cf8effVT · MalwareBazaar
  • SHA1 : f4767ad92cb61401fd69139cade563501c39b991VT · MalwareBazaar
  • SHA1 : fc0fdb978eac72f4484b48db058e4473f1bc516eVT · MalwareBazaar
  • SHA1 : ff7e20cf642346bf893f1eca808df82035bb53d0VT · MalwareBazaar
  • Emails : rchaitm@gmail.com
  • Fichiers : arrayref-0.3.10.crate
  • Fichiers : internment-0.8.7.crate
  • Fichiers : append-only-vec-0.1.9.crate
  • Fichiers : proc-macro1-1.0.107.crate
  • Fichiers : proc-macro1-1.0.106.crate
  • Fichiers : rust-crate_0.1.0
  • Fichiers : rust-crate_0.2.0
  • Fichiers : rust-crate_0.3.0
  • Fichiers : rust-crate_0.4.0
  • Fichiers : rust-setup.ps1
  • Fichiers : rust-setup-launch.vbs
  • Chemins : /tmp/rust-setup
  • Chemins : %TEMP%\rust-setup.ps1
  • Chemins : %TEMP%\rust-setup-launch.vbs

⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 22 août 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.

Malware / Outils

  • proc-macro1 (loader)
  • rust-crate backdoor (backdoor)

🟢 Indice de vérification factuelle : 95/100 (haute)

  • ✅ wiz.io — source reconnue (liste interne) (20pts)
  • ✅ 8241 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 28 IOCs dont des hashes (15pts)
  • ✅ 4/8 IOCs confirmés (AbuseIPDB, MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (15pts)
  • ✅ 16 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ✅ acteur(s) identifié(s) : Sapphire Sleet, UNC1069 (5pts)
  • ⬜ pas de CVE à vérifier (0pts)

IOCs confirmés externellement :

  • 23.254.165.112 (ip) → VT (10/91 détections)
  • 23.254.167.107 (ip) → VT (5/91 détections)
  • 23.254.167.13 (ip) → VT (8/91 détections)
  • 61198155da51b838… (sha256) → VT (4/76 détections)

🔗 Source originale : https://www.wiz.io/blog/rust-supply-chain-attack-on-arrayref-significant-overlap-with-dprk-campaigns