Skip to main content

Créer un plugin Snyk pour VS Code : entretien avec Peter Benjamin

Écrit par
Headshot of Tim Kadlec

Tim Kadlec

16 mars 2017

0 minutes de lecture

Peter Benjamin (@pmbenjamin) est ingénieur logiciel senior au sein de l’équipe de cybersécurité d’ Intuit. Peter a récemment publié un formidable plugin VS Code qui affiche les résultats des tests Snyk directement dans l’éditeur. Nous lui avons posé quelques questions sur ce plugin pour en savoir plus.

Pourquoi avez-vous commencé à utiliser Snyk ?

Pour mon équipe et moi, la sécurité est un élément essentiel du développement logiciel, d’autant plus que plusieurs rapports et études sont publiés chaque année pour évaluer l’état de la sécurité sur le Web.

J’utilisais la Node Security Platform (nsp) pour mes projets Node, ainsi que bundler-audit/brakeman pour mes projets Ruby/Rails. Ces outils sont utiles à leur manière : ils analysent les fichiers manifestes (par exemple package.json, Gemfile) pour identifier les dépendances et leurs versions, puis les comparent à leur base de recommandations ou de vulnérabilités. Mais une fois les vulnérabilités connues détectées, le développeur doit se débrouiller seul. Il doit chercher si cette vulnérabilité connue a été signalée au responsable de la dépendance ou si une version plus récente, corrigeant la vulnérabilité, a été publiée, puis appliquer lui-même les correctifs.

Quand j’ai entendu parler de Snyk, j’ai décidé de l’essayer sur un projet personnel. J’ai été impressionné par ce que Snyk pouvait faire. Non seulement il analyse vos dépendances et leurs versions et les compare à une base de vulnérabilités, comme nsp, mais il peut aussi protéger et surveiller votre projet en continu. Je peux demander à Snyk de surveiller mon projet et de m’avertir si de nouvelles vulnérabilités connues sont découvertes.

Et ce n’est pas tout : je peux aussi configurer Snyk pour qu’il ouvre automatiquement une pull request dans mon projet afin de corriger la vulnérabilité en question. Comme si cela ne suffisait pas, Snyk m’aide à gérer les vulnérabilités connues dans différents écosystèmes (Ruby et Node pour le moment, mais je suis sûr que d’autres nouveautés intéressantes sont en préparation).

Note de la rédaction : c’est bien le cas. :)

Snyk fait passer la protection des projets contre les vulnérabilités connues à un tout autre niveau, au point qu’il devient étonnamment facile pour les développeurs de ne _pas l’intégrer à leur cycle de développement habituel.

Pourquoi avez-vous finalement créé l’extension pour VS Code ?

J’ai lu un jour que Guy Podjarny, cofondateur de Snyk, aimait créer des outils de sécurité applicative qui facilitent la gestion de la sécurité pour les développeurs. Je partage pleinement cette philosophie. Plus les outils sont faciles à utiliser pour les développeurs, plus ils seront adoptés. Et en tant que professionnels de la sécurité, nous savons à quel point ce secteur doit adopter de meilleures pratiques, plus sûres.

J’avais besoin d’un moyen rapide de tester mes dépendances à un moment donné, directement dans mon éditeur, sans avoir à passer à un autre panneau, une autre fenêtre ou un terminal pour lancer snyk test.

Visual Studio Code affiche le fichier package.json d’une application de démonstration de gestion de tâches vulnérable, avec la commande Snyk Test sélectionnée.

J’ai constaté un manque et l’ai comblé avec l’extension vscode-snyk.

Pouvez-vous décrire le processus de développement de l’extension ?

Le développement du plugin s’est déroulé sans trop de difficultés. J’ai commencé avec le modèle d’extension de Microsoft généré avec yeoman, puis je me suis lancé.

Je ne connaissais pas très bien l’API programmatique de Snyk et aucune documentation n’avait été publiée. J’ai donc lancé le REPL Node (Read-Eval-Print-Loop) et exploré l’API jusqu’à trouver ce que je cherchais et comprendre comment y parvenir.

Il m’a ensuite fallu environ 2 à 3 heures pour obtenir un prototype fonctionnel sur ma machine, puis 1 heure pour le peaufiner avant sa publication.

Alors, comment utilisez-vous l’extension ?

Snyk fait partie intégrante de mon processus de développement, aussi bien pour mes projets personnels que professionnels. Dès que j’ajoute une dépendance de production à mon projet, je lance snyk test pour vérifier qu’il ne contient aucune vulnérabilité connue.

Visual Studio Code affiche un projet package.json avec une bannière d’erreur signalant 14 chemins de dépendances vulnérables et des détails sur les vulnérabilités détectées par Snyk.

Avec le plugin VS Code, rien de plus simple : « CMD + SHIFT + P », tapez « snyk », puis appuyez sur « Entrée ».

Où peut-on trouver l’extension pour l’essayer ?

La méthode recommandée pour installer le plugin consiste à passer directement par l’éditeur : tapez ext install vscode-snyk, ou ouvrez le panneau Extensions et recherchez « snyk ».

Si vous souhaitez contribuer, vscode-snyk est open source et disponible sur GitHub. Vos commentaires, demandes de fonctionnalités et contributions sont les bienvenus.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis de capture du drapeau en regardant à la demande notre atelier virtuel d’initiation.