Saviez-vous qu’une vague massive (et toujours en cours à ma connaissance) de piratages de blogs WordPress aurait compromis près de 90,000 sites récemment ? Ce chiffre donne à réfléchir quand on sait que WordPress est le CMS le plus utilisé au monde et que la plupart des utilisateurs ne changent pas son paramétrage par défaut.
La bonne nouvelle ? Il est relativement simple de se protéger des attaques. Voici une liste non exhaustive des points que je vous conseille de revoir. Pour la plupart, il ne vous en coûtera que quelques minutes de travail, le jeu en vaut la chandelle !
Cela peut paraître évident, mais la plupart des failles de sécurité WordPress sont exploitées sur des installations non à jour. L’équipe de développement de WordPress corrige en effet des dizaines de failles à chaque mise à jour, et ce n’est donc pas pour rien qu’il faut rester à la page…
La même chose s’applique aux plugins et aux thèmes. Au passage, je ne saurais trop vous recommander de ne pas installer de plugins ou de thèmes sans avoir fait un minimum de recherche sur le sérieux des développeurs et les avis des utilisateurs.
Si vous n’utilisez pas un mot de passe d’au moins 10 caractères, contenant des chiffres et des lettres, ainsi que des minuscules ET des majuscules… Vous êtes potentiellement exposé. Ne repoussez pas à demain votre changement de mot de passe !
Quelques règles de base pour rappel :
Le compte administrateur WordPress est celui qui sera visé en premier lieu. Vous pouvez changer le nom de ce compte (« admin ») en créant un nouveau compte utilisateur, en lui accordant les droits administrateur, en vous connectant sur ce compte puis en supprimant le compte « admin ».
Sachez néanmoins qu’il ne sera pas très difficile pour un hacker d’identifier ce nouveau compte administrateur si vous postez des commentaires avec…
Votre site WordPress subit probablement aujourd’hui des tentatives de connexion (ce qui me ramène au point 2 !). Ces attaques consistent à essayer des milliers de mot de passe « standard » ou basés sur des dictionnaires, jusqu’au moment où le hacker pourra se connecter et éventuellement installer une « backdoor » lui permettant de s’inviter même en cas de changement de mot de passe.
Pour limiter ce nombre de tentatives, des plugins existent, tels que Limit Login Attempts. Ce plugin gratuit permet, comme son nom l’indique, de limiter le nombre de tentatives de connexion, et de bannir temporairement une adresse IP qui dépasserait ce nombre de tentatives.
Il est impératif de mettre en place une surveillance des « malwares », ces bouts de code injectés via du code PHP mal sécurisé. Des services en ligne tels que Sucuri permettent de monitorer en ligne votre WordPress, grâce à des scans de pages réguliers… Sucuri permet de faire gratuitement un test de votre site, et un service payant vous permet de monitorer régulièrement votre code (incluant le nettoyage de votre installation en cas de problème).
Supprimez les thèmes ou plugins que vous n’utilisez plus. Effacez les fichiers que vous avez créé temporairement et qui traînent depuis toujours dans vos dossiers… Si vous ne savez pas par où commencer, partez de la racine et comparez là avec une installation « propre » de WordPress : si vous constatez que vous avez beaucoup plus de fichiers que l’original, demandez-vous s’ils servent toujours et faites une toilette de printemps !
Supprimez également le fichier « readme.html » qui contient le numéro de version que vous utilisez… Supprimez tout fichier .sql qui trainerait dans un répertoire, il pourrait contenir l’ensemble des comptes utilisateur et leurs mots de passe !
Les informations critiques de votre WordPress sont stockées dans wp-config.php, il faut donc porter une attention toute particulière à ce fichier ! Commencez tout d’abord par vérifier que vous avez bien défini les clés secrètes :
Si vous voulez utiliser des clés générées automatiquement, utilisez la page WordPress prévue à cet effet.
Donnez également des droits adaptés à wp-config.php : par exemple « chmod 400 » ou lecture seule pour le propriétaire du fichier.
Bougez wp-config.php un répertoire au-dessus, c’est à dire en dehors de l’arborescence web… La bonne nouvelle étant que WordPress sait détecter tout seul si le fichier a été déplacé dans le répertoire supérieur !
Dans la série des petites choses qui rendent la vie du hacker compliquée, il est prudent de changer le préfixe « wp_ » des tables MySQL qui est utilisé par défaut lors d’une installation WordPress. Il suffit d’éditer le préfixe dans wp_config.php lors de l’installation. Si l’installation est déjà faite, il faudra également modifier le nom des tables MySQL (via phpMyAdmin par ex.)
Des plugins tels que WP Security Scan sont utiles pour vérifier les vulnérabilités de votre site. Parmi les points analysés :
Ce point aurait probablement du être le premier de la liste, mais n’est pas à proprement parler une précaution de sécurité. C’est un devoir absolu ! Il est essentiel de sauvegarder sa base de données WordPress régulièrement, ainsi que les fichiers de votre arborescence web.
De nombreux plugins gratuits existent dans ce domaine. Je vous recommande plus particulièrement WP DB Backup qui est plutôt bien fait. D’autres solutions payantes telles que VaultPress ou Backup Buddy vous permettent de faire vos sauvegardes de manière professionnelle, ce que je ne saurais trop vous conseiller de faire !
Je vous conseille également de lire cette page relative à la sécurité WordPress, qui devrait finir de compléter votre culture sur le sujet !