Deadshot : conserver les données sensibles en dehors du code
Temps de lecture: 2 minutes
Le code n'est pas un endroit sûr pour les informations d'identification, les clés secrètes, les instructions SQL ou autres types de données sensibles. Mais tout le monde fait des erreurs, et il est important de détecter les erreurs humaines avant qu'elles n'entraînent de vrais problèmes.
Il est impossible de surveiller manuellement l'ensemble de la base de code d'une organisation dans l'espoir de détecter les changements sensibles avant qu'ils ne soient mis en service pour toujours sur Github. Il s'agit d'un problème auquel toutes les équipes de sécurité sont confrontées lorsqu'elles traitent le code produit.
L'équipe de sécurité des produits de Twilio avait besoin d'un moyen automatisé pour s'assurer que les développeurs n'ajoutaient pas accidentellement des données sensibles aux répertoires de code et de signaler les modifications sensibles pour tout examen de sécurité. Nous savions que nous ne pouvions pas surveiller tout le code manuellement. Notre solution : un outil automatisé permettant de surveiller les répertoires GitHub en temps réel, de détecter les données sensibles lors des pull requests, et de signaler les problèmes et les modifications apportées aux fonctionnalités sensibles pour une révision manuelle. C'est ainsi qu'est né Deadshot, que nous sommes heureux de publier aujourd'hui comme outil open source.
Deadshot : un service automatisé pour surveiller Github
Deadshot est une application Github que vous pouvez installer sur votre organisation Github. Deadshot s'exécute à chaque validation, en utilisant des expressions régulières pour analyser le fichier diff des pull requests afin d'effectuer la recherche qui vous intéresse. S'il trouve une correspondance, il ajoute un commentaire à la pull request et peut également notifier un canal Slack spécifié. De plus, il crée un ticket JIRA dans la file d'attente des données de votre équipe de sécurité si la pull request est fusionnée sans traiter les clés secrètes identifiées.
Conception de Deadshot
Nous voulions créer une solution de type « deploy-and-forget » (déploie et oublie) qui surveille en permanence les données sensibles correspondant à un ensemble prédéfini d'expressions régulières que nous avons considéré comme largement utilisé dans notre entreprise. Il devait s'agir d'un service auquel nous n'aurions pas besoin de toucher, sauf pour ajouter ou supprimer des expressions régulières correspondant à des données sensibles.
Deadshot est une application multi-conteneurs Flask-Celery-Redis basée sur Python, qui est installée en tant qu'application Github et qui s'exécute à chaque pull request créée sur la branche principale d'un répertoire où vous l'installez.
Le conteneur Flask expose les routes API pour recevoir les charges utiles de pull request. Lorsqu'une charge utile de pull request est reçue, le service transfère la charge utile à une file d'attente Redis. Le conteneur Celery récupère la charge utile de la file d'attente et analyse le diff de la pull request, en recherchant les données sensibles spécifiées. S'il trouve une correspondance, le conteneur Celery ajoute des commentaires à la pull request, notifie le canal Slack approprié ou crée un ticket JIRA.
Essayez Deadshot
Chez Twilio, Deadshot s'est révélé très utile pour capturer les données sensibles dans les pull requests avant qu'elles ne soient fusionnées dans un répertoire. Nous sommes ravis de publier cette application auprès de la communauté open source et nous avons hâte de découvrir comment votre entreprise exploitera Deadshot.
Pour en savoir plus sur le déploiement de Deadshot, rendez-vous sur : https://github.com/twilio-labs/deadshot
Laxman Eppalagudem est ingénieur senior chargé de la sécurité des produits chez Twilio. Il se concentre sur la sécurisation des produits de Twilio avant qu'ils ne soient commercialisés auprès des clients. Vous pouvez le contacter à l'adresse : seppalagudem [at] twilio.com
Articles associés
Ressources connexes
Twilio Docs
Des API aux SDK en passant par les exemples d'applications
Documentation de référence sur l'API, SDK, bibliothèques d'assistance, démarrages rapides et didacticiels pour votre langage et votre plateforme.
Centre de ressources
Les derniers ebooks, rapports de l'industrie et webinaires
Apprenez des experts en engagement client pour améliorer votre propre communication.
Ahoy
Le hub de la communauté des développeurs de Twilio
Meilleures pratiques, exemples de code et inspiration pour créer des expériences de communication et d'engagement numérique.