Sécurisez votre workflow de build Bitbucket avec Snyk
Noa Korem
5 mars 2019
0 minutes de lectureNous sommes ravis d’annoncer que Snyk s’intègre désormais à Bitbucket Pipes. Les utilisateurs de Bitbucket peuvent ainsi sécuriser leur workflow d’intégration et de livraison continues (CI/CD) en détectant, corrigeant et surveillant les vulnérabilités open source dans les dépendances de leurs applications ou images Docker. Avec cette version, Snyk est fier d’être partenaire du lancement de Bitbucket Pipes.
La semaine dernière, Atlassian a lancé Bitbucket Pipes, qui permet aux utilisateurs de personnaliser et d’automatiser un workflow CI/CD à partir d’un ensemble de tâches prêtes à l’emploi. Le pipeline peut être configuré avec des actions prédéfinies qui s’intègrent au workflow de manière répétable. Pour ajouter un pipe à votre workflow, copiez simplement le pipe adapté et collez-le dans le pipeline, comme illustré ci-dessous :

Détectez, corrigez et surveillez les vulnérabilités open source dans votre application.
Une fois ajouté au workflow Bitbucket Pipeline, le pipe Snyk analyse vos dépendances à la recherche de vulnérabilités open source dans le cadre du workflow CI/CD. Si des vulnérabilités sont détectées, le pipe Snyk bloque le processus en fonction de la configuration définie par l’utilisateur. Par exemple, il peut empêcher les vulnérabilités de gravité élevée de passer l’étape de build, comme illustré ci-dessous :

Pour les vulnérabilités détectées, le pipe Snyk comprend un module de correctifs qui permet de les corriger grâce aux correctifs précis de Snyk. Ceux-ci sont développés et rigoureusement testés en collaboration avec le responsable du package. Snyk rétroporte le correctif d’origine vers toutes les versions historiques concernées, sans provoquer de régression du code.
Une fois le test réussi, Snyk surveille le code déployé afin de détecter toute nouvelle vulnérabilité. Lorsqu’une vulnérabilité pertinente est découverte, Snyk en informe les utilisateurs afin de réduire au minimum la période d’exposition. La base de données des vulnérabilités de Snyk est constamment mise à jour pour offrir à nos utilisateurs la couverture la plus complète possible.
Sécurisez vos images Docker
Le pipe Snyk peut également analyser les images Docker à la recherche de vulnérabilités du système d’exploitation. Snyk analyse l’image de base et les couches supplémentaires, et détecte les vulnérabilités associées à chacune d’elles ainsi qu’à l’image de base. Snyk recommande des mesures correctives et oriente les utilisateurs vers l’image de base alternative la plus sécurisée, ce qui élimine un grand nombre de vulnérabilités et réduit le risque de régression du code.
Sécurisez l’ensemble de votre workflow Bitbucket
Snyk offre une interface de sécurité complète pour les différentes solutions Bitbucket tout au long du workflow de développement :
Tout commence par la gestion du code source : chaque pull request est analysée et des pull requests proposant les mises à niveau recommandées sont générées.
Dans le pipeline, l’intégration CI/CD de Snyk empêche le déploiement des applications vulnérables.
Enfin, après le déploiement, Snyk enregistre un instantané des dépendances de l’application déployée, les surveille et envoie des notifications en cas de nouveaux problèmes.
Snyk participera au prochain sommet Atlassian (du 9 au 11 avril à Las Vegas) et présentera sa solution complète pour Bitbucket. Venez nous voir au stand 102 ou prenez rendez-vous ici.
Comment ajouter un pipe Snyk
Pour permettre à Snyk d’analyser vos dépendances à la recherche de vulnérabilités, ajoutez le pipe Snyk à votre fichier bitbucket-pipelines.yml, indiquez un jeton d’API Snyk (dans les paramètres de votre compte) et définissez le gestionnaire de packages ou le langage (par exemple, « npm »). Voici l’extrait du pipe Snyk :

Voici un exemple de pipe Snyk qui désigne npm comme gestionnaire de packages :
Une fois le pipe intégré à vos pipes, Snyk recherche les fichiers manifestes (package.json, package-lock.json) et lance l’analyse.
Remarque : ajoutez toujours le pipe Snyk comme une étape exécutée après les étapes d’installation ou de build, par exemple : `npm install`, `dotnet restore`, `docker build`, etc.
Vous pouvez également ajouter deux fonctionnalités au pipe :
PROTECT - applique les correctifs Snyk en fonction du fichier de stratégie.snyk, généré au préalable par l’assistant.
MONITOR - Si le test réussit, cette fonctionnalité enregistre un instantané des dépendances de l’application sur snyk.io. Vous pouvez ainsi consulter l’état du code déployé, le surveiller et recevoir des alertes en cas de détection de nouvelles vulnérabilités dans le code.
Et Docker ?
Snyk propose également l’analyse des images Docker, qui vous permet de rechercher des vulnérabilités :
Pour analyser les images Docker, définissez le paramètre IMAGE_NAME.
En définissant TARGET_FILE: “Dockerfile”, vous pouvez consulter les recommandations de correction pour l’image.
Une fois ces commandes ajoutées, le pipe se présente comme suit :
Les variables facultatives importantes incluent :
SEVERITY_THRESHOLD — limite les rapports de Snyk aux vulnérabilités de gravité élevée.
DONT_BREAK_BUILD — indique à Snyk de poursuivre le build malgré les vulnérabilités détectées.
Retrouvez d’autres documents ici.