In this article
L’état des secrets : pourquoi 28 millions d’identifiants ont fuité sur GitHub en 2025, et comment y remédier
« Comment votre entreprise gère-t-elle les clés API ? »
C’est la question posée à la communauté des développeurs sur Hacker News. L’une des réponses les plus plébiscitées tenait en un mot : « mal ».
Les données le confirment : le rapport 2026 de GitGuardian sur la prolifération des secrets révèle que 28,65 millions de nouveaux secrets codés en dur ont été ajoutés à des dépôts publics sur GitHub rien qu’en 2025, soit une hausse de 34 % par rapport à l’année précédente. Le propre rapport de sécurité de GitHub dénombre 39 millions de fuites de secrets en 2024. Une étude universitaire publiée lors de IEEE S\&P 2025, portant sur plus de 80 millions de fichiers, a révélé que jusqu’à 30 % des projets sont exposés à des risques.
Cette tendance se retrouve à tous les niveaux d’expérience et dans les organisations de toutes tailles. Nous examinerons les conséquences juridiques et financières qui ont suivi ce type de compromission d’identifiants.
Ce guide complet explique pourquoi les identifiants fuitent, quels outils permettent de détecter et de prévenir les fuites, et comment mettre en place une défense pratique à plusieurs niveaux. Que vous soyez développeur indépendant cherchant à nettoyer vos fichiers .env ou membre d’une équipe de sécurité déployant des outils d’analyse dans toute une organisation, vous y trouverez des conseils utiles.
Qu’est-ce qu’un « secret » ?
Un secret est toute donnée qui permet d’accéder à un système ou à une ressource. Les exemples les plus évidents sont les clés API, les mots de passe de base de données et les clés privées SSH. Mais la définition s’est considérablement élargie :
Identifiants IAM cloud (clés d’accès AWS, fichiers JSON de comptes de service GCP, secrets client Azure)
Jetons OAuth et jetons d’actualisation
URL de webhook (qui intègrent souvent des informations d’authentification)
Chaînes de connexion (base de données, file de messages, cache)
Clés de chiffrement et certificats de signature
Clés API de services d’IA (OpenAI, Anthropic, Hugging Face, DeepSeek)
Jetons de configuration de serveurs MCP (une catégorie en forte croissance, nous y reviendrons plus loin)
Le guide pratique OWASP sur la gestion des secrets propose une taxonomie détaillée. Le point essentiel : toute donnée utilisée par une machine pour s’authentifier est un secret, et les applications modernes impliquent de nombreuses machines qui communiquent entre elles.
Comment les secrets fuitent
Comprendre comment les secrets sont exposés est la première étape pour prévenir les fuites. Voici les voies les plus courantes, d’après les discussions de la communauté, les recherches universitaires et les données du secteur.
Commits accidentels
C’est le scénario le plus courant : pendant le développement, un développeur ajoute des identifiants au code source (« juste pour tester »), puis valide le fichier dans le système de gestion de versions. Même si le secret est supprimé dans un commit ultérieur, il reste indéfiniment dans l’historique Git. Le modèle de données en ajout uniquement de Git signifie qu’un git rm ne supprime rien réellement. Les attaquants peuvent analyser — et analysent — l’historique complet des dépôts publics.
Un exemple concret tiré d’un fil de discussion sur r/aws : une équipe a intégré directement dans du JavaScript côté frontend des clés d’accès IAM disposant des droits S3 complets, y compris Delete. En quelques jours, un acteur inconnu avait vidé leurs compartiments S3.
Le problème des fichiers .env
Les fichiers .env facilitent le développement, mais ils sont souvent considérés à tort comme une frontière de sécurité. Ils n’ont jamais été conçus pour cela. Les risques sont bien documentés :
Les fichiers
.envsont parfois ajoutés accidentellement à un commit lorsque les développeurs utilisentgit add .au lieu d’ajouter les fichiers un par unIls sont partagés par message Slack, capture d’écran ou application de notes, ou encore copiés dans ChatGPT pour obtenir de l’aide au débogage
Ils sont intégrés aux images Docker à cause de directives
COPY . .utilisées sans précaution
La chaîne SnykSec de Snyk a traité ce sujet en détail :

