Analyse des secrets et identifiants codés en dur
Empêchez la validation de clés d’API et de mots de passe avec git-secrets, gitleaks et des hooks pre-commit.
Analyse des secrets et identifiants codés en dur est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.
Le problème des secrets codés en dur
Les développeurs enregistrent accidentellement des clés d’API, des mots de passe, des clés privées et des jetons dans les dépôts de code source. Une fois présents dans l’historique de Git, ces secrets y persistent même après leur suppression. Des robots aspirent les dépôts publics dans les secondes qui suivent une publication.
Que contient une validation
Secrets couramment trouvés dans les dépôts :
- Clés d’accès AWS (
AKIA...) - Jetons d’accès personnels GitHub
- Mots de passe de base de données dans des fichiers config
- Clés d’API Stripe ou de paiement
- Clés privées TLS/SSH
- URL de rappel Slack
Crochets avant validation pour prévenir les fuites
Empêchez les secrets d’atteindre Git dès le départ :
# Install gitleaks as a pre-commit hook:
pip install pre-commit
# .pre-commit-config.yaml:
repos:
- repo: https://github.com/zricethezav/gitleaks
rev: v8.18.1
hooks:
- id: gitleaksAnalyser les dépôts existants
Analysez les repos existants à la recherche de secrets :
# gitleaks: scan entire git history
gitleaks detect --source . --log-opts="--all"
# truffleHog: high-entropy string + regex detection
trufflehog git file://.
# GitHub secret scanning (automatic for public repos)
# Alerts under Security → Secret scanning alertsAnalyse des secrets par GitHub
GitHub analyse automatiquement les dépôts publics à la recherche de motifs connus de secrets (clés AWS, jetons GitHub, etc.) et en informe le fournisseur concerné. Pour les dépôts privés, GitHub Advanced Security étend cette fonctionnalité. Des fournisseurs comme AWS révoquent automatiquement les clés lorsqu’elles sont détectées.
La solution .gitignore (et ses limites)
Ajouter .env à .gitignore empêche les validations accidentelles. Cependant, les développeurs enregistrent encore des secrets dans d’autres fichiers, et .gitignore n’est d’aucune aide si le fichier a déjà été validé. Défense en profondeur : gitignore + crochets avant validation + analyse continue.
Utiliser des variables d’environnement
Les secrets ne doivent jamais apparaître dans le code. Utilisez des variables d’environnement chargées à l’exécution :
# Python:
import os
api_key = os.environ["API_KEY"]
# Node.js with dotenv (for local dev only):
require("dotenv").config()
const apiKey = process.env.API_KEY
# Never commit .env to gitGestionnaires de secrets
Les applications de production doivent utiliser des gestionnaires de secrets dédiés :
- AWS Secrets Manager — rotation automatique, accès contrôlé par IAM
- HashiCorp Vault — à code source ouvert, destiné aux entreprises, avec de nombreux systèmes dorsaux
- Azure Key Vault / GCP Secret Manager
Les secrets ne se trouvent jamais dans le code ni dans des variables d’environnement stockées sur disque.
Renouvellement des secrets compromis
Si un secret est exposé :
- Révoquez immédiatement le secret, avant toute enquête
- Vérifiez les journaux d’accès à la recherche d’une utilisation non autorisée
- Générez un nouveau secret
- Mettez à jour tous les systèmes qui utilisent l’ancien secret
- Supprimez-le de l’historique de Git avec
git-filter-repoou BFG Repo Cleaner
Supprimer les secrets de l’historique de Git
Après la révocation, supprimez-les de l’historique :
# BFG Repo Cleaner (faster than filter-branch):
java -jar bfg.jar --delete-files .env repo.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --force
# Note: force push rewrites history - coordinate with teamSecrets dans les chaînes d’intégration et de livraison continues
Les systèmes d’intégration et de livraison continues disposent de leur propre gestion des secrets :
- GitHub Actions : secrets stockés dans les paramètres du dépôt ou de l’organisation → accessibles via
${{ secrets.API_KEY }} - GitLab CI : variables d’intégration et de livraison continues
- Jenkins : extension Credentials
Masquez les secrets dans les journaux. Ne les affichez jamais dans la sortie de débogage.
Contrôle rapide : analyse des secrets
Quel est le premier moyen de défense le plus efficace pour empêcher les secrets d’entrer dans un dépôt ?
Récapitulatif de la leçon
Les secrets codés en dur dans Git constituent un risque critique : les dépôts publics sont aspirés par des robots dans les secondes qui suivent une publication. Prévention : crochets avant validation (gitleaks), gitignore. Détection : truffleHog, analyse des secrets GitHub. Stockez les secrets dans des variables d’environnement ou dans des gestionnaires de secrets dédiés (Vault, AWS Secrets Manager). Renouvelez-les immédiatement lorsqu’ils sont exposés et supprimez-les de l’historique de Git avec BFG Repo Cleaner.
Questions Fréquemment Posées
La leçon « Analyse des secrets et identifiants codés en dur » est-elle gratuite ?
Oui — le texte complet de « Analyse des secrets et identifiants codés en dur » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Analyse des secrets et identifiants codés en dur » ?
Empêchez la validation de clés d’API et de mots de passe avec git-secrets, gitleaks et des hooks pre-commit. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?
Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Analyse des secrets et identifiants codés en dur » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?
Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- SAST et DAST dans les pipelines CI/CD
- Analyse de la composition logicielle (SCA)
- Analyse des secrets et identifiants codés en dur
- Référents sécurité et modélisation des menaces