Des hackers nord-coréens abusent de VS Code pour déployer un malware
Alerte Sécurité - Campagne WaterPlum
Une menace active visant les environnements de développement a été identifiée. Des acteurs rattachés au groupe nord-coréen WaterPlum exploitent des projets Visual Studio Code piégés pour déployer le malware StoatWaffle. La technique consiste à inclure des tâches automatisées dans le fichier tasks.json d'un projet, lesquelles exécutent des chargeurs dès l'ouverture du projet dans l'éditeur. Cette campagne est observée depuis décembre 2025 et requiert des mesures immédiates pour limiter une compromission des postes de développement et de la chaîne d'approvisionnement logicielle¹.
Les faits
Identification
Les opérateurs, identifiés sous les alias Contagious Interview et WaterPlum, propagent StoatWaffle via des dépôts contenant un dossier .vscode et un fichier tasks.json configuré pour lancer des commandes shell ou PowerShell au chargement du workspace. Ces tâches peuvent télécharger et exécuter des binaires ou scripts depuis des sources externes, sans interaction complexe de l'utilisateur lorsque l'éditeur ou la configuration système autorise l'exécution automatique. Les premiers signalements publics de cette méthode et de l'utilisation de StoatWaffle datent des reportages techniques publiés en mars 2026¹.
Portée et impact potentiel
Cette méthode vise spécifiquement les environnements de développement mais peut avoir des conséquences systémiques si un poste compromis contient des secrets, tokens CI/CD ou accès à des dépôts. Les risques opérationnels sont multiples : compromission de la machine de développement, exfiltration d'identifiants, pivot vers des serveurs internes, ou injection d'artefacts malveillants dans la chaîne de build et de distribution. Les coûts d'une intrusion de ce type incluent remédiation, analyse forensique, rotation des clés et perte de confiance clients, et peuvent dépasser 500 000 euros par incident selon des études récentes³.

Pour comprendre le mécanisme, rappelons que tasks.json est le fichier de configuration des tâches dans Visual Studio Code. Il définit des commandes, des arguments et des environnements d'exécution pour automatiser des actions depuis l'éditeur². Lorsqu'une tâche référencée exécute curl, wget, PowerShell ou un script distant, elle peut devenir un vecteur d'infection si elle est activée par défaut ou autorisée par l'utilisateur.
Mesures urgentes à appliquer
Les décisions doivent être prises sans délai. Voici un plan d'action priorisé avec délais impératifs. Les opérations techniques doivent être pilotées par l'équipe sécurité en coordination avec les responsables IT et les managers d'équipes de développement.
1. Bloquer l'exécution automatique des tâches
- Deadline: 24 heures
- Action: Désactiver l'exécution automatique des tâches dans Visual Studio Code sur l'ensemble des postes. Appliquer une configuration centrale via GPO ou solution MDM pour forcer cette option et prévenir toute modification locale non autorisée. Documenter la procédure pour les développeurs afin d'expliquer comment lancer manuellement des tâches approuvées.
2. Restreindre l'ouverture de sources non vérifiées
- Deadline: 12 heures
- Action: Interdire le clonage et l'ouverture de projets provenant de sources non vérifiées. Mettre en place une règle simple: tout nouveau dépôt doit être scanné et validé dans un environnement isolé avant d'être importé sur les postes de développement. Pour l'analyse initiale, utiliser des conteneurs ou des machines virtuelles sans accès aux clés ni tokens de production.
3. Renforcer la surveillance et les protections endpoint
- Deadline: 6 heures
- Action: Ajuster les règles EDR/HIPS pour détecter et bloquer l'exécution de processus initiés depuis des chemins temporaires (%TEMP% sur Windows et répertoires temporaires sur Linux/macOS). Surveiller les processus qui lancent des connexions réseau inhabituelles et générer des alertes sur tout appel sortant vers des domaines non approuvés. Activer la journalisation détaillée pour les événements de lancement de tâches depuis VS Code et collecter ces logs centralement.
4. Scanner les dépôts et intégrer la détection dans CI/CD
- Deadline: 48 heures
- Action: Lancer un scan massif de tous les dépôts entrants pour repérer la présence de .vscode/tasks.json ou de fichiers .code-workspace contenant commandes suspectes. Intégrer une étape obligatoire de vérification dans les pipelines CI/CD qui rejette automatiquement les commits contenant tâches non approuvées ou références à téléchargements externes.
Procédure en cas de compromission
Si une machine est suspectée d'être compromise, appliquer immédiatement ces mesures:
- Isoler la machine du réseau et suspendre ses accès aux systèmes sensibles.
- Collecter les logs EDR, historiques de commandes et artefacts pour analyse forensique.
- Révoquer et renouveler tous les secrets, tokens et clés présents sur l'hôte compromis. Supposer la compromission des credentials qui ont été utilisés depuis ce poste.
- Scanner les dépôts et pipelines pour détecter toute modification malveillante ou artefact injecté.
- Suivre la procédure d'incident de l'organisation et notifier les parties prenantes concernées.
Conséquences de l'inaction
Ignorer ces directives augmente fortement le risque d'une compromission étendue. Une chaîne de développement contaminée peut conduire à la diffusion de code compromis dans des livraisons de production, multiplier les coûts de remédiation et porter atteinte à la réputation. Rappelons que des incidents comparables peuvent représenter des coûts importants pour l'organisation et ses clients³. Le respect des délais indiqués réduit significativement la probabilité d'impact grave.
Nous attendons une mise en œuvre rapide et documentée de ces mesures. Les responsables sécurité doivent valider les changements et informer les équipes techniques. Toute dérogation doit être motivée formellement et conditionnée à des contrôles compensatoires stricts.