Aide-mémoire des bonnes pratiques Snyk et Bitbucket
3 mars 2022
0 minutes de lectureAlors que le partenariat entre Snyk et Atlassian ne cesse de se développer, nous avons créé un aide-mémoire des bonnes pratiques pour vous aider à tirer le meilleur parti de notre intégration avec Bitbucket. Il vous aidera à utiliser Bitbucket de manière plus sécurisée pour gérer et stocker votre code, ainsi qu’à surveiller en continu votre code et ses dépendances afin de détecter les vulnérabilités potentielles grâce à Snyk.
Voici les sept bonnes pratiques abordées dans cet article :
Ne stockez jamais d’identifiants dans le code ou les fichiers de configuration sur Bitbucket
Supprimez les données sensibles
Contrôlez rigoureusement les accès
Ajoutez un fichier SECURITY.md
Validez les applications Bitbucket
Bénéficiez de conseils de sécurité dans votre workflow grâce aux informations sur le code
Ajoutez des tests de sécurité aux pull requests

1. Ne stockez jamais d’identifiants dans le code ou les fichiers de configuration sur Bitbucket
Le stockage de mots de passe, de clés API ou d’autres identifiants dans du code accessible au public expose votre application et votre organisation à des risques. Vous devez donc mettre en place des mesures pour éviter d’intégrer des identifiants à vos dépôts Bitbucket.
En interrompant les builds si nécessaire pour empêcher la publication du code sur Bitbucket, le pipeline git-secrets-scan peut bloquer la publication de données sensibles. Cet outil analyse vos fichiers pour repérer les données codées en dur et les signaler dans un rapport de sécurité.
Vous pouvez également rechercher les secrets qui auraient pu passer inaperçus à l’aide de truffleHog, qui analyse les dépôts Git — y compris l’historique des commits et les branches — pour détecter les secrets. Un hook de pré-commit peut aussi empêcher les développeurs d’intégrer un ensemble précis de secrets.
Enfin, vous pouvez vous connecter à un gestionnaire de secrets tel que Hashicorp Vault à l’aide du pipeline d’exportation Vault Secrets, qui récupère automatiquement les secrets depuis HashiCorp Vault lorsque nécessaire, au lieu de les enregistrer dans le dépôt.
2. Supprimez les données sensibles
Comme pour le conseil précédent, il est essentiel de supprimer toutes les données sensibles de votre code stocké dans Bitbucket. Pensez à invalider les jetons ou mots de passe déjà publiés, car des tiers malveillants pourraient les avoir dérobés.
Vous devez également effacer l’historique Git et forcer la publication de l’historique réécrit. Après avoir invalidé les secrets et effacé l’historique Git, évaluez l’impact des éventuelles fuites d’informations privées.
Adaptivist ScriptRunner peut simplifier ces tâches en automatisant la gestion des secrets.
3. Contrôlez rigoureusement les accès
De nombreux incidents de sécurité sont dus à des erreurs humaines et à de mauvaises décisions : il est donc important de mettre en place des contrôles d’accès stricts. Quelques réglages simples suffisent pour réduire le risque que des utilisateurs non autorisés accèdent à votre code dans Bitbucket.
Des contrôles d’accès stricts consistent notamment à :
Exiger l’authentification à deux facteurs pour tous les comptes Bitbucket ajoute une couche de sécurité grâce à une deuxième étape de vérification.
Interdire aux développeurs de partager leurs comptes favorise l’application des principes du moindre privilège et du besoin d’en connaître, des pratiques essentielles en matière de sécurité.
La sécurisation adéquate des appareils physiques ayant accès au code source protège vos ressources en cas de vol.
Révoquer les accès Bitbucket des personnes qui ne travaillent plus pour l’entreprise est essentiel pour protéger votre propriété intellectuelle.
4. Ajoutez un fichier SECURITY.md
Un fichier SECURITY.md permet de communiquer des informations importantes sur la sécurité de votre projet aux futurs contributeurs ou responsables de sa maintenance. Ce fichier doit inclure :
Politique de divulgation : la procédure de signalement des problèmes de sécurité, avec les coordonnées des personnes à contacter et les informations à fournir.
Politique de mise à jour de sécurité : la manière dont le projet informera les utilisateurs des nouvelles vulnérabilités découvertes et de leurs conséquences potentielles.
Configuration liée à la sécurité : les paramètres recommandés aux utilisateurs du projet lorsqu’ils utilisent le code, tels que HTTPS, une couche d’autorisation ou des protocoles de réinitialisation des mots de passe.
Lacunes de sécurité connues et améliorations à venir : les améliorations de sécurité qui n’ont pas encore été apportées, afin d’indiquer les risques que les utilisateurs du projet devront atténuer eux-mêmes.
5. Validez les applications Bitbucket
Les applications Bitbucket étant développées par des tiers, il est important de vérifier qu’elles peuvent être utilisées en toute sécurité. Commencez par vérifier que les droits d’accès de l’application empêchent les utilisateurs indésirables d’accéder à votre code, en limitant les autorisations au strict nécessaire. Pensez également à supprimer ou à désactiver les applications qui ne sont plus utilisées.
Vérifiez également la crédibilité du créateur de l’application, qu’il s’agisse d’un auteur indépendant ou d’une organisation entière. N’oubliez pas que votre sécurité dépend de votre maillon le plus faible : il est donc essentiel de choisir des applications développées par des personnes de confiance.
Enfin, évaluez le niveau de sécurité de l’application Bitbucket elle-même. Si ses mesures de sécurité sont insuffisantes, une faille peut permettre aux attaquants d’accéder à votre code. En auditant régulièrement les applications que vous utilisez, vous pouvez vérifier qu’elles sont toujours nécessaires et sécurisées.
6. Bénéficiez de conseils de sécurité dans votre workflow grâce aux informations sur le code
L’intégration de Snyk avec Bitbucket peut analyser vos pull requests pour vous empêcher d’introduire de nouvelles vulnérabilités. Snyk fournit des annotations détaillées directement dans la pull request, à l’endroit correspondant à la vulnérabilité potentielle, afin que les développeurs puissent prendre rapidement des décisions éclairées.
En plus des informations sur les vulnérabilités des dépendances, Snyk propose des mises à niveau pour y remédier et d’autres conseils pratiques pour atténuer les problèmes, en s’appuyant sur la base de données des vulnérabilités Snyk Intel.
7. Ajoutez des tests de sécurité aux pull requests
Les hooks Bitbucket permettent de lancer une analyse du code pour chaque pull request afin d’en vérifier la qualité et la sécurité. Par exemple, vous pouvez utiliser des webhooks pour détecter des bugs et des problèmes de qualité du code avec SonarCloud, et automatiser les revues de code avec Code Climate.
Grâce aux hooks Bitbucket, Snyk peut analyser chaque pull request pour détecter les vulnérabilités ou les problèmes de licence dans le cadre de votre workflow de développement habituel. Les équipes de développement obtiennent ainsi les informations de sécurité dont elles ont besoin le plus tôt possible.