Top 5 des extensions VS Code pour renforcer la sécurité
24 août 2023
0 minutes de lecture
Développer des applications logicielles de qualité peut être ardu : de nombreux éléments doivent s’assembler pour aboutir à une solution fonctionnelle. C’est pourquoi les développeurs ont besoin de toute l’aide et de toute la praticité possibles, en particulier pour sécuriser leurs applications.
Visual Studio Code (VS Code) est l’un des éditeurs de code open source les plus populaires, et ce pour plusieurs raisons. Il est compatible avec les trois principaux systèmes d’exploitation — Windows, macOS et Linux — et se configure facilement selon nos préférences. Surtout, nous pouvons installer des extensions pour enrichir ses fonctionnalités.
VS Code propose une multitude d’extensions, allant de simples modifications de l’interface utilisateur (UI) à la détection avancée des vulnérabilités. Cet article se concentre sur ces dernières et présente les cinq meilleures extensions VS Code pour nous aider à écrire du code plus sécurisé et à respecter les bonnes pratiques de sécurité.
1. Protéger mots de passe et secrets avec 1Password
Inclure des mots de passe et des secrets en texte brut dans le code représente un risque majeur pour la sécurité, car cela peut facilement compromettre des informations sensibles. Il est recommandé de stocker ces valeurs dans un coffre externe et d’y accéder à l’aide de variables.
Cependant, lorsqu’on écrit du code, il devient fastidieux de passer sans cesse de l’éditeur de code au coffre-fort de mots de passe, puis de revenir à l’éditeur pour créer de nouveaux secrets et mots de passe ou vérifier les valeurs existantes. 1Password pour VS Code est une extension conçue pour résoudre ce problème en donnant accès au coffre-fort directement depuis l’éditeur VS Code.
Voici un aperçu des principales fonctionnalités de 1Password.
Tout d’abord, vous pouvez créer un nouveau mot de passe depuis VS Code à l’aide de la palette de commandes. Il suffit de sélectionner une valeur, puis d’exécuter la commande `1Password: Save in 1Password`.

Vous pouvez alors attribuer un libellé à l’élément, l’enregistrer automatiquement dans 1Password et remplacer la référence dans le code.
Vous pouvez aller plus loin grâce à la détection automatique des secrets. L’extension 1Password pour VS Code repère et met en évidence les valeurs susceptibles d’être des secrets ou des mots de passe dans le code et les fichiers de configuration de l’environnement.

La fonctionnalité CodeLens de VS Code — un outil puissant qui affiche les relations entre les éléments de code dans l’éditeur — affichera Enregistrer dans 1Password au-dessus de l’option mise en évidence. Comme le montre l’image ci-dessus, cette option permet d’accéder rapidement à la commande `Save in 1Password`.
Il est également possible de récupérer des éléments existants dans le coffre-fort et d’en créer de nouveaux à l’aide des commandes `1Password: Get from 1Password` et `1Password: Generate password`, respectivement. Là encore, ces fonctionnalités simplifient le travail des développeurs avec des valeurs secrètes : ils n’ont pas besoin de quitter l’éditeur de code ni d’interrompre leur flux de travail.
Enfin, l’extension 1Password pour VS Code permet d’inspecter et de prévisualiser les secrets enregistrés dans le coffre-fort lorsqu’ils sont référencés dans le code. Survolez un secret pour afficher sa valeur actuelle, mais uniquement s’il n’est pas sensible. Les valeurs sensibles, comme les mots de passe, ne peuvent pas être prévisualisées afin de rester protégées.
2. Décompiler des exécutables avec Decompiler
Les décompilateurs servent parfois à rétroconcevoir du code compilé pour le convertir en code source et permettre aux développeurs de l’inspecter. La décompilation est un outil précieux dans le domaine de la sécurité. Elle permet aux experts en sécurité d’évaluer la sécurité des logiciels et même de comprendre le comportement des logiciels malveillants. Pour cela, il faut souvent utiliser un logiciel spécifique — ou parfois différent — selon le type d’exécutable.
Decompiler est une extension VS Code qui ajoute des fonctionnalités de décompilation à VS Code. Vous pouvez décompiler des exécutables binaires tels que des fichiers Windows PE, Linux ELF, IOS, JAR et Android APK directement dans VS Code : il suffit de faire un clic droit sur le fichier et de sélectionner Décompiler.

