Qu'est-ce qu'une Mauvaise Configuration de Sécurité ?
La mauvaise configuration de sécurité (Security Misconfiguration) est l'une des vulnérabilités les plus courantes. Elle survient lorsque les paramètres de sécurité d'une application, d'un serveur ou d'un framework sont mal définis ou laissés par défaut.
Cette faille peut concerner n'importe quelle couche de la pile technologique : serveur web, base de données, framework, cloud, etc.
Exemples Courants de Failles
- Comptes par défaut : Admin/admin, root/toor toujours actifs.
- Messages d'erreur verbeux : Stack traces exposant des chemins ou versions.
- En-têtes HTTP manquants : Absence de CSP, X-Frame-Options, HSTS.
- Services inutiles activés : Ports ouverts, APIs de debug exposées.
- Configuration cloud publique : Buckets S3 accessibles sans authentification.
Comment se protéger ?
Suivez ces principes pour durcir votre infrastructure :
- Processus de déploiement reproductible : Automatisez la configuration via Infrastructure as Code (IaC).
- Désactivation des fonctionnalités inutiles : Moins de surface d'attaque = moins de risques.
- Revue régulière des configurations : Auditez vos paramètres à chaque mise à jour.
- Environnements isolés : Séparez dev, staging et production.
[!WARNING] Les messages d'erreur détaillés sont utiles en développement, mais doivent être désactivés en production.
// MAUVAISE PRATIQUE : Exposition des erreurs complètes en production
app.use((err, req, res, next) => {
res.status(500).send({
error: err.message,
stack: err.stack, // Exposition de la stack trace
path: __filename
});
});
// BONNE PRATIQUE : Messages génériques en production
app.use((err, req, res, next) => {
console.error(err); // Logger en interne
if (process.env.NODE_ENV === 'production') {
res.status(500).json({ error: 'Une erreur est survenue' });
} else {
res.status(500).json({ error: err.message, stack: err.stack });
}
});Checklist de Durcissement
- Changer tous les mots de passe par défaut
- Désactiver les comptes invités/non utilisés
- Masquer les versions des logiciels (X-Powered-By, Server)
- Configurer les en-têtes de sécurité (CSP, HSTS, X-Content-Type-Options)
- Fermer les ports inutiles
- Activer le chiffrement (TLS 1.2+)
- Restreindre les accès administratifs par IP