VS Code est l'outil de dveloppement le plus populaire au monde ; une enqute mene par StackOverflow a rvl que 74,48 % des dveloppeurs l'utilisaient. Selon les analystes, cela est en partie d l'norme gamme d'extensions disponibles, et les dveloppeurs s'appuient sur les extensions pour personnaliser l'diteur selon leurs besoins. Ces extensions proviennent le plus souvent de VS Code Marketplace, qui est intgr l'diteur. Les dveloppeurs peuvent trouver et installer des extensions partir du Web ou de VS Code lui-mme. En gnral, ils peuvent taper un mot de recherche tel que "Rust" ou "Svelte", qui renvoie une liste d'extensions correspondantes.
La recherche renvoie galement le nombre de fois o une extension a t tlcharge et l'valuation des utilisateurs. Certaines extensions permettent simplement de changer la couleur du thme de l'diteur. Cependant, toutes les extensions s'excutent avec les privilges de l'utilisateur qui a ouvert VS Code sans aucune sandbox. Cela signifie qu'une extension peut installer n'importe quel programme sur votre ordinateur, y compris des ransomwares, des wipers, etc. En fait, elle peut accder et mme modifier tout le code que vous avez localement et mme utiliser votre cl SSH pour modifier le code dans tous les dpts distants de votre organisation.
Plusieurs dispositifs permettent de protger les dveloppeurs contre les extensions malveillantes. Microsoft assure qu'une "analyse antivirus est effectue pour chaque nouvelle extension et pour chaque mise jour d'extension. Tant que l'analyse n'est pas claire, l'extension n'est pas publie sur Marketplace pour un usage public". En outre, des efforts sont dploys pour empcher le "name squatting", c'est--dire le fait qu'un nom d'diteur soit dlibrment similaire un nom bien connu. Les dveloppeurs peuvent galement observer si une extension a une coche bleue, ce qui signifie que l'diteur a prouv la proprit d'un domaine Web.
Toutes ces fonctionnalits sont utiles, mais les chercheurs d'Aqua Security affirment que "c'est un dfi, mme pour les dveloppeurs conscients de la scurit, de distinguer les extensions malveillantes des extensions bnignes". Ils notent plusieurs points pour tayer cette affirmation :
- n'importe qui peut s'inscrire en tant qu'diteur d'extension, mme en utilisant une nouvelle adresse lectronique jetable ;
- le nom de l'extension et le nom de l'diteur d'une extension ne sont pas ncessairement uniques, mais peuvent copier le nom d'une extension existante. Dans l'exemple donn, les chercheurs ont publi une extension appele Pretier qui s'est affiche sous le nom de Prettier (image ci-dessus), le mme nom qu'un module complmentaire populaire de formatage de code ;
- la coche bleue pour un diteur prouve uniquement la proprit d'un domaine. Un diteur pourrait acheter n'importe quel domaine et l'enregistrer pour obtenir cette coche vrifie , expliquent les chercheurs ;
- le nombre de tlchargements et de critiques est utile, mais ces lments peuvent tre scripts et falsifis afin d'obtenir des chiffres d'apparence respectable.
L'quipe d'Aqua Security n'a pas russi dmontrer qu'une extension malveillante pouvait passer outre les contrleurs de virus de Microsoft, mais elle a russi faire installer une fausse version de Prettier plus de 1 000 fois en 48 heures. Le succs de la fausse version est d l'utilisation d'une faute d'orthographe courante. Si un dveloppeur effectuait une recherche imprudente en tapant Pretier (au lieu de Prettier pour obtenir la bonne extension), la fausse extension tait le seul rsultat de la recherche. Selon les chercheurs, si Pretier tait une extension malveillante, les dgts pourraient tre considrables pour les dveloppeurs.
Si vous regardez de plus prs le point 1 qui pointe vers l'URL, vous pouvez voir deux diffrences la fois dans le nom de l'diteur (esbenp vs espenp) et dans le nom de l'extension (prettier-vscode vs pretier-vscode). Lorsque vous recherchez l'extension Prettier, l'extension Pretier apparat la 26e place, ce qui prsente un risque faible. Nous pourrions tre en mesure d'influer sur le classement en augmentant le taux de tlchargement et d'toiles, mais cela reste discutable. Toutefois, lorsque l'on tape "pretier", ce que les dveloppeurs pourraient trs bien faire par inadvertance, notre extension est le seul rsultat , explique l'quipe.
Une petite variation de l'URL, telle que l'omission de la lettre "t" ou la transformation de "b" en "p", est appele typosquattage. Il s'agit d'une technique populaire utilise par les attaquants pour tromper les dveloppeurs. D'autres registres ont lutt contre cette technique et n'autorisent gnralement pas les utilisateurs crer de nouveaux paquets prsentant de telles similitudes. Selon le site Web des directives de Microsoft, les extensions officielles de Microsoft et de Red Hat sont protges du typosquattage. Cependant, dans ce cas, VS Code Marketplace a permis de crer un paquet imitant un paquet trs populaire.
Cela a amen les chercheurs se demander si des protections similaires sont dployes sur la place de march VS Code et dans le cas contraire, s'il est possible de dployer de telles protections, au moins pour empcher les attaquants de se faire passer pour des extensions populaires. Alors qu'il y a beaucoup d'histoires sur des paquets malveillants identifis sur des gestionnaires de paquets populaires tels que NPM et PyPI, il existe trs peu d'informations sur les extensions malveillantes de VS Code. Selon l'quipe, lorsque recherche sur le Web, on trouve peu de rsultats, et ceux qui reviennent concernent des vulnrabilits dans VS Code ou ses extensions.
Selon les chercheurs, le cur du problme est que, comme dans le cas des grands dpts de paquets tels que NPM ou PyPi, il est trop coteux de faire vrifier chaque soumission par un humain, de sorte que les vrifications doivent tre automatises. Microsoft dispose d'une "kill list" afin que la dsinstallation soit automatique une fois connue. Il est galement important de noter que les extensions VS Code sont crites en Node, et que les paquets sont tlchargs depuis NPM. Par consquent, il existe un risque rel qu'un dveloppeur lgitime non averti utilise sans le savoir un paquet malveillant de NPM comme dpendance pour son extension.
Ce qui peut conduire la compromission de l'extension entire et mettant involontairement la communaut en danger. En plus des extensions VS Code, Marketplace propose galement des extensions pour Visual Studio et Azure DevOps. premire vue, elles sont galement vulnrables la tromperie visuelle du masquage. Cependant, l'quipe affirme n'avoir pas poursuivi ces pistes dans ce cycle de recherche.
Source : Aqua Security
Et vous ?
Que pensez-vous de l'exprience des chercheurs d'Aqua Security ?
Selon vous, comment les dveloppeurs peuvent viter ce type d'attaque ?
Selon vous, comment Microsoft pourrait amliorer la scurit de VS Code Marketplace ?
Voir aussi