Skip to content

Comment empêcher les secrets de fuiter via votre pipeline CI/CD ?

Réponse courte

Utilisez la défense en profondeur : les hooks pre-commit (par ex. gitleaks) attrapent les secrets avant qu'ils n'arrivent, l'analyse CI côté serveur attrape ce qui passe, et des analyses périodiques de tout l'historique trouvent les anciennes fuites. Crucialement, un secret qui a atteint un dépôt distant doit être considéré comme compromis et tourné — supprimer le commit n'aide pas car il vit dans l'historique, les forks et les logs. Associez cela à un vrai gestionnaire de secrets pour que les secrets ne soient pas du tout dans le code.

Les identifiants codés en dur sont l'une des erreurs les plus courantes et les plus dommageables en logiciel, et le pipeline est l'endroit où vous les attrapez. Une bonne réponse est en couches.

Attrapez-le avant qu'il n'arrive : pre-commit

Un hook pre-commit (utilisant un scanner comme gitleaks ou detect-secrets) s'exécute sur la machine du développeur et bloque le commit s'il repère une clé d'API, une clé privée ou un token. C'est l'endroit le moins cher pour arrêter une fuite — le secret n'atteint même jamais le serveur. La faiblesse : les hooks sont locaux et peuvent être contournés ou ignorés, donc ils ne peuvent pas être votre seule ligne.

Attrapez ce qui passe : CI côté serveur

Parce que les hooks ne sont pas imposables, exécutez la même analyse côté serveur dans la CI à chaque push et pull request, et idéalement comme une analyse au niveau de la plateforme (analyse de secrets native GitHub/GitLab) que le développeur ne peut pas désactiver. C'est la barrière imposable.

Trouvez les anciennes fuites : analyse de l'historique

Les secrets commités il y a des mois reposent toujours dans l'historique git. Analysez périodiquement tout l'historique, et utilisez la protection au push pour que les secrets détectés par la plateforme soient bloqués au moment du push.

L'impératif : tourner

Voici la partie que les juniors manquent. Une fois qu'un secret a atteint un dépôt distant, il est compromis — point final. Il persiste dans l'historique, dans les clones, dans les forks et dans les logs CI. Supprimer le commit ou réécrire l'historique ne le rend pas sûr. La seule réponse correcte est de tourner l'identifiant immédiatement.

Mieux : ne pas avoir de secrets dans le code

La correction de fond est un gestionnaire de secrets (Vault, KMS/coffres de secrets cloud) pour que les applications récupèrent les secrets à l'exécution et que la CI les injecte comme variables masquées — il n'y a rien à fuiter.

Ce que recherchent les recruteurs

Ils veulent le modèle en couches, l'insistance sur la rotation plutôt que la suppression, et la reconnaissance que les gestionnaires de secrets éliminent le problème à sa source.

Questions de suivi probables

  • Pourquoi supprimer le commit fautif ne suffit-il pas ?
  • Où les secrets devraient-ils réellement résider plutôt que dans le code ?
  • Pourquoi exécuter l'analyse à la fois en pre-commit et côté serveur plutôt qu'une seule ?

Sources

Recevez 100 questions d'entretien en cybersécurité + réponses

Laissez votre e-mail et nous vous enverrons le pack PDF gratuit et le jeu de flashcards.

Pas de spam. Désabonnez-vous à tout moment.