Parent : [[INDEX-CYBERSECU]]
Anti-Pattern : Stockage de credentials non chiffrés
Description
Stocker des credentials (mots de passe, cookies, tokens) en clair ou en base64 dans des fichiers accessibles : passwords.json, cookies.json, FileZilla recentservers.xml, .env sans encryption. Ces fichiers sont extraits immédiatement lors d'une compromission.
Exemple réel - Archive Ygg
// passwords.json — Chrome décrypté
{
"url": "https://example.com",
"username": "admin@example.com",
"password": "GoPay2024!Secure"
}
<!-- recentservers.xml — FileZilla -->
<Pass encoding="base64">YWRtaW5wYXNz</Pass> <!-- base64 = équivalent clair -->
# .env
DB_PASSWORD=admin123 # ❌ Pas de chiffrement
JWT_SECRET=secret # ❌ Pas de chiffrement
Conséquences
- Compromission totale : Tous les comptes sont exposés
- Lateral movement : Credentials réutilisés sur d'autres systèmes
- Persistence : Attaquant garde l'accès même après changement initial
- Vol d'identité : Impersonation des utilisateurs
Quand c'est acceptable
JAMAIS en production. Acceptable uniquement en développement local temporaire avec des credentials de test.
Solution
- Chrome : Désactiver le password manager (GPO)
- FileZilla : Master password + chiffrement AES
- .env : Utiliser un secret manager (Vault, AWS SM)
- SSH : Hardware tokens (FIDO2)
- Windows : Credential Guard + LSA Protection
Voir KNOW-PAT-063 — Extraction forensique de credentials.
Références
- Archive Ygg :
04_CREDENTIALS/ - OWASP : Insecure Credential Storage