Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Hardcoded Credentials

devsecops

Définition

Les Hardcoded Credentials (credentials codés en dur) désignent des mots de passe, clés API, tokens d'accès, certificats ou autres secrets d'authentification directement écrits dans le code source d'une application, les fichiers de configuration versionnés, ou les scripts de déploiement. Cette pratique constitue l'une des vulnérabilités de sécurité les plus répandues et les plus dangereuses dans les applications modernes, classée systématiquement dans les listes CWE Top 25 (CWE-798 : Use of Hard-coded Credentials). Le risque posé par les credentials hardcodés est maximal : le code source est potentiellement accessible à de nombreux développeurs, est versionné dans des systèmes de contrôle de version qui conservent l'historique (y compris les suppressions), peut être involontairement exposé (dépôts GitHub publics accidentels, partage de snippets), et peut être extrait d'artefacts compilés par décompilation ou analyse binaire. Des études régulières révèlent des centaines de milliers de secrets actifs exposés sur GitHub public. Les origines des credentials hardcodés sont multiples. Les raccourcis de développement ("je mets ça temporairement, je changerai avant le commit"), la méconnaissance des alternatives sécurisées (variables d'environnement, secrets managers), les projets legacy avec peu de discipline sécurité, les scripts d'automatisation où la commodité est privilégiée, et les projets open source où des secrets de test ou de développement sont commités par erreur. La détection des credentials hardcodés utilise plusieurs approches complémentaires : outils de secret scanning (GitLeaks, TruffleHog, detect-secrets) dans les pre-commit hooks et pipelines CI, revue de code avec focus sécurité, formation des développeurs aux patterns d'identification (chaînes base64, patterns de clés API, chaînes de connexion), et audit de l'historique Git des dépôts existants. La remédiation d'un credential hardcodé déjà commité dans l'historique Git requiert non seulement de remplacer le secret dans le code, mais aussi de purger l'historique Git (via git-filter-repo ou BFG Repo-Cleaner) ET de révoquer/tourner immédiatement le secret exposé, car la suppression du fichier ne supprime pas l'historique accessible aux personnes ayant déjà cloné le dépôt.

Détection : de l'IDE au pipeline CI

La défense en profondeur contre les hardcoded credentials commence dans l'IDE avec des plugins détectant les patterns de secrets en temps réel (AWS credentials, JWT, API keys). Les pre-commit hooks (GitLeaks, detect-secrets) bloquent les commits contenant des secrets avant même le push. Les pipelines CI apportent un filet de sécurité supplémentaire avec des scans systématiques de chaque diff. GitHub Secret Scanning et GitLab Secret Detection offrent une détection au niveau de la plateforme avec notification des fournisseurs.

Alternatives aux credentials hardcodés

Les meilleures pratiques pour éviter les credentials hardcodés : variables d'environnement injectées au runtime (jamais dans le code), fichiers .env locaux non versionnés (.gitignore strict), secrets managers (Vault, AWS Secrets Manager, Azure Key Vault) avec rotation automatique, identités gérées (IRSA, Workload Identity) éliminant les secrets statiques pour les accès cloud, et credential providers dynamiques pour les bases de données (Vault DB Engine).

Remédiation historique Git

Supprimer un fichier contenant un secret ne suffit pas : l'historique Git conserve toutes les versions. La remédiation complète requiert : 1) Révoquer immédiatement le secret exposé, 2) Purger l'historique Git avec git-filter-repo (outil recommandé, remplace BFG), 3) Force-pusher toutes les branches, 4) Demander à tous les collaborateurs de re-cloner le dépôt, 5) Invalider les forks GitHub du dépôt si applicable. Cette procédure est documentée dans un runbook accessible à toute l'équipe.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis