Intégrer une sécurité exploitable dans votre workflow CI/CD et vos systèmes de build avec les tests Snyk
13 décembre 2019
0 minutes de lectureConnecter Snyk aux dépôts que vous avez stockés dans un système de gestion du code source tel que GitHub ou GitLab, puis importer vos projets dans Snyk, est un excellent moyen de tirer parti des tests de sécurité des applications tout au long de vos principaux workflows de développement. Vous bénéficiez immédiatement d’une surveillance continue de la sécurité qui détecte toute nouvelle vulnérabilité dans les fichiers manifestes des bibliothèques de vos projets. Mieux encore, des demandes de tirage peuvent être créées automatiquement pour vous afin de corriger ces problèmes de sécurité.
Regardez notre vidéo pour découvrir comment démarrer avec notre outil CLI.
En plus de ces intégrations Git de base, Snyk s’intègre également à vos outils CI/CD (intégration continue/développement continu), grâce à notre Snyk CLI, pour s’exécuter dans un processus de build ou d’intégration continue, par exemple avec Jenkins. Snyk CLI est une solution très flexible qui aide les développeurs à commencer facilement à analyser et à corriger les vulnérabilités open source dans leurs applications et leurs conteneurs. Il n’est donc pas surprenant que les ingénieurs DevOps intègrent de plus en plus cet outil CLI à leurs pipelines.
Comment fournir à mes développeurs des informations utiles sur la sécurité des applications ?
Si vous êtes ingénieur DevOps ou DevSecOps, vous vous êtes probablement déjà posé cette question.
Tester la sécurité des applications dans votre environnement CI/CD est une excellente avancée. Mais fournir aux développeurs des conseils de correction concrets pour les aider à résoudre les problèmes lorsqu’un build échoue, c’est encore mieux. Cela permet aussi de réduire le bruit, par exemple en évitant de faire échouer un build pour des problèmes impossibles à corriger, ce qui laisse les développeurs démunis.
Pour fournir des conseils utiles, vous devez avant tout privilégier leur caractère exploitable.
C’est facile à faire directement dans l’interface Snyk et avec les intégrations de gestion du code source, comme le montre l’image ci-dessous. Mais comment faire de même pour les développeurs qui utilisent l’outil CLI ?

Si vous utilisez Snyk depuis la CLI pour rechercher des problèmes de sécurité, vous connaissez probablement sa liste de vulnérabilités présentée clairement. Elle est utile pour consulter les résultats d’un build, mais saviez-vous que vous pouvez également obtenir ces résultats au format JSON ? Et en quoi cela peut-il aider les développeurs à mieux exploiter ces informations pour résoudre les problèmes de sécurité ?

Filtrer la sortie JSON des tests Snyk CLI
Snyk CLI propose plusieurs arguments de ligne de commande très utiles pour extraire les informations souhaitées d’un test. Nous proposons également une antisèche Snyk CLI à titre de référence.
L’option --json est l’un de ces arguments de ligne de commande utiles. La sortie JSON des tests Snyk, associée à la commande jq, un analyseur JSON, peut s’avérer très utile pour filtrer et manipuler les résultats des analyses de vulnérabilités.
Cet argument vous permet de filtrer facilement les résultats pour n’afficher que les problèmes qui peuvent être corrigés en mettant à niveau la bibliothèque vulnérable ou en appliquant un correctif. Voilà qui est concret !
snyk test --json | jq '.vulnerabilities |= map(select(.isUpgradable == true or .isPatchable == true))'
De la sortie JSON générée par machine à la visualisation
Un format JSON structuré est très pratique à manipuler, mais il serait encore mieux de pouvoir convertir les résultats en un visuel agréable. Vous pouvez alors envoyer la version filtrée aux développeurs, aux responsables d’équipe ou à d’autres parties prenantes afin qu’ils assurent le suivi des actions et contribuent à corriger les vulnérabilités de sécurité dans vos projets.
Heureusement, nous pouvons utiliser la CLI snyk-to-html. Cet outil exporte les résultats JSON dans une page Web HTML statique, regroupée dans un seul fichier que vous pouvez envoyer par e-mail ou partager comme bon vous semble.
Commencez par installer l’outil :
$ npm install --global snyk-to-html
Dirigez ensuite la sortie JSON du test Snyk CLI vers jq pour la filtrer, puis vers snyk-to-html pour convertir le JSON en fichier HTML :
$ snyk test —json | snyk-to-html -o results.html
Vous obtenez ainsi un rapport HTML statique et bien mis en forme, que vous pouvez envoyer aux parties prenantes concernées, comme celui-ci :

En résumé
Il est important de connaître les vulnérabilités de sécurité, mais n’oubliez pas que vous pouvez aller encore plus loin en y associant des conseils concrets qui donnent à vos développeurs les moyens d’agir et de sécuriser leurs applications.
Voici quelques ressources pour approfondir les sorties de Snyk CLI :
Pour démarrer avec notre outil CLI, regardez notre courte vidéo et consultez également notre référence complète sur la CLI.
Pour en savoir plus sur les arguments de commande, consultez cette antisèche Snyk CLI pratique.
Pour connaître les filtres et autres opérateurs, consultez la documentation jq.
Enfin, vous pouvez lire cet article plus détaillé sur la façon de tirer le meilleur parti de la commande `snyk test` avec JSON.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.