Les fichiers décompilés sont ensuite accessibles dans un dossier Decompiler. Pour les fichiers JAR, leur contenu est extrait dans les dossiers et fichiers qu’ils contiennent, ce qui permet d’accéder aux fichiers Java d’origine, comme le montre l’image suivante.

La décompilation peut révéler des vulnérabilités dans le code, comme des dépassements de tampon ou des conditions de concurrence. Découvrir ces vulnérabilités nous aide à déterminer si le logiciel est sécurisé et à prendre les mesures nécessaires pour les corriger avant sa publication.
Nous pouvons également décompiler du code tiers, comme des bibliothèques et des API, souvent distribuées sous forme compilée, afin d’en comprendre le comportement. La décompilation de ces composants nous aide à évaluer leur pertinence pour les projets de développement et à repérer d’éventuelles vulnérabilités.
3. Masquer les valeurs sensibles avec Cloak
Les développeurs qui travaillent sur des applications utilisant des fichiers de configuration d’environnement contenant des secrets et des mots de passe peuvent vouloir les dissimuler. Or, c’est difficile dans un environnement collaboratif ou dans un lieu public, comme un café, où n’importe qui peut voir votre écran. Protéger ces valeurs en regardant constamment par-dessus son épaule ou en évitant d’ouvrir le fichier est contraignant et nuit à la productivité.
Voici un exemple de fichier .env contenant une clé API et un mot de passe. Toute personne qui peut voir l’écran peut lire le contenu de ces variables :

Pour résoudre ce problème, nous pouvons utiliser l’extension VS Code Cloak. Cloak est conçue pour masquer les valeurs secrètes à l’écran lorsqu’un fichier de configuration d’environnement est ouvert. Pour activer Cloak, ouvrez la palette de commandes VS Code et exécutez la commande `Cloak: Hide Secrets`. Les valeurs seront masquées à l’écran :

Cette extension ne modifie aucunement les fichiers. Elle masque simplement les valeurs secrètes pour qu’elles ne s’affichent pas. Cloak empêche les regards indiscrets de voir les secrets et les mots de passe dans les lieux publics, ce qui nous permet de continuer à travailler tout en protégeant nos applications.
4. Appliquer les bonnes pratiques de sécurité avec l’extension ESLint
Lorsqu’il s’agit de sécuriser des projets JavaScript, la plupart des extensions modernes se contentent de détecter des indicateurs de sécurité. Pourtant, les développeurs ont souvent besoin d’outils qui s’intègrent aux pipelines de livraison logicielle pour automatiser les contrôles de sécurité.
L’extension ESLint est un outil open source d’analyse statique utilisé dans VS Code lors de l’écriture de code JavaScript. La nature dynamique et faiblement typée de JavaScript le rend notoirement sujet aux erreurs de développement. ESLint limite ce risque en analysant le code pour vérifier qu’il est syntaxiquement correct et conforme aux bonnes pratiques et aux normes. Il met en évidence les erreurs de syntaxe, ce qui nous permet de les repérer et de les corriger rapidement. Il aide également à détecter les bogues et les vulnérabilités potentielles du code, pour en garantir une meilleure intégrité.
ESLint est un outil adapté pour faire respecter les normes de code, en particulier dans les projets d’équipe. Grâce à cette extension, chaque membre de l’équipe suit le même ensemble automatisé de styles et de normes communs.
Prenons l’extrait de code ci-dessous comme exemple :

