Un seul secret en clair qui fuite, et toute la chaîne s'effondre : jeton de publication, clé de signature, accès cloud. Le domaine Gestion des secrets (SEC) est transversal : les secrets vivent partout (postes, runners, plateforme, cloud).
Un secret n'est pas un objet statique : il est créé, stocké, lu, tourné, révoqué. Chaque étape mal gérée crée un risque : un secret en clair dans un dépôt (le vecteur le plus courant), un jeton de longue durée volé et réutilisé indéfiniment, un accès trop large qui expose tout le trousseau. La meilleure défense est de réduire la valeur d'un secret : le domaine demande de l'inventorier, le stocker en coffre chiffré (jamais en clair), scoper son accès par environnement, le faire tourner et révoquer (TTL, rotation d'urgence testée), de préférer des identités courtes (OIDC) au secret durable, et de détecter les fuites en continu pour révoquer puis tourner.
Concrètement, ces exigences parent : le secret en clair trivialement volé, le secret oublié jamais tourné après une fuite, l'accès trop large à tout le trousseau, et la fuite non détectée qui vit jusqu'à exploitation faute de scan et de réponse. Cette page couvre les 20 exigences SOCLE du domaine, des fondamentales (R1) aux souveraines (R3).
Un secret fuité ou sur-scopé transforme une intrusion locale en compromission étendue.
Les pièges à éviter
Section intitulée « Les pièges à éviter »Les erreurs les plus fréquentes sur ce périmètre :
Les exigences essentielles
Section intitulée « Les exigences essentielles »Six exigences forment la base : inventaire à jour, coffre (jamais en clair), accès scopés et tracés, rotation par criticité, identités courtes (OIDC), et détection de fuite.
inventaire des secrets tenu à jour : type, propriétaire, emplacement, consommateurs, criticité.#
On ne protège ni ne tourne un secret qu'on a oublié : les secrets non recensés sont ceux qui fuitent. Un inventaire à jour (type, propriétaire, emplacement, consommateurs, criticité) donne la visibilité indispensable pour appliquer rotation, moindre privilège et réponse à fuite, préalable de toute gestion de secrets sérieuse.
- Preuve attendue
- Inventaire des secrets à jour : type, propriétaire, emplacement, consommateurs, criticité.
- Outillage
- Gitleaks TruffleHog
Correspondances & menaces parées 6 standards · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
secrets stockés dans un coffre / gestionnaire sûr ; jamais en clair (fichiers, env persistants, historique).#
Un secret en clair (fichier, variable persistante, historique) est trivialement volé et survit là où on l'oublie. Le stocker dans un coffre/gestionnaire sûr centralise sa protection, son audit et sa rotation : il n'existe plus de copie en clair traînant sur un disque ou dans un dépôt, vecteur de fuite numéro un.
- Preuve attendue
- Secrets stockés en coffre ; inspection d'absence de secrets en clair.
- Outillage
- Gitleaks TruffleHog
Correspondances & menaces parées 6 standards · 6 menaces
Un secret (clé, jeton, mot de passe) est inclus par erreur dans l'image ou le paquet publié, exposé à tous ses consommateurs. La fuite se propage à chaque téléchargement de l'artefact CICD-SEC-6. Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6. La configuration d'un agent IA est modifiée pour installer une instruction ou un outil persistant, réactivé à chaque exécution. La persistance s'installe dans la configuration plutôt que dans le code (ATLAS Modify AI Agent Configuration) ATLAS (Modify AI Agent Configuration). Un agent ou un système RAG est manipulé pour collecter et exfiltrer des secrets accessibles via son contexte, ses outils ou sa configuration. Les droits étendus de l'agent en font un collecteur de credentials ATLAS. Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006) ATT&CK T1555.006. Une application OAuth ou intégration SaaS de confiance, au-delà du SCM/CI (CRM, support, observabilité), est compromise ou abusée : consentement OAuth détourné, jetons volés, contournement MFA, pour persister et exfiltrer des données (ex. campagne Salesloft/Drift 2025). La confiance accordée à une intégration tierce devient un accès latéral au SI ATT&CK T1671 OWASP CICD-SEC-8.
accès aux secrets scopés et tracés (moindre privilège, séparation par environnement).#
Un accès aux secrets trop large ou non tracé expose tout le trousseau et masque qui lit quoi. Des accès scopés au moindre privilège, séparés par environnement et tracés limitent ce qu'un compte compromis atteint et permettent de détecter un accès anormal, sur les éléments les plus sensibles de la chaîne.
- Preuve attendue
- Accès aux secrets scopés et tracés ; séparation par environnement.
- Outillage
- Gitleaks TruffleHog
Correspondances & menaces parées 6 standards · 4 menaces
Une fédération OIDC trop permissive (conditions de confiance larges, sujet non contraint) permet à un dépôt ou workflow non autorisé d'obtenir des identifiants cloud. L'identité courte censée remplacer les secrets devient elle-même un chemin d'accès CICD-SEC-6. Un agent ou un système RAG est manipulé pour collecter et exfiltrer des secrets accessibles via son contexte, ses outils ou sa configuration. Les droits étendus de l'agent en font un collecteur de credentials ATLAS. Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006) ATT&CK T1555.006. Une application OAuth ou intégration SaaS de confiance, au-delà du SCM/CI (CRM, support, observabilité), est compromise ou abusée : consentement OAuth détourné, jetons volés, contournement MFA, pour persister et exfiltrer des données (ex. campagne Salesloft/Drift 2025). La confiance accordée à une intégration tierce devient un accès latéral au SI ATT&CK T1671 OWASP CICD-SEC-8.
politique de rotation par criticité et durée de vie (TTL) définie ; rotation d'urgence testée.#
Un secret jamais tourné reste exploitable indéfiniment après une fuite passée inaperçue. Une politique de rotation (TTL par criticité) et une rotation d'urgence testée bornent la durée de vie d'un secret et garantissent qu'on peut le révoquer vite : un secret volé cesse de valoir avant d'avoir servi.
- Preuve attendue
- Politique de rotation et TTL par criticité ; compte rendu d'un test de rotation d'urgence.
- Outillage
- Gitleaks TruffleHog
Correspondances & menaces parées 6 standards · 1 menace
Un paquet compromis vole les jetons de publication des mainteneurs qui l'installent et republie automatiquement d'autres paquets, se propageant de proche en proche (cas Shai-Hulud). L'auto-propagation transforme une compromission isolée en épidémie CNCF Attack Chaining.
identités courtes/éphémères (OIDC) privilégiées sur les secrets de longue durée.#
Un secret de longue durée est un actif à protéger, faire fuir et tourner en permanence. Privilégier des identités courtes/éphémères (OIDC) supprime le secret durable : l'identité ne vaut que le temps de l'opération, éliminant l'objet même que les attaquants cherchent à dérober dans les pipelines.
- Preuve attendue
- Usage d'identités courtes/éphémères (OIDC) plutôt que secrets de longue durée.
- Outillage
- Gitleaks TruffleHog
Correspondances & menaces parées 6 standards · 2 menaces
Un jeton de publication de longue durée fuite (CI, poste, dépôt) et sert à pousser des versions piégées sans interaction avec le compte. La durée de vie excessive du jeton élargit la fenêtre d'abus CICD-SEC-6. Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol CICD-SEC-6.
détection de fuite de secrets (dépôts, postes, images) et procédure de réponse.#
Des secrets fuitent en continu (dépôts publics, images, postes) ; sans détection, la fuite vit jusqu'à exploitation. Un dispositif de détection (scan dépôts, postes, images) couplé à une procédure de réponse (révoquer + tourner) raccourcit la fenêtre entre fuite et neutralisation, là où chaque heure compte.
- Preuve attendue
- Dispositif de détection de fuite de secrets ; procédure de réponse.
- Outillage
- Gitleaks TruffleHog
Correspondances & menaces parées 5 standards · 1 menace
Un paquet compromis vole les jetons de publication des mainteneurs qui l'installent et republie automatiquement d'autres paquets, se propageant de proche en proche (cas Shai-Hulud). L'auto-propagation transforme une compromission isolée en épidémie CNCF Attack Chaining.
Inventorier les secrets
Section intitulée « Inventorier les secrets »On ne protège que ce qu'on connaît : un registre à jour (type, propriétaire, emplacement, consommateurs, criticité), une découverte régulière (scan des dépôts, postes, images, historiques) et une classification par criticité.
registre des secrets tenu à jour : type, propriétaire, emplacement, consommateurs, criticité.#
Sans registre des secrets, on ignore lesquels existent, qui les détient et lesquels sont critiques : impossible de les piloter. Un registre à jour (type, propriétaire, emplacement, consommateurs, criticité) est le socle de toute rotation, revue d'accès et réponse à incident, comme un inventaire l'est pour les actifs.
- Preuve attendue
- Registre des secrets à jour : type, propriétaire, emplacement, consommateurs, criticité.
- Outillage
- TruffleHog
Correspondances & menaces parées 2 standards · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
découverte régulière des secrets (scan dépôts, postes, images, historiques).#
Un inventaire déclaratif rate les secrets oubliés dans le code, les images ou les historiques. Une découverte régulière (scan dépôts, postes, images) confronte le registre à la réalité et débusque les secrets fantômes, souvent les plus dangereux car personne ne les surveille ni ne les tourne.
- Preuve attendue
- Résultats de découverte régulière (scan dépôts, postes, images, historiques).
- Outillage
- TruffleHog
Correspondances & menaces parées 1 standard · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
classification des secrets par criticité et par type.#
Traiter tous les secrets à l'identique sur- ou sous-protège selon les cas. Les classer par criticité et par type permet d'appliquer le bon niveau de contrôle (rotation, coffre durci, accès) proportionné à l'enjeu : un secret de production critique n'est pas géré comme un jeton de test peu sensible.
- Preuve attendue
- Classification des secrets par criticité et par type.
- Outillage
- TruffleHog
Correspondances & menaces parées 1 standard · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
Stocker et autoriser
Section intitulée « Stocker et autoriser »Les secrets vivent en coffre chiffré au repos, jamais en clair (env persistant, historique shell, fichiers de projet). L'accès est scopé au strict nécessaire, séparé par environnement, tracé (qui lit quoi, quand), et refusé par défaut (deny-by-default). Au souverain, un coffre durci (scellement, séparation des rôles) protège le sensible.
secrets dans un coffre / gestionnaire sûr, chiffrés au repos ; jamais en clair.#
Un secret stocké en clair est lisible par quiconque accède au support. Le conserver dans un coffre chiffré au repos, jamais en clair, garantit qu'un accès au stockage ne livre pas les secrets et centralise leur protection : chiffrement et contrôle d'accès du coffre remplacent les copies dispersées et vulnérables.
- Preuve attendue
- Secrets en coffre chiffrés au repos ; inspection d'absence de secrets en clair.
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 3 standards · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
proscrire les secrets en clair dans l'env persistant, l'historique shell, les fichiers de projet.#
Les variables d'environnement persistantes, l'historique shell et les fichiers de projet sont des nids à secrets oubliés, scannés par les attaquants. Les proscrire comme emplacement de secrets supprime des fuites banales : un secret jamais écrit en clair à ces endroits ne peut y être volé.
- Preuve attendue
- Inspection : aucun secret en clair dans env persistant, historique shell, fichiers de projet.
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 1 standard · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
accès scopés au strict nécessaire, séparés par environnement (dev/prod).#
Un accès aux secrets non cloisonné laisse un compromis de dev atteindre les secrets de prod. Des accès scopés au strict nécessaire et séparés par environnement garantissent qu'une fuite côté développement n'expose pas la production, contenant l'impact d'un secret volé à son seul périmètre.
- Preuve attendue
- Accès scopés au strict nécessaire ; séparation par environnement (dev/prod).
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 2 standards · 2 menaces
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6. Une combinaison de permissions IAM individuellement anodines forme un chemin d'élévation ou d'accès non prévu (combinaison toxique). Le risque émerge de l'assemblage des droits, pas d'une permission isolée (ATT&CK T1078.004) ATT&CK T1078.004.
accès aux secrets tracés (qui lit quoi, quand).#
Sans trace des accès, un secret consulté par un attaquant passe inaperçu et l'investigation est aveugle. Journaliser qui lit quoi et quand donne la visibilité pour détecter un accès anormal et reconstituer une fuite : on sait quels secrets ont été touchés lors d'un incident, donc lesquels tourner d'urgence.
- Preuve attendue
- Journaux d'accès aux secrets (qui lit quoi, quand).
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 2 standards · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
secrets sensibles protégés par coffre durci (scellement, audit, séparation des rôles).#
Les secrets les plus sensibles méritent plus qu'un coffre standard. Un coffre durci (scellement, audit, séparation des rôles) élève la protection : aucun administrateur seul n'accède aux secrets, l'accès est audité et le coffre se verrouille au repos, réduisant le risque d'abus interne ou de compromission unique.
- Preuve attendue
- Coffre durci pour secrets sensibles (scellement, audit, séparation des rôles).
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 2 standards · 2 menaces
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6. Les secrets stockés dans un coffre cloud (Secrets Manager, Key Vault) sont lus grâce à des droits excessifs ou un rôle compromis. Le coffre concentre la valeur : un accès indu y donne les clés du royaume (ATT&CK T1555.006) ATT&CK T1555.006.
secrets traités comme sensibles par défaut : accès refusé par défaut (deny-by-default), classification au niveau le plus restrictif tant qu'aucun déclassement explicite n'est justifié.#
Traiter un secret comme anodin par défaut ouvre l'accès trop largement avant qu'on y réfléchisse. Le deny-by-default et une classification au niveau le plus restrictif tant qu'aucun déclassement n'est justifié inversent la charge : un secret est protégé au maximum par défaut, on assouplit seulement sur décision explicite.
- Preuve attendue
- Politique d'accès aux secrets en deny-by-default ; octrois et déclassements explicites tracés.
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 2 standards · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
Faire tourner, révoquer, détecter
Section intitulée « Faire tourner, révoquer, détecter »On réduit la valeur d'un secret dans le temps : une politique de rotation par criticité et un TTL par secret, la préférence pour les identités courtes (OIDC) sur les secrets de longue durée, une rotation d'urgence testée, une détection de fuite avec réponse (révoquer puis tourner), et au souverain, la rotation automatisée des secrets critiques.
politique de rotation par criticité ; durée de vie (TTL) définie par secret.#
Un secret à durée de vie illimitée reste une cible permanente et un risque qui s'accumule. Une politique de rotation par criticité avec une TTL définie par secret borne cette durée : plus un secret est critique, plus il est tourné souvent, réduisant la fenêtre pendant laquelle une fuite reste exploitable.
- Preuve attendue
- Politique de rotation par criticité ; TTL défini par secret.
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 2 standards · 1 menace
Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol CICD-SEC-6.
privilégier les identités courtes/éphémères (OIDC) sur les secrets de longue durée.#
Le secret le plus sûr est celui qui n'existe pas durablement. Privilégier des identités courtes/éphémères (OIDC) sur les secrets de longue durée supprime l'objet à protéger : l'authentification se fait via une identité jetable, éliminant le credential persistant que les attaquants cherchent dans les pipelines et les configurations.
- Preuve attendue
- Usage d'identités courtes/éphémères (OIDC) privilégié.
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 2 standards · 2 menaces
Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol CICD-SEC-6. Une fédération OIDC trop permissive (conditions de confiance larges, sujet non contraint) permet à un dépôt ou workflow non autorisé d'obtenir des identifiants cloud. L'identité courte censée remplacer les secrets devient elle-même un chemin d'accès CICD-SEC-6.
capacité de rotation et de révocation d'urgence testée (cf. exercice de rotation).#
Découvrir qu'on ne sait pas révoquer vite un secret le jour d'une fuite est catastrophique. Tester la rotation et la révocation d'urgence garantit qu'on peut neutraliser un secret compromis en minutes, transformant une fuite détectée en incident contenu plutôt qu'en exposition prolongée le temps de comprendre comment faire.
- Preuve attendue
- Compte rendu d'un test de rotation/révocation d'urgence.
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 1 standard · 2 menaces
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6. Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol CICD-SEC-6.
détection de fuite (scan, alerte) et procédure de réponse (révoquer + tourner).#
Un secret fuité reste exploitable tant qu'il n'est pas révoqué. Une détection (scan, alerte) couplée à une procédure de réponse (révoquer puis tourner) raccourcit la fenêtre entre fuite et neutralisation : on ne se contente pas de constater la fuite, on rend immédiatement le secret volé inutilisable.
- Preuve attendue
- Dispositif de détection de fuite + procédure de réponse (révoquer + tourner).
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 1 standard · 1 menace
Un secret est stocké ou laissé en clair (fichier, variable d'environnement, historique shell, dépôt) et récupéré par un attaquant. La fuite d'un secret transforme un accès local en compromission étendue (cas Codecov) CICD-SEC-6.
rotation automatisée des secrets critiques quand l'outillage le permet.#
La rotation manuelle est oubliée, repoussée, et finit par ne plus se faire. Automatiser la rotation des secrets critiques quand l'outillage le permet garantit qu'elle a réellement lieu, à fréquence définie, sans dépendre d'une discipline humaine faillible : le secret se renouvelle tout seul, fermant la dérive.
- Preuve attendue
- Configuration de rotation automatisée des secrets critiques.
- Outillage
- OpenBao/Vault
Correspondances & menaces parées 1 standard · 1 menace
Un jeton d'accès de longue durée est volé et réutilisé tant qu'il n'est pas révoqué, sans nouvelle authentification. La durée de vie sans rotation maximise la valeur du vol CICD-SEC-6.
Pièges courants
Section intitulée « Pièges courants »- Secret en clair dans Git : le vecteur le plus courant ; le scan pré-commit/CI est indispensable (SEC-0-2, SEC-S2-2).
- Jeton longue durée : un PAT non expirant volé reste exploitable ; préférez l'OIDC (SEC-0-5).
- Accès trop large : un secret prod lisible depuis dev annule la séparation (SEC-S2-3).
- Rotation jamais testée : on découvre qu'on ne sait pas tourner un secret en pleine fuite (SEC-S3-3).
- Pas de détection : une fuite passe inaperçue des mois (SEC-0-6).
À retenir
Section intitulée « À retenir »- Les secrets sont transversaux : ils vivent sur les postes, runners, plateforme et cloud.
- Les essentielles : inventaire, coffre, accès scopés et tracés, rotation, OIDC, détection de fuite.
- Réduire la valeur d'un secret : court (OIDC), scopé, tourné, détecté.
- Aucun secret en clair ; accès deny-by-default.
- La rotation et la révocation d'urgence se testent avant d'en avoir besoin.