Défense

Gestion des secrets

Un secret est une donnée qui donne un accès : mot de passe, token, clé API, clé privée, chaîne de connexion ou certificat client. Une mauvaise gestion des secrets est une cause fréquente d'incidents.


Exemples de secrets

  • mot de passe
  • token d'API
  • clé privée SSH
  • clé privée TLS
  • webhook secret
  • chaîne de connexion base de données
  • token CI/CD
  • clé cloud longue durée

Un secret exposé doit être considéré comme compromis.


Mauvais emplacements

À éviter :

  • code source
  • dépôt Git
  • image Docker publique
  • logs applicatifs
  • captures d'écran
  • tickets support publics
  • JavaScript côté client
  • fichier partagé sans contrôle

Un fichier .env peut être pratique, mais il doit être protégé et exclu du dépôt.


Rotation

La rotation consiste à remplacer un secret par un nouveau.

Elle est nécessaire quand :

  • le secret est exposé
  • une personne quitte un périmètre
  • un service change
  • la politique interne l'exige
  • le secret est trop ancien

La rotation doit être testée pour éviter les interruptions de service.


Secret manager

Un gestionnaire de secrets permet de stocker, distribuer et auditer les secrets.

Fonctions utiles :

  • chiffrement au repos
  • contrôle d'accès
  • journalisation
  • rotation
  • versions
  • séparation par environnement

Bonnes pratiques

  • un secret par usage
  • droits minimaux
  • séparation dev, staging et production
  • expiration quand c'est possible
  • rotation documentée
  • détection de secrets dans Git
  • pas de secret dans les logs
  • révocation immédiate en cas de fuite

Réaction à une fuite

  1. Révoquer le secret
  2. Générer un nouveau secret
  3. Déployer proprement
  4. Chercher les usages abusifs
  5. Nettoyer l'historique si nécessaire
  6. Documenter l'incident
  7. Corriger la cause

À retenir

Un secret doit être rare, limité, protégé, journalisé et révocable. Le stocker proprement est aussi important que le générer.

Précédent
Sysmon