
Une extension Visual Studio Code rudimentaire mais capable de chiffrer des fichiers et de voler des données a réussi à contourner les contrôles de Microsoft sur sa place de marché VSCode pour développeurs.
La marketplace VSCode de Microsoft est-elle sécurisée ? La question se pose après la découverte d’une étrange extension pour l’éditeur de code open source adoptant un comportement proche de celui d’un ransomware. Elle a pu être publiée sans aucun problème et le ou les auteurs n’ont pas été identifiés. Selon les conclusions de Secure Annex, société spécialisée dans la sécurité des extensions qui a mené l’enquête, ce code malveillant publié sur la place de marché était clairement codé sans être très élaboré. « Il ne s’agit pas d’un exemple sophistiqué, car le code du serveur de commande et de contrôle a été accidentellement (?) inclus dans le package de l’extension publiée, avec des outils de décryptage », a déclaré John Tuckner fondateur de Secure Annex, ajoutant que l’extension comprenait une description « manifestement malveillante » sur la boutique. Malgré les signaux d’alerte évidents, le code a échappé aux filtres de vérification de Microsoft et reste disponible même après avoir été signalé, a déclaré M. Tuckner. Le code malveillant comprend des fonctionnalités de chiffrement et de vol de fichiers.
Selon le dirigeant, l’extension nommée susvsex (pour suspicious VSX) et publiée sous le pseudonyme tout aussi révélateur « Suspicious publisher » cache sa charge utile à la vue de tous. Visible sous le nom « suspublisher18.susvsex », elle comprend un fichier « package.json » qui s’active automatiquement à chaque événement, même pendant l’installation, tout en offrant une palette d’utilitaires pour « tester les fonctions de commande et de contrôle ». À l’intérieur du point d’entrée « extension.js », les chercheurs ont trouvé des variables codées en dur, notamment l’URL du serveur, les clés de chiffrement, les destinations C2 et les intervalles d’interrogation. La plupart de ces variables comportent des commentaires indiquant que le code a été généré par l’IA. Une fois déclenchée, l’extension lance la compression et le chiffrement des fichiers contenus dans un répertoire désigné, puis les télécharge vers un serveur de commande distant. M. Tucker a noté que le répertoire cible était configuré à des fins de test, mais qu’il pouvait facilement être remplacé par un véritable chemin d’accès au système de fichiers lors d’une future mise à jour ou par commande à distance. L’extension contenait deux décrypteurs, l’un en Python et l’autre en Node, ainsi qu’une clé de décryptage codée en dur, éliminant ainsi toute possibilité d’intention malveillante.
L’extension a pointé vers un C2 basé sur GitHub
Les chercheurs en sécurité de Secure Annex ont identifié une infrastructure de commande et de contrôle (C2) assez inhabituelle basée sur GitHub, au lieu de s’appuyer sur des serveurs C2 traditionnels. L’extension utilise un référentiel GitHub privé pour recevoir et exécuter des commandes. Elle vérifie régulièrement les derniers commits dans un fichier nommé « index.html », exécutait les commandes intégrées, puis réécrivait la sortie dans « requirements.txt » à l’aide d’un jeton d’accès personnel GitHub (PAT) intégré à l’extension. Outre le fait de faciliter l’exfiltration des données de l’hôte, ce comportement C2 a exposé l’environnement de l’attaquant, dont les traces ont conduit à un utilisateur GitHub à Bakou, dont le fuseau horaire correspondait aux données système enregistrées par le logiciel malveillant lui-même. La société de sécurité qualifie cela d’exemple type de développement de logiciel malveillant assisté par l’IA, avec des fichiers source mal placés (y compris des outils de décryptage et le code C2 de l’attaquant) et un fichier README.md qui décrit explicitement sa fonctionnalité malveillante. Mais M. Tuckner soutient que la véritable faille réside dans le système d’examen du marché de Microsoft, qui n’a pas signalé l’extension.
Microsoft a déclaré avoir retiré l’extension du marché. Chaque page d’extension du marché contient un lien « Signaler un abus », et la société enquête sur tous les signalements, a-t-elle déclaré ; lorsque la nature malveillante d’une extension est vérifiée, ou lorsqu’une vulnérabilité est détectée dans une dépendance de l’extension, celle-ci est retirée du marché, ajoutée à une liste de blocage et automatiquement désinstallée par VS Code, a-t-elle ajouté. Les entreprises qui souhaitent empêcher l’accès à la boutique peuvent le faire en bloquant des points de terminaison spécifiques, précise l’éditeur. Des incidents récents ont montré que les extensions malveillantes ou négligentes deviennent un problème récurrent dans l’écosystème Visual Studio Code, certaines divulguant des identifiants et d’autres volant discrètement du code ou minant des cryptomonnaies. Outre une liste d’IOC (indices de compromission) partagés, Secure Annex met en avant Extension Manager, un outil conçu pour bloquer les extensions malveillantes connues et inventorier les modules complémentaires installés dans une organisation.