Pourquoi éviter les secrets dans les fichiers .env. Présente des solutions de remplacement pratiques avec Doppler et 1Password CLI pour injecter les secrets à l’exécution.
La vidéo présente des attaques de la chaîne d’approvisionnement ciblant spécifiquement les fichiers .env (des packages NPM compromis comme tinyColor et ngx-bootstrap), puis montre comment remplacer les fichiers .env statiques par l’injection de secrets à l’exécution à l’aide de Doppler et de la commande op run de 1Password CLI.
Le vecteur de la chaîne d’approvisionnement
Les packages malveillants qui dérobent les identifiants dans les environnements de développement ne relèvent pas de la théorie. Snyk a suivi plusieurs incidents réels :
Le ver Shai-Hulud pour NPM a été conçu pour rechercher et exfiltrer à grande échelle des jetons NPM et GitHub
La compromission de tinyColor/ngx-bootstrap a intégré un logiciel malveillant voleur d’identifiants dans des packages totalisant des millions de téléchargements hebdomadaires
Dans un cas particulièrement notable, des attaquants ont détourné TruffleHog lui-même pour en faire la charge utile d’un package NPM compromis (
@ctrl/tinycolor, 2,2 millions de téléchargements hebdomadaires), exploitant les capacités d’analyse de l’outil de sécurité pour trouver et exfiltrer des secrets
Les surfaces hors code
Les recherches de GitGuardian montrent que 28 % des incidents liés aux identifiants trouvent leur origine entièrement en dehors des dépôts de code. Les secrets fuitent par :
Messages Slack (2,4 % des canaux contiennent au moins un secret divulgué)
Tickets Jira (6,1 % exposent des identifiants, souvent dans les journaux de rapports de bugs)
Pages Confluence (documentation contenant des chaînes de connexion)
Images Docker Hub (plus de 10 000 images trouvées avec des identifiants intégrés)
Plateformes de formatage de code (les développeurs y collent du code dans des outils de formatage en ligne)
Prépublications arXiv (des milliers de clés API cloud ont été trouvées dans des fichiers source LaTeX, selon Dubniczky et al., 2025)
Le facteur du développement assisté par l’IA
C’est le vecteur de fuite qui progresse le plus rapidement. Le rapport 2026 de GitGuardian révèle que 3,2 % des commits assistés par l’IA divulguent des secrets, soit environ deux fois le taux de référence. Plusieurs facteurs l’expliquent :
Les outils de programmation par IA peuvent générer du code fonctionnel contenant des identifiants codés en dur
Les fonctionnalités de complétion de code peuvent mémoriser et réémettre des identifiants provenant des données d’entraînement (Huang et al., 2023, cité 39 fois)
Un incident survenu en 2024 a révélé que Cursor (éditeur de code IA) envoyait le contenu des fichiers
.envà ses serveurs pour la complétion par tabulation, même lorsque les fichiers figuraient dans.cursorignoreLes outils neuronaux de complétion de code ne comprennent pas intrinsèquement ce qui constitue un secret
Les identifiants de services d’IA constituent la catégorie de secrets divulgués qui connaît la croissance la plus rapide, avec une hausse de 81 % sur un an en 2025. Les types les plus souvent divulgués sont les jetons Hugging Face, les clés Azure OpenAI et les identifiants Weights & Biases. À eux seuls, 113 000 clés API DeepSeek ont été détectées en 2025.
Le problème des identifiants MCP
Si vous utilisez des serveurs Model Context Protocol (MCP), vous devez connaître une nouvelle surface d’exposition des identifiants. GitGuardian a trouvé 24 008 secrets uniques dans des fichiers de configuration liés à MCP sur GitHub public, dont 2 117 sont toujours valides.
La cause profonde est révélatrice : la documentation officielle de démarrage rapide de MCP montre souvent des clés API codées en dur directement dans les exemples de configuration. Les développeurs reprennent ces modèles, remplacent les valeurs fictives par leurs véritables clés et valident le fichier de configuration. L’écosystème MCP se développe rapidement, et cette pratique se répand à la même vitesse.
Snyk a largement traité de la sécurisation des serveurs MCP et des risques liés au développement agentique de l’IA. Les recherches sur les serveurs MCP malveillants et les fuites d’identifiants dans les écosystèmes Agent Skills apportent un éclairage supplémentaire : les outils utilisés pour créer des applications d’IA deviennent eux-mêmes des vecteurs d’exposition des identifiants.

