detect-secrets
devsecopsDéfinition
detect-secrets est une bibliothèque Python open source développée par Yelp pour détecter les secrets dans le code source avant leur commit dans les dépôts Git. Contrairement à des outils comme GitLeaks ou TruffleHog qui scannent l'historique Git complet, detect-secrets est conçu spécifiquement pour l'intégration comme pre-commit hook — il analyse les diffs en cours de commit pour bloquer les secrets avant qu'ils n'atteignent le dépôt. L'approche de detect-secrets repose sur des plugins de détection basés sur des expressions régulières et des heuristiques pour identifier différents types de secrets : clés AWS, tokens GitHub, clés RSA, mots de passe dans des fichiers de configuration, tokens Slack, JWT, et des dizaines d'autres patterns. Des plugins personnalisés peuvent être ajoutés pour les formats de tokens propriétaires de l'organisation. La fonctionnalité distinctive de detect-secrets est son mécanisme de "baseline" : un fichier .secrets.baseline (JSON) liste tous les secrets détectés dans une baseline approuvée (faux positifs documentés ou secrets révoqués intentionnellement laissés dans l'historique). Lors des scans ultérieurs, seuls les nouveaux secrets non présents dans la baseline déclenchent une alerte. Cette approche permet d'adopter detect-secrets sur des projets existants sans être submergé par les secrets historiques déjà connus. L'intégration typique utilise le framework pre-commit (pre-commit hooks configurés dans .pre-commit-config.yaml). À chaque tentative de commit, detect-secrets scanne le diff et bloque le commit si un nouveau secret est détecté. Le développeur peut alors soit supprimer le secret (solution recommandée), soit l'ajouter à la baseline avec justification (pour les faux positifs confirmés). La gestion centralisée de detect-secrets dans une organisation (baseline partagée, politiques communes, audit des suppressions) est facilitée par des outils comme Yelp's detect-secrets-server qui centralise les baselines et fournit des alertes pour les nouvelles détections dans les pipelines CI.
Système de baseline : gérer les faux positifs
Le fichier .secrets.baseline liste les secrets "connus" (faux positifs approuvés ou secrets historiques révoqués) avec leur hash et localisation. La commande detect-secrets scan > .secrets.baseline génère la baseline initiale. Lors des scans suivants, seuls les secrets non présents dans la baseline bloquent le commit. Pour auditer la baseline : detect-secrets audit .secrets.baseline demande interactivement de classifier chaque entrée (secret réel vs faux positif). Ce processus formel empêche l'accumulation de suppressions non justifiées.
Intégration pre-commit et CI/CD
Dans .pre-commit-config.yaml : repo: https://github.com/Yelp/detect-secrets, hooks: [{id: detect-secrets, args: ['--baseline', '.secrets.baseline']}]. Cette configuration déclenche le scan à chaque commit. Pour la CI, detect-secrets scan --only-allowlisted scanne le repository complet comparé à la baseline. Les deux niveaux (pre-commit local + CI) forment une défense en profondeur : le pre-commit est rapide et intercepte avant le push, la CI couvre les cas où le hook local était désactivé.
Plugins personnalisés pour tokens internes
detect-secrets supporte l'extension via des plugins Python. Un plugin custom détecte les tokens de l'organisation qui ne correspondent pas aux patterns standards (ex : "AYI-{32 hex chars}" comme token d'API interne). Ces plugins sont partagés dans un package Python interne installé dans les environnements de développement. La configuration --plugin path/to/custom_plugin.py référence les plugins additionnels dans la baseline et le hook pre-commit.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h