Ici, la constante greeting utilise des guillemets doubles, tandis que `secondGreeting` utilise des apostrophes. Remarquez également que certaines lignes se terminent par un point-virgule, contrairement à d’autres. Malgré ces légères différences, ce code s’exécute correctement, car les lignes sont syntaxiquement valides.
Cependant, dans un projet collaboratif, il est important que tous les membres de l’équipe appliquent des conventions cohérentes. Nous pouvons utiliser ESLint pour les faire respecter en définissant des règles ou en utilisant les paramètres d’analyse par défaut du package ESLint. Nous pouvons également personnaliser ces paramètres :

ESLint propose également ses propres plugins, comme le plugin de sécurité, qui repère les mauvaises pratiques de sécurité, notamment l’utilisation d’expressions régulières non sécurisées ou de la fonction `eval`. Nous pouvons utiliser ce plugin dans VS Code pour vérifier le code au fur et à mesure de son développement et nous assurer que l’application est sécurisée et que les problèmes sont résolus avant que le code ne passe par les pipelines de build.
5. Analyser le code et les packages tiers avec Snyk
Détecter et corriger les vulnérabilités du code est essentiel pour créer des systèmes logiciels sécurisés. Nous devons résoudre rapidement ces problèmes, avant que des acteurs malveillants ne puissent les exploiter. Cependant, passer constamment de l’éditeur de code à l’outil d’analyse des vulnérabilités peut être fastidieux et chronophage.
L’extension Snyk pour VS Code résout ce problème en proposant l’analyse et la correction des vulnérabilités directement dans l’éditeur VS Code. Elle recherche les types de problèmes suivants dans le code :
Sécurité de l’open source — vulnérabilités de sécurité dans les dépendances open source utilisées par nos projets.
Sécurité du code — vulnérabilités de sécurité dans notre code.
Qualité du code — qualité de notre code.
Sécurité de l’infrastructure as code (IaC) — problèmes de configuration dans les fichiers modèles IaC, comme Kubernetes et Terraform.
L’analyse du code avec Snyk Code démarre automatiquement à l’ouverture d’un dossier de projet. Nous pouvons aussi lancer facilement des analyses manuelles en exécutant `Snyk: Rescan` dans la palette de commandes.

L’extension Snyk détecte également les vulnérabilités et met en évidence celles qui sont potentielles dans notre code au fur et à mesure que nous l’écrivons. Elle décrit le problème et son niveau de gravité, et propose des bonnes pratiques pour le prévenir.

Cette extension offre également une vue d’ensemble des résultats des différentes analyses effectuées sur notre code :

Grâce à la détection des vulnérabilités en temps réel et à des étapes de correction détaillées, Snyk pour VS Code nous aide à prioriser la sécurité sans perturber notre flux de travail.
Conclusion
Les meilleurs développeurs s’efforcent d’écrire du code sécurisé, propre et facile à maintenir — et ces cinq extensions peuvent nous y aider. 1Password protège les mots de passe des tiers et évite de les stocker dans le code. ESLint aide à écrire du code syntaxiquement correct, exempt de bogues et conforme aux bonnes pratiques. Decompiler nous permet d’évaluer le code source des exécutables afin de vérifier qu’ils ne contiennent pas de logiciels malveillants. Cloak masque les valeurs sensibles à l’écran. Enfin, l’extension Snyk pour VS Code analyse rapidement et avec précision le code à la recherche de vulnérabilités.
Avant d’installer des extensions VS Code, il est important de se renseigner sur l’extension et l’entreprise qui la développe. Les extensions peuvent contribuer à la sécurité, mais une extension malveillante peut compromettre les secrets et les mots de passe de notre application.
Faire confiance à un tiers pour stocker ses mots de passe revient à lui confier la responsabilité de leur sécurité. Il est donc important de vérifier la fiabilité de ce tiers avant d’installer des extensions, en particulier celles liées à la gestion des mots de passe et des secrets.
Il n’existe pas de solution universelle pour créer des applications plus sécurisées. Selon le projet, certaines de ces extensions peuvent être plus adaptées ou pertinentes que d’autres. Chacune présente toutefois des avantages qui peuvent rendre l’éditeur VS Code encore plus pratique.
Essayez ces extensions dès aujourd’hui et découvrez la différence qu’elles peuvent faire.