Le secret pour sécuriser le code IA. Découvrez comment Snyk s’intègre aux workflows de développement IA pour détecter les problèmes de sécurité dans le code généré.
SAST et analyse des secrets : des pratiques liées, mais distinctes
Dans les communautés de développeurs, l’une des idées fausses les plus souvent citées est qu’un outil SAST (tests statiques de sécurité des applications) couvre l’analyse des secrets. Ces disciplines sont complémentaires, mais distinctes, et il est important de comprendre la différence.
Les outils SAST comme Snyk Code analysent votre code source pour détecter les vulnérabilités de sécurité, notamment les failles d’injection, la désérialisation non sécurisée, les contournements d’authentification et d’autres problèmes similaires au niveau du code. Ils analysent généralement l’arborescence de travail (l’état actuel des fichiers).
Les outils dédiés à l’analyse des secrets ont un périmètre différent : ils analysent l’historique Git complet, notamment chaque commit, chaque branche et chaque fichier supprimé encore présent dans le magasin d’objets. C’est important, car :
Un secret ajouté dans un commit puis supprimé dans le suivant reste dans l’historique Git
La fusion des commits n’élimine pas les données « orphelines », accessibles par le hachage SHA-1
Les fichiers supprimés restent analysables dans les fichiers
.packUn récit de programme de bug bounty a documenté 64 000 $ de gains obtenus uniquement en analysant des fichiers supprimés et des objets blob orphelins dans des dépôts publics
En pratique, les organisations ont intérêt à utiliser à la fois le SAST pour détecter les vulnérabilités de sécurité au niveau du code et des outils d’analyse dédiés pour repérer l’exposition des identifiants. Ces solutions couvrent des surfaces de risque différentes. Comme l’a expliqué un professionnel sur r/devsecops : « Un outil d’analyse des secrets recherche également les secrets dans l’historique Git, ce qui peut prendre du temps selon la taille de vos dépôts. »
Panorama des outils d’analyse des secrets
L’écosystème open source des outils d’analyse des secrets a considérablement mûri. Voici à quoi ressemble le paysage en 2026, avec une évaluation honnête des points forts et des limites de chaque outil.
TruffleHog
TruffleHog (environ 25 300 étoiles, Go, AGPL-3.0) a été créé par Dylan Ayrey en 2016. Il est désormais maintenu par Truffle Security Co., qui a levé 25 millions de dollars lors d’un financement de série B en novembre 2025.
La vérification en temps réel des identifiants est une fonctionnalité remarquable. Au-delà de la comparaison de motifs à l’aide de règles regex, TruffleHog peut valider activement les identifiants détectés auprès des API des fournisseurs pour confirmer qu’ils sont toujours actifs. Cela peut réduire considérablement les faux positifs. L’outil comprend plus de 800 détecteurs et une option --only-verified qui filtre les résultats pour ne conserver que les identifiants dont l’activité a été confirmée.
TruffleHog analyse l’historique Git, les compartiments S3, les organisations GitHub/GitLab (y compris les issues, les demandes de fusion et les commentaires), les images Docker, Jira, Confluence, Slack et Syslog. Il couvre ainsi un large éventail de surfaces où des identifiants peuvent apparaître.
Limites : La licence AGPL-3.0 constitue un obstacle avéré à l’adoption en entreprise ; plusieurs discussions sur Hacker News et Reddit indiquent que les équipes juridiques peuvent la refuser. TruffleHog est également gourmand en ressources lors d’analyses à grande échelle et plus lent que les solutions qui se limitent aux expressions régulières.
Gitleaks
Gitleaks (environ 25 700 étoiles, Go, MIT) est l’un des outils open source d’analyse des secrets les plus utilisés. Créé par Zach Rice, il permet des analyses rapides et configurables grâce à des règles personnalisées au format TOML.
Gitleaks se distingue par sa rapidité et sa configurabilité. Il est idéal pour les hooks pre-commit, où chaque milliseconde compte. Sa licence MIT facilite son adoption en entreprise.
Le compromis : les faux positifs. Gitleaks utilise la détection par expressions régulières sans vérification en temps réel. Il signale donc des motifs qui ressemblent à des secrets sans en être. Dans r/devsecops, les professionnels conseillent systématiquement d’exécuter d’abord Gitleaks en mode de référence, puis d’ajuster les faux positifs hors ligne avant d’activer le blocage. La règle generic-api-key est une source de bruit particulièrement fréquente.
Fait notable, Zach Rice (u/Phorcez) lui-même a reconnu ce compromis : « Gitleaks est léger, rapide et hautement configurable, mais ne vérifie pas les identifiants. Pour cela, mieux vaut utiliser un outil comme TruffleHog, ou, mieux encore, TruffleHog Enterprise. »
Autres outils notables
Nosey Parker (2 300 étoiles, Rust, Apache 2.0). Développé par le cabinet de tests d’intrusion Praetorian. Utilise un algorithme d’entropie des chaînes, considéré comme plus efficace que les expressions régulières seules pour détecter des secrets génériques. Rapide et écrit en Rust.
Kingfisher (876 étoiles, Rust, Apache 2.0). L’outil lancé par MongoDB en 2025, qui revendique une vitesse 2 à 5 fois supérieure à celle de Gitleaks. Il ajoute la vérification en temps réel et la cartographie du rayon d’impact (quels accès une clé divulguée permet-elle réellement d’obtenir ?). Fork de Nosey Parker. Utilise tree-sitter pour comprendre le contexte selon le langage. La fonctionnalité de rayon d’impact est véritablement novatrice.
git-secrets (13 200 étoiles, Shell, Apache 2.0). Un hook léger basé sur bash, développé par AWS Labs. Axé sur les identifiants AWS et considéré comme « abouti » dans son périmètre.
ggshield (1 900 étoiles, Python, MIT). L’interface en ligne de commande de GitGuardian, qui détecte plus de 500 types de secrets et s’appuie sur une plateforme commerciale. En mars 2026, l’outil a ajouté des hooks pour les assistants de codage IA, avec la prise en charge de Cursor et Claude.
Talisman (2 100 étoiles, Go, MIT). Développé par ThoughtWorks. S’installe comme hook Git global dans tous les dépôts, une solution efficace pour appliquer des règles à l’échelle d’une organisation.
ripsecrets (900 étoiles, Rust, MIT). Un hook pre-commit ciblé et rapide, avec un faible taux de faux positifs grâce à des règles prudentes.
Ce que révèlent les benchmarks universitaires
Des chercheurs de la NC State University ont publié la première étude comparative rigoureuse des outils de détection des secrets, à partir de leur jeu de données SecretBench (97 479 occurrences annotées issues de 818 dépôts). Leurs conclusions sont éclairantes :
Gitleaks : rappel de 88 % (le plus élevé), précision de 46 %
GitHub Secret Scanner : précision de 75 % (la plus élevée), rappel inférieur
TruffleHog : rappel de 52 %, précision moyenne
Chevauchement entre les outils : seulement 76 % entre les vrais positifs de ggshield et TruffleHog. Seulement 18 % entre ggshield et Gitleaks.
L’équipe de recherche recommande explicitement de combiner plusieurs outils, car aucun des outils étudiés ne détectait tous les types de secrets. Ces données plaident en faveur d’une approche par couches.
L’approche émergente fondée sur les LLM
FuzzingLabs a comparé la détection des secrets par LLM aux outils traditionnels sur des bases de code réelles. Résultats : GPT-5-mini atteint un rappel de 84,4 %, contre 37,5 % pour Gitleaks. La recherche universitaire confirme cette tendance : des modèles open source affinés (LLaMA-3.1 8B, Mistral-7B) obtiennent des scores F1 de 0,985 sur le jeu de données SecretBench.
Les LLM peuvent détecter des schémas qui échappent souvent aux outils basés sur des expressions régulières : secrets répartis sur plusieurs variables, jetons masqués, variables décodées et identifiants laissés en commentaires. C’est probablement la prochaine vague d’outils de détection.
À l’attention des responsables de projets open source
Bon nombre des outils évoqués dans cet article sont eux-mêmes des projets open source, et l’écosystème des outils de gestion des identifiants continue de se développer. Si vous maintenez un projet open source dans ce domaine (ou dans un autre), le Snyk Secure Developer Program fournit gratuitement une analyse de sécurité de niveau entreprise, notamment SAST, SCA, des conteneurs et de l’IaC, aux projets open source admissibles. C’est une façon d’appliquer aux outils eux-mêmes cette même approche de sécurité par couches.
Outils de gestion des secrets : où les stocker ?
La détection des secrets divulgués ne résout qu’une partie du problème. Il faut aussi veiller à ce que les secrets soient stockés et distribués de manière sécurisée dès le départ.
HashiCorp Vault
Vault (35 300 étoiles) reste la référence en entreprise pour la gestion des secrets. Sa fonctionnalité phare : les secrets dynamiques, qui génèrent des identifiants à courte durée de vie à la demande plutôt que de stocker des identifiants valides à long terme. Vault prend également en charge le chiffrement en tant que service, la PKI et la signature de certificats SSH.
Deux éléments de contexte importants : la licence de Vault est passée de MPL à BSL 1.1 en 2023, suscitant l’intérêt pour le fork communautaire OpenBao. Par ailleurs, IBM a acquis HashiCorp pour environ 6,4 milliards de dollars, faisant de Vault un élément de la plateforme IBM.
Les professionnels soulignent que Vault est puissant, mais complexe. Un commentaire révélateur sur r/devops : « environ deux tiers des clients qui ont implémenté [Vault] eux-mêmes l’ont mal fait et gèrent leurs secrets de façon tout aussi peu sécurisée, voire moins, que s’ils n’utilisaient aucun outil ». Vault donne les meilleurs résultats lorsqu’il est traité comme un enjeu d’infrastructure bénéficiant d’un accompagnement dédié par les équipes opérationnelles.
Infisical
Infisical (25 600 étoiles, MIT) est la plateforme open source de gestion des secrets qui connaît la croissance la plus rapide. Elle réunit gestion et analyse des secrets, ainsi que PKI, au sein d’un même produit mis à jour quotidiennement. YC W23. En auto-hébergement ou dans le cloud.
Depuis le changement de licence BSL de Vault, les discussions communautaires témoignent d’un intérêt croissant pour les solutions de remplacement sous licence MIT. Infisical propose des fonctionnalités d’entreprise (RBAC, journaux d’audit, séparation des environnements, opérateur Kubernetes) tout en conservant une licence open source. La solution est souvent mentionnée aux côtés de Vault et Doppler dans les discussions communautaires de 2024-2025.
SOPS
SOPS (21 300 étoiles, MPL 2.0) adopte une approche différente : il chiffre les secrets directement dans les fichiers YAML, JSON ou ENV, puis permet de valider les fichiers chiffrés dans Git. Les clés restent lisibles (ce qui est important pour les diffs et le linting), tandis que les valeurs sont chiffrées via AWS KMS, GCP KMS, Azure Key Vault ou age.
SOPS est souvent évoqué dans les discussions sur les workflows GitOps et constitue une recommandation courante dans les fils du type « comment gérez-vous vos secrets ? ». Associé à direnv pour le développement local, il offre une solution pratique aux équipes qui souhaitent valider des secrets de façon sécurisée dans le système de gestion de versions.
Autres outils de gestion
Doppler : une solution SaaS commerciale fréquemment recommandée dans les discussions communautaires récentes. Gestion des secrets sans infrastructure, avec séparation des environnements.
1Password CLI (
op run) : injecte les secrets au moment de l’exécution sans les écrire sur le disque. La vérification biométrique (demande de Touch ID avant l’injection des secrets) améliore sensiblement la sécurité par rapport aux fichiers statiques.dotenvx (5 300 étoiles) : créé par l’auteur de
dotenv. Des fichiers.env.vaultchiffrés qui font le lien entre les méthodes simples de développement et une gestion adéquate des secrets.External Secrets Operator (6 500 étoiles) : la norme de fait sur Kubernetes pour synchroniser les secrets depuis plus de 30 services externes.
Mettre en place une défense par couches : guide pratique
Aucun outil ni aucune pratique ne peut empêcher toutes les fuites d’identifiants. Le consensus du secteur, qui se dégage de Reddit, Hacker News, OWASP et de la recherche universitaire, privilégie une défense par couches :
Couche 1 : hooks pre-commit (détecter avant la validation)
Installez un outil d’analyse des secrets (comme Gitleaks, ggshield ou TruffleHog) en tant que hook pre-commit. Vous obtenez ainsi un retour rapide et détectez la majorité des validations accidentelles.
# .pre-commit-config.yaml
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.30.1
hooks:
- id: gitleaksImportant : les hooks pre-commit côté client peuvent être contournés (--no-verify). Pour un contrôle plus strict, mettez en place des hooks pre-receive côté serveur qui bloquent au niveau du dépôt les pushs contenant des secrets.
Lors du premier déploiement de l’analyse, utilisez le mode de référence : analysez tout l’historique du dépôt, validez les résultats existants, puis ne déclenchez des alertes que pour les nouveaux secrets. Vous éviterez ainsi la lassitude liée aux faux positifs, qui peut compromettre l’adoption.
Couche 2 : analyse CI/CD (détecter ce que le pre-commit a manqué)
Ajoutez une étape d’analyse à votre pipeline CI. Les outils qui prennent en charge la vérification des identifiants (comme l’option --only-verified de TruffleHog) peuvent réduire le bruit en vérifiant si les identifiants détectés sont toujours actifs :
# Example using TruffleHog
trufflehog git file://. --only-verified --failCette couche détecte les secrets qui ont échappé aux hooks pre-commit (hooks désactivés, commits fusionnés par squash, pushs forcés ou contributions issues de forks).
Couche 3 : coffre-fort centralisé de secrets (éliminer la source des fuites)
Supprimez complètement les secrets des fichiers .env, des variables d’environnement et des fichiers de configuration. Utilisez un gestionnaire de secrets dédié pour les injecter à l’exécution :
Environnements AWS : AWS Secrets Manager ou SSM Parameter Store avec des rôles IAM
Multi-cloud : Vault, Infisical ou Doppler
Kubernetes : External Secrets Operator pour synchroniser les secrets depuis le coffre-fort de votre choix
Petites équipes : SOPS + age pour chiffrer la configuration, ou dotenvx pour chiffrer
.env
Le gestionnaire de secrets doit être l’unique source de référence, et non une copie supplémentaire à côté de secrets encore présents dans des fichiers .env, des variables CI et des wikis d’équipe.
Couche 4 : OIDC pour la CI/CD (éliminer complètement les identifiants statiques)
Une évolution architecturale à envisager : remplacer les identifiants CI/CD statiques par une identité fédérée basée sur OIDC.
# GitHub Actions example - no stored AWS credentials
permissions:
id-token: write
contents: read
steps:
- uses: aws-actions/configure-aws-credentials@v4
with:
role-to-arn: arn:aws:iam::123456789:role/deploy
aws-region: us-east-1Ce modèle utilise le fournisseur OIDC de GitHub pour demander des identifiants AWS à courte durée de vie via AssumeRoleWithWebIdentity. Aucune clé d’accès IAM n’est stockée. Le consensus de la communauté sur Hacker News et r/devops est clair : les identifiants statiques dans les secrets GitHub sont désormais une mauvaise pratique.

