La sécurité de votre site WordPress est essentielle pour protéger votre activité en ligne. Imaginez le désastre si vous découvriez votre site e-commerce ou votre site vitrine piraté ! Heureusement, de nombreuses mesures simples permettent de sécuriser son site WordPress et de le protéger contre les attaques et les vulnérabilités.
Dans ce guide complet, nous allons explorer plusieurs aspects clés de la sécurité WordPress :
1. Mises à jour et maintenance :
- Gardez votre site WordPress, vos thèmes et vos plugins à jour pour corriger les failles de sécurité connues.
- Utilisez un plugin de sécurité pour automatiser les tâches et simplifier la gestion.
- Sauvegardez régulièrement votre site et votre base de données pour pouvoir restaurer une version saine en cas de problème.
2. Authentification et accès :
- Utilisez des mots de passe forts et uniques pour tous vos comptes WordPress.
- Activez l’authentification à deux facteurs pour ajouter une couche de sécurité supplémentaire.
- Limitez les tentatives de connexion pour empêcher les attaques par force brute.
- Renforcez la sécurité de votre wp-config.php en modifiant les permissions et en ajoutant des clés de sécurité.
3. Protection contre les attaques :
- Installez un plugin de pare-feu pour bloquer les attaques malveillantes et le trafic suspect.
- Utilisez un plugin anti-spam pour protéger votre site des commentaires indésirables et des bots.
- Mettez en place des mesures de protection contre les attaques XSS et CSRF pour empêcher les injections de code malveillant.
4. Surveillance et vigilance :
- Restez informé des dernières menaces et vulnérabilités WordPress.
- Surveillez les journaux d’activité de votre site pour détecter les activités suspectes.
- Utilisez un service de surveillance de sécurité pour obtenir des alertes en cas de problème.
En suivant les conseils de ce guide et en adoptant une approche proactive, vous pouvez considérablement améliorer la sécurité de votre site WordPress et le protéger contre les pirates et les attaques.
Alors c’est parti dans les méandres de la sécurisation de WordPress…
Mise à jour et maintenance
Mettez à jour PHP
PHP est le moteur de votre site internet. C’est lui qui permet à votre site (qui n’est qu’un programme informatique au final) de fonctionner, il est donc très important d’utiliser la dernière version sur votre serveur. La version de PHP est mise à jour régulièrement en fonction des bugs et des problèmes de sécurité qui sont corrigés. Les anciennes versions majeures n’ont plus de mise à jour de sécurité et sont exposées à des vulnérabilités non corrigées.
A ce jour (26 mars 2024), les serveurs qui exécutent une version de PHP inférieure à la 8.0 ne sont plus correctement sécurisés, et pourtant ils sont encore très nombreux, près de 60% d’après WordPress stats, ce qui est effrayant. Autant de sites WordPress mal sécurisés qui peuvent très facilement se faire pirater !
Il est courant, et de mon coté je le conseille même, de ne pas appliquer la toute dernière version de PHP dès sa sortie, mais avoir autant de retard dans les mises à jour est simplement de l’inconscience !
Mettez WordPress à jour régulièrement
Là aussi la mise à jour de WordPress va jouer un rôle important dans la sécurité de votre site. De nouvelles failles sont régulièrement découvertes dans le code de WordPress et en général rapidement corrigées, d’où l’importance de mettre à jour la version de WordPress de votre site. Mais attention, les dernières versions de WordPress nécessitent également des versions récentes de PHP. Voir le tableau de compatibilité.
Mettez à jour vos thèmes et plugins
Selon des données recueillies par plusieurs éditeurs de solution de sécurité (iThemes Security, Wordfence), la majorité des piratage de sites WordPress proviendrait des extensions utilisées. En effet, cela représenterait 97.2% des attaques, le noyau de WordPress ne représentant bien moins de 1%. Les thèmes quand à eux représentent 2.4%, ce qui nous semble un peu en dessous de la réalité.
Origine de la faille de sécurité ayant permis un piratage :
- 97,2 % les extensions
- 2,4 % les thèmes
- 0,05 % le Core de WordPress
Il est donc évident que la mise à jour de vos thèmes et extensions est une chose à ne pas négliger, bien au contraire. Et pourtant de très nombreux sites utilisent, souvent pas méconnaissance ou manque de temps à consacrer à la maintenance, des extensions totalement obsolètes. Une belle porte ouverte aux pirates, même débutants.
De la même façon, certains utilisent des thèmes ou des extensions « nulled », c’est à dire des versions piratées. Là il est évident, sans parler du problème éthique du piratage, que vous ne savez pas ce qui a été fait comme modifications dans le code et si une backdoor ou tout autre code malveillant n’a pas été inséré. Là aussi l’utilisation de thème ou plugin « nulled » pourrait vous réserver de mauvaises surprises.
Afin d’analyser une extension ou les fichiers d’un thème et vérifier qu’il est sain, vous pouvez utiliser un outil en ligne comme VirusTotal.
Sauvegardez régulièrement votre site
Cette partie du guide ne vous aidera pas à mieux sécuriser votre site WordPress, mais à le restaurer en cas de problème, quel qu’il soit. Les sauvegardes sont primordiales pour tout propriétaire de site internet, que ce soit sous WordPress ou tout autre système. Mais une sauvegarde doit être faite correctement, afin de pouvoir restaurer le site rapidement en cas de besoin.
Sur le principe, et dans les grandes lignes, une sauvegarde doit respecter plusieurs critères :
- sauvegardes multiples, stockées à des endroits différents (et idéalement sur des supports différents): ne vous contentez pas de la sauvegarde faite par votre hébergeur (si il en fait une). Faites vous même vos propres sauvegardes, une stockée sur votre serveur éventuellement, une copie sur un autre serveur (ou un Google Drive par exemple), et une sauvegarde chez vous.
- historique de sauvegarde : faites des sauvegardes régulières, en fonction des mises à jour de votre site, et gardez l’historique des sauvegardes. Si par exemple vous faite une sauvegarde hebdomadaire tout les lundi, 1er lundi sauvegarde ok, le samedi vous vous faite pirater votre site mais vous ne vous en rendez pas compte. Si le lundi vous faite une nouvelle sauvegarde sans conserver l’ancienne, vous n’aurez plus de sauvegarde saine de votre site, donc difficile de le restaurer dans ce cas.
Avant chaque modification du site (mise à jour du core, d’un thème, d’une extension), faite une sauvegarde ! On le répète sans arrêt mais il y a encore trop de propriétaire de site qui se retrouve avec un site en erreur suite à une simple mise à jour, et qui bien entendu n’ont pas fait de sauvegarde au préalable. Soyez plus malin qu’eux !
Il existe de nombreux outils qui permettent de gérer les sauvegardes, soit directement sur votre serveur (via Plesk, Cpanel, ou tout autre système de gestion serveur), soit via des extensions à ajouter à votre site WordPress. De mon coté je préfère largement utiliser des solutions serveurs qui ont l’avantage de ne pas ajouter une extension au site, et qui sont à mon avis beaucoup plus fiable. Le gestionnaire de sauvegarde sous Plesk par exemple fait très bien le travail (sauvegarde locale et distante, planification, historique, horodatage…).
Une dernière chose, certes basique mais trop souvent oublié, en matière de sauvegarde de votre site WordPress, pensez à sauvegarder vos fichiers ET votre base de données ! Evident et pourtant j’ai souvent vu le cas de sauvegarde partielle. dans ce cas, bye bye le site !
Authentification et accès
Renommez votre URL de connexion
Au fil du temps WordPress est devenu le CMS le plus utilisé dans le monde, il est donc devenu une cible de choix pour tout les pirates. Et rien n’est plus simple pour eux de trouver l’adresse de votre page de connexion à l’admin du site, puisque c’est la même pour tout le monde… sauf pour les plus prudents qui l’ont changé. Il est donc urgent de faire comme eux et de changer cette fameuse url par défaut /wp-admin/. Pour cela rien de plus simple grâce au plugin WPS Hide Login. Installez le, activez le, et allez dans ses réglages afin de fixer une nouvelle adresse de connexion. Prenez en une complexe, les pirates ne seront pas près de la trouver.
Limitez les tentatives de connexion et changez souvent votre mot de passe
Si vous n’avez pas encore changé l’adresse de connexion à l’administration de votre site vous êtes surement victime de tentative de connexion par Force Brute. Vous avez peut être déjà entendu ce terme, mais qu’est ce exactement ?
Une attaque par force brute c’est simplement le fait pour des hackers de tenter de se connecter en essayant des mots de passe, presque au hasard (en fait, issus d’un dictionnaire de mot de passe les plus courant la plus part du temps). L’idée est donc de limiter le nombre de tentatives de connexion possibles, comme pour votre code carte bleu ou le code Pin de votre téléphone. Pour cela, on va encore une fois utiliser un plugin, WP Limit Login Attempts, qui va permettre de limiter le nombre de tentatives possibles, et très simple à installer et à parametrer.
Mais tout ceci ne vous permet pas de vous affranchir d’une règle de base, valable pour tout mot de passe : utilisez un vrai mot de passe (pas le prénom de votre belle mère), unique (pas le même mot de passe pour tout vos comptes sur internet), et changez le régulièrement.
Renommez l’utilisateur « admin »
Autre point connu de tous, et encore plus des hackers, le nom d’utilisateur par défaut du compte administrateur : « admin ». Vous ne devriez jamais l’utiliser ! Vous devez créer un nom d’utilisateur WordPress unique pour le compte administrateur et ensuite supprimer l’utilisateur « admin » s’il existe. Vous pouvez faire cela depuis le tableau de bord de votre site.
Attention lorsque vous allez supprimer l’utilisateur « admin », choisissez bien l’option « Attribuer tout le contenu à » et sélectionnez votre nouveau profil d’administrateur. Ceci assignera ce nouvel utilisateur en tant qu’auteur de ces messages.
Protéger l’administration WordPress
Pour les plus parano, en plus des mesures de protection vues au chapitre précédent, vous pouvez également ajouter une 2eme couche de protection, avec une authentification HTTP basique (protection htpasswd). Cela nécessitera un autre nom d’utilisateur et mot de passe avant même de pouvoir accéder à la page de connexion WordPress. Plus lourd, mais plus sécurisé (peut être un peu trop dans ce cas là je vous l’accorde).
Authentification à deux facteurs
Autre sécurité pour la connexion à l’administration de votre site, de plus en plus souvent utilisé par de nombreux sites professionnels, mais encore peu répandu sur WordPress, je veux bien sur parler de l’authentification à deux facteurs ! Cette authentification à deux facteurs implique un processus de connexion plus long, en deux étapes, pendant lequel vous aurez besoin à la fois de votre mot de passe pour vous connecter, mais aussi d’une deuxième méthode, souvent un code reçu par SMS, ou une application sur votre téléphone.
Pour mettre en place une authentification à deux facteurs nous vous recommandons les plugins suivants :
En combinant ces différentes méthodes (changement de l’adresse de connexion, limitation du nombre de tentatives, authentification à 2 facteurs), vous réduirez considérablement le risque de piratage via ce canal.
Désactiver XML-RPC
XML-RPC est un protocole informatique qui permet à des logiciels fonctionnant dans des environnements différents (Windows, Mac OS X, GNU/Linux etc.) de communiquer entre eux sur internet via une procédure d’appel à distance. Sur le papier c’est très bien, mais en réalité cela présente une faille de sécurité souvent exploitée par les hackers (Brute Force, DDOS,…). De plus XML-RPC est un ancien protocole, remplacé par API REST, plus puissant et plus flexible. Par conséquent, et sauf cas particulier, il est recommandé de désactiver le XML-RPC afin de renforcer la sécurité de votre site WordPress.
Pour cela, vous pouvez utiliser encore une fois un plugin, Disable XML-RPC (ou équivalent), ou si vous avez les connaissances nécessaires, ajouter dans votre fichier .htaccess les lignes suivantes :
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Protection contre les attaques
Supprimez les informations que hackers pourraient utiliser
De manière générale, moins les autres personnes en savent sur la configuration de votre site WordPress, mieux c’est. Et encore plus lorsqu’il s’agit de hackers. Il est donc utile de faire disparaitre la version de WordPress que vous utilisez, qui est affichée par défaut dans le code source de votre site. Pour cela, vous pouvez simplement utiliser le code suivant dans le fichier functions.php de votre thème pour supprimer cet affichage. Attention, une erreur dans ce fichier pourra entrainer le blocage de votre site.
//Masquer la version de WordPress
function cs_remove_version() {
return '';
}
add_filter('the_generator', 'cs_remove_version');
Pensez également à effacer le fichier domaine.com/readme.html
qui se trouve à la racine de votre site (via ftp ou le gestionnaire de fichier de votre hébergement), la version y est affichée en clair.
Personnalisez la base de données
Là aussi, lors de l’installation de votre site WordPress, un préfixe simple (wp_) est utilisé pur les tables de la base de données. Soyez original, changez le pour un plus complexe, votre site vous remerciera !
Il est bien sur possible de changer ce préfixe sur un site existant, mais cela nécessite d’avoir quelques compétences de base car en cas d’erreur votre site sera cassé. A voir avec votre webmaster, ou éventuellement votre hébergeur.
Arrêter l’exécution de PHP dans WP-CONTENT
Une grande partie des hacks de WordPress résultent de l’exécution d’un script php malveillant dans le dossier wp-content. Pour limiter le risque d’installation de ce type de script et renforcer la sécurité de votre site WordPress, bloquez l’exécution de PHP dans ce repertoire. Pour cela, ajoutez un fichier .htaccess dans le répertoire /wp-content avec le contenu cette règle :
Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>
Appliquez les bon droits sur les fichiers WordPress
Les droits sur les fichiers de votre installation WordPress sur votre serveur Web sont cruciales pour renforcer la sécurité de WordPress. Il est important d’avoir les permissions correctes dans tous les domaines, car trop souples un pirate pourrait facilement accéder à votre site, et trop strictes, le site pourrait ne plus fonctionner correctement.
Voici les permissions recommandées pour vos fichiers et dossiers dans WordPress.
- Tous les fichiers doivent être 644 ou 640. Exception : wp-config.php doit être 440 ou 400 pour empêcher les autres utilisateurs du serveur de le lire.
- Tous les dossiers doivent être en 755 or 750.
- Aucun dossier ne devrait jamais être en 777, même les dossiers de téléchargement.
Vous pouvez consulter l’article du Codex WordPress sur la modification des permissions de fichiers pour plus d’informations.
Vous pouvez également utiliser une extension comme iThemes Security pour analyser les permissions des fichiers et répertoires de votre site WordPress.
Surveillance et vigilance
Utiliser des extensions de sécurité WordPress
Comme vous devez vous douter si vous êtes utilisateur de WordPress, il existe forcément des extensions qui font le boulot, au moins partiellement. Voici donc quelques extensions de sécurité WordPress qui ont fait leurs preuves :
Voici quelques caractéristiques et utilisations typiques des extensions ci-dessus (attention, suivant les extensions, certaines fonctionnalités sont payantes):
- Générer et forcer des mots de passe forts lors de la création de profils utilisateurs
- Forcer l’expiration des mots de passe et les réinitialiser régulièrement.
- Enregistrement des actions de l’utilisateur
- Mises à jour faciles des clés de sécurité WordPress
- Scan anti-malware
- Authentification à deux facteurs
- Pare-feu de sécurité WordPress
- Liste blanche d’IP
- Liste noire d’IP
- Changelogs de fichiers
- Surveiller les changements de DNS
- Bloquer les réseaux malveillants
- reCAPTCHAs
- Voir les informations WHOIS sur les visiteurs
- Vérification des fichiers du Core WordPress via checksum
Etre accompagné par un professionnel
Parce que tout le monde n’est pas expert WordPress, et encore moins en sécurité, il est peut être préférable de se faire accompagner par un professionnel du domaine, au moins pour cette partie critique qui est la sécurisation et la maintenance de votre site WordPress. De nombreux professionnels proposent des forfaits de maintenance WordPress, renseignez vous.