Skip to main content

Sécurisez votre workflow de build Bitbucket avec Snyk

Écrit par
Headshot of Noa Korem

Noa Korem

Finding open source vulnerabilities within the Bitbucket workflow tumb

5 mars 2019

0 minutes de lecture

Nous 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 :

Éditeur YAML de Bitbucket Pipelines sur la branche master affichant les étapes de build Node.js et la configuration de l’analyse Snyk, à côté d’une liste de pipes de déploiement disponibles.

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 :

Tableau de bord Bitbucket Pipelines listant les exécutions de pipelines, leurs statuts de réussite ou d’échec, les heures de lancement, les durées, les commits et les détails de la branche master

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 :

  1. 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.

  2. Dans le pipeline, l’intégration CI/CD de Snyk empêche le déploiement des applications vulnérables.

  3. 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 :

Page d’analyse Snyk dans Bitbucket Pipelines montrant une configuration YAML pour analyser les dépendances de l’application et les images Docker.

Voici un exemple de pipe Snyk qui désigne npm comme gestionnaire de packages :

script:
 – npm install
 – npm test
 – pipe: snyk/snyk-scan:0.2.0
   variables:
     SNYK_TOKEN: $SNYK_TOKEN
     LANGUAGE: “npm”
– npm publish

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 :

script:
 – docker build -t $IMAGE_NAME .
 – pipe: snyk/snyk-scan:0.2.0
   variables:
     SNYK_TOKEN: $SNYK_TOKEN
     LANGUAGE: “docker”
     IMAGE_NAME: $IMAGE_NAME
     TARGET_FILE: “Dockerfile”
 – docker push $IMAGE_NAME

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.