Couche 5 : analyse périodique de l’historique complet (détecter les fuites anciennes)
Planifiez des analyses régulières de l’historique de tous les dépôts de votre organisation. Vous détecterez ainsi :
Les secrets validés avant la mise en place de l’analyse
Les secrets dans des commits supprimés et des objets Git orphelins
Les anciens dépôts passés du statut privé au statut public
Plusieurs outils permettent d’analyser toute une organisation. Par exemple, TruffleHog peut analyser une organisation GitHub entière :
trufflehog github --org=your-org --only-verifiedCouche 6 : format des jetons (rendre les secrets identifiables)
Si vous développez des API, concevez des jetons qui peuvent être identifiés. En 2021, la refonte du format des jetons de GitHub (avec des préfixes connus comme ghp_ et des sommes de contrôle intégrées) a considérablement amélioré la précision de l’analyse. Le préfixe sk_live_ de Stripe en est l’exemple emblématique.
Les jetons auto-identifiables amplifient l’efficacité de tous les outils d’analyse de l’écosystème. Un responsable produit de GitHub a explicitement encouragé tous les fournisseurs de services à adopter cette approche.
En cas de fuite de secrets : réponse aux incidents
Même avec toutes ces couches en place, des fuites se produisent. Voici la procédure à suivre :
Faites immédiatement une rotation des identifiants. Ne tergiversez pas et ne commencez pas par enquêter. Révoquez l’identifiant et générez-en un nouveau. Des bots de détection automatisés analysent l’API GitHub quelques minutes après un push public.
Vérifiez les journaux d’audit. Consultez CloudTrail, GCP Audit Logs ou tout service équivalent pour repérer une éventuelle utilisation non autorisée de l’identifiant exposé.
Évaluez le rayon d’impact. Quels accès l’identifiant permettait-il ? Quelles données auraient pu être consultées ?
Le nettoyage de l’historique est secondaire. Utilisez git filter-repo ou BFG Repo-Cleaner pour supprimer le secret de l’historique Git si les exigences de conformité l’imposent. La rotation répond au risque de sécurité ; le nettoyage de l’historique répond aux exigences de conformité et d’hygiène. Dès qu’un secret a été rendu public, même brièvement, considérez-le comme compromis, que l’historique soit nettoyé ou non.
Le consensus des professionnels sur r/devsecops : faites tourner le secret (l’historique ne présente alors plus de risque) et ne nettoyez l’historique que si la conformité l’exige. Certaines organisations laissent même les identifiants révoqués dans l’historique comme indicateur de honeypot.
La réalité juridique : les fuites d’identifiants ont des conséquences
Le paysage juridique de la sécurité des identifiants a considérablement évolué. Ces affaires montrent pourquoi leur gestion est un enjeu stratégique pour les entreprises :
United States v. Sullivan (9th Cir. 2025). Le responsable de la sécurité de Uber a été condamné au pénal pour obstruction à la justice et non-dénonciation d’un crime, après avoir dissimulé une violation causée par des identifiants AWS codés en dur dans des dépôts GitHub. Les attaquants ont découvert ces identifiants et accédé à un stockage S3 contenant les données de 57 millions d’utilisateurs. L’équipe de Sullivan leur a versé 100 000 dollars dans le cadre du programme de chasse aux bugs sans signaler la violation. La cour d’appel du 9e circuit a confirmé la condamnation, établissant que les dirigeants peuvent être tenus personnellement responsables au pénal s’ils dissimulent des violations liées à des identifiants.
Capital One (2022). Une ancienne ingénieure AWS a exploité une vulnérabilité SSRF pour dérober des identifiants de métadonnées IAM du cloud, ce qui lui a permis d’accéder aux données d’environ 100 millions de clients. Le recours collectif civil s’est conclu par un accord transactionnel de 190 millions de dollars.
Application de la FTC. À la suite de FTC v. Wyndham (3d Cir. 2015) (73 citations), les accords amiables conclus avec la FTC imposent désormais systématiquement des programmes obligatoires de rotation des identifiants, l’analyse des dépôts de code à la recherche de secrets et l’interdiction de coder des identifiants en dur dans le code source. La FTC a conclu des accords dans des procédures visant Uber, Meta et d’autres entreprises pour des défaillances en matière de sécurité des identifiants.
SEC v. SolarWinds (S.D.N.Y., 2023). La SEC a engagé des poursuites, alléguant que SolarWinds avait présenté aux investisseurs une image trompeuse de ses pratiques réelles de gestion des secrets. Les principales accusations ont résisté à un rejet partiel, étendant la responsabilité liée aux violations de données au domaine du droit boursier.
La violation de données chez Equifax, due à des défaillances en matière d’identifiants et de contrôle des accès, a abouti à un accord de 700 millions de dollars avec la FTC, le plus important accord de ce type dans l’histoire de la FTC.
6 principes clés
Ces constats s’appuient sur OWASP, des travaux universitaires et les échanges entre professionnels :
Les dépôts privés contiennent plus de secrets que les dépôts publics. GitGuardian a constaté que les dépôts privés sont 6 fois plus susceptibles de contenir des secrets codés en dur que les dépôts publics. Les dépôts privés sont clonés, dupliqués, consultés par des sous-traitants et parfois rendus publics.
Les secrets validés persistent dans l’historique Git. Même s’ils sont supprimés lors du commit suivant, ou si le dépôt est privé. Le modèle de données en ajout uniquement de Git implique que tout identifiant validé doit être considéré comme exposé.
La couverture varie selon les outils. Des évaluations universitaires révèlent un chevauchement de seulement 18 à 76 % entre les ensembles de vrais positifs des différents outils. L’utilisation de plusieurs outils à différents niveaux améliore la couverture.
La rotation des identifiants réduit les risques ; le nettoyage de l’historique répond aux exigences de conformité. Révoquer l’identifiant neutralise le risque lié à l’historique Git. Nettoyer l’historique sans effectuer de rotation ne suffit pas.
La détection seule a peu de valeur sans suivi. 64 % des secrets divulgués en 2022 étaient toujours actifs en 2026. Les organisations qui détectent les problèmes sans les corriger s’exposent toujours aux mêmes risques.
Les postes de travail des développeurs constituent une surface d’attaque en pleine expansion. Les attaques de la chaîne d’approvisionnement, les outils de programmation IA ayant accès aux fichiers et les injections de prompt ciblant les serveurs MCP créent autant de voies d’exfiltration d’identifiants depuis les machines locales. Les recherches de Snyk sur les agents de programmation IA transformés en armes couvrent cette nouvelle surface d’attaque.
Par où commencer
La défense en couches décrite ci-dessus peut sembler difficile à mettre en œuvre d’un seul coup. Bonne nouvelle : chaque couche apporte des bénéfices à elle seule, et vous pouvez les adopter progressivement.
Commencez par gagner en visibilité - Avant de corriger les fuites d’identifiants, vous devez savoir où elles se trouvent. Ajoutez un hook de scan avant commit (des outils comme Gitleaks, ggshield et TruffleHog le prennent tous en charge) pour détecter les nouvelles fuites, puis lancez un scan à l’échelle de l’organisation avec vérification des identifiants pour comprendre votre niveau d’exposition actuel. Si vous utilisez déjà Snyk Code pour l’analyse SAST, associez-le à un outil dédié à la détection des secrets afin de couvrir à la fois les vulnérabilités au niveau du code et l’exposition des identifiants.
Auditez vos
.envfichiers et secrets CI/CD - Vérifiez si des identifiants réels sont présents dans le contrôle de version, même dans des dépôts privés. Faites tourner tous ceux qui ont été validés. Examinez vos pipelines CI/CD pour repérer les identifiants statiques qui pourraient être remplacés par une identité fédérée fondée sur OIDC.Évaluez votre approche de gestion des secrets. -Si votre équipe transmet encore des identifiants dans des fichiers
.envou configure manuellement des variables d’environnement, envisagez des solutions centralisées comme Infisical, Vault ou Doppler, qui injectent les secrets à l’exécution.Sécurisez vos workflows de développement IA - Si votre équipe utilise des assistants de programmation IA ou des serveurs MCP, vérifiez qu’aucun identifiant n’est codé en dur dans leur configuration. L’intégration du serveur MCP de Snyk peut analyser en temps réel le code généré par l’IA, et Snyk Open Source aide à détecter les dépendances compromises avant qu’elles n’atteignent votre base de code (le même vecteur de chaîne d’approvisionnement que celui utilisé pour diffuser des malwares qui dérobent des identifiants).
Sensibilisez l’ensemble de l’organisation - Les outils et les pratiques d’équipe contribuent tous deux à une gestion efficace des identifiants. La plateforme de sécurité des développeurs de Snyk intègre l’analyse SAST, SCA, la sécurité des conteneurs et l’analyse IaC aux workflows des développeurs, offrant aux équipes une vue unifiée de leur posture de sécurité. Lorsque les développeurs peuvent voir les problèmes de sécurité dans leurs outils habituels, l’adoption suit naturellement.
La réponse la plus votée sur HN était honnête. De nombreuses organisations gèrent mal leurs identifiants. Mais les outils, les pratiques et les connaissances de la communauté pour faire mieux n’ont jamais été aussi accessibles.
Vos applications Python sont-elles prêtes à faire face à la hausse des fuites de secrets et des risques d’exposition des identifiants liés à l’IA, évoqués ci-dessus ? Téléchargez le livre blanc « La crise de la sécurité de l’IA dans votre environnement Python » pour découvrir comment les équipes de premier plan sécurisent les workflows de développement propulsés par l’IA.
LIVRE BLANC
La crise de la sécurité de l’IA dans votre environnement Python
Avec l’accélération fulgurante du développement, savez-vous vraiment à quoi votre environnement d’IA peut accéder ?