Französisch:
Un CMS est aussi sécurisé que son maillon le plus faible. Cet article propose une meilleure pratique pour sécuriser WordPress. Il n’a pas vocation à être exhaustif. Il est destiné à nos clients pour sensibiliser aux problèmes de sécurité liés à WordPress.
WordPress est un système de gestion de contenu multifonction qui offre de nombreuses possibilités aux webdesigners. Étant donné que l’installation de WordPress est facile et que WordPress est parfois déjà préinstallé, il bénéficie d’une part de marché très élevée. Sa large diffusion, combinée à de nombreux systèmes WordPress non sécurisés de manière professionnelle, en fait une cible attrayante pour les hackers.
Sujets
- Mettre à jour WordPress
- Sécuriser l’hébergement
- Configurer le serveur web
- Définir les droits d’accès aux fichiers
- Sécuriser la base de données
- Utiliser des mots de passe sécurisés
- Chiffrement SSL
- Salts
- Navigation dans les répertoires
- Empêcher l’accès à la connexion du backend par mot de passe
- Renommer la connexion du backend WordPress
Mettre à jour WordPress
WordPress reçoit régulièrement des mises à jour pour le noyau et les extensions installées. Les versions mineures sont mises à jour automatiquement. Il est judicieux de vérifier si la dernière version est bien installée. Par le passé, il y a eu des problèmes avec le processus de mise à jour. Par exemple, une mise à jour vers la version mineure WordPress 4.9.3 a été appliquée automatiquement, ce qui a introduit un bug empêchant les mises à jour automatiques suivantes.
La confiance, c’est bien, mais mieux vaut contrôler !
Thèmes et Plugins
Les thèmes et plugins tiers doivent être mis à jour.
Il convient d’être particulièrement vigilant lorsqu’on utilise des extensions tierces.
Empêcher l’accès direct au fichier wp-config.php
Le serveur web peut être configuré pour bloquer catégoriquement l’accès au fichier wp-config.php
.
<files wp-config.php>
order allow,deny
deny from all
</files>
Droits d’utilisateur
Le fichier wp-config.php contient, entre autres, les informations d’identification de la base de données. Il est conseillé d’ajuster les droits d’utilisateur pour wp-config.php.
Après l’installation de WordPress, le fichier wp-config.php a généralement les droits d’utilisateur par défaut 644. Cela est généralement suffisant, mais certainement pas aussi sécurisé que possible.
cd ~/www/<dir>
chmod 400 wp-config.php
Salts
Par défaut, WordPress prend en charge l’utilisation de chaînes uniques (salts).
Les salts sont stockés dans la base de données par défaut. Le fichier wp-config.php est préparé pour stocker des salts générés individuellement.
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
Mark Jaquith déclare (en substance) que bien que les raisons pour définir des salts dans le fichier wp-config.php ne soient pas évidentes, cette étape est tout à fait sensée. Il justifie sa déclaration par une répartition des risques. Si un attaquant obtient un accès en lecture à la base de données, il ne pourra pas authentifier avec succès uniquement avec les mots de passe stockés là-bas, car des salts sont nécessaires, qui ne se trouvent plus dans la base de données. Pour créer un cookie de connexion, l’accès à la base de données ainsi qu’un accès au système de fichiers sont nécessaires, ce qui rend un piratage beaucoup plus difficile.
Mark Jaquith utilise une métaphore pour cela :
Si votre maison avait deux serrures à pêne dormant sur la porte d’entrée, vous ne garderiez pas les deux clés sous la même pierre. (Commentaire de Mark Jaquith sur vaultpress.com, 24.03.17)
Quels fichiers et répertoires sont particulièrement critiques en ce qui concerne les droits des utilisateurs ?
Il s’agit bien sûr de fichiers de configuration contenant des hachages et des mots de passe, tels que le fichier wp-config.php
ou le répertoire upload/
.
Plugins de sécurité
Vérifiez les évaluations et le nombre d’installations avant d’installer un plugin. Un mauvais plugin peut simplement empirer les choses.
Lors de l’installation d’un plugin, assurez-vous de vérifier combien d’installations actives existent et combien le plugin est activement maintenu par le développeur, ce qui peut être vu dans les journaux des modifications et la compatibilité avec la version actuelle de WordPress.
Login Lockdown
Avec le plugin gratuit “Login Lockdown”, vous pouvez empêcher l’intrus de saisir le mot de passe plusieurs fois.
L’intrus sera bloqué après un nombre configurable de tentatives.
Empêcher l’accès au login de WordPress
L’interface de connexion WordPress peut être protégée par une protection de répertoire.
Navigation de répertoire
La navigation de répertoire permet l’affichage des fichiers d’un répertoire web si aucune page d’index n’est présente. Cette fonctionnalité est souvent déjà désactivée. Cela ne nuit pas de vérifier cela.
Masquer l’interface de connexion du backend
L’interface de connexion peut être réécrite via une redirection. Un accès au répertoire précédent wp-admin/
affichera une page d’erreur HTTP 404. Il existe également des plugins pour cela.
Empêcher l’exécution dans le répertoire des téléchargements
Si un intrus parvient à accéder au répertoire uploads/
, il pourrait utiliser tout code téléchargé, comme un fichier php, pour accéder à d’autres zones. Le code suivant empêche le serveur web (Apache) d’exécuter des fichiers .php dans le répertoire uploads/
.
<FilesMatch "\.(php|phtml|php3|php4|php5|pl|py|jsp|asp|html|htm|shtml|sh|cgi|suspected)$">
deny from all
</FilesMatch>