Cet article présente les bonnes pratiques à adopter pour sécuriser un site WordPress.
En effet près d’un site sur deux au monde étant basé sur ce logiciel, il est sujet à de multiples attaques automatisées. Bien que son cœur soit sécurisé, nombre de ces attaques viennent de son usage et de son environnement.
Comment sécuriser la page de connexion à l’administration ?
Cette page est particulièrement sensible puisqu’elle donne accès au back-office de votre site. Il est donc important de la sécuriser en :
- Changeant son URL, à l’aide d’une extension dédiée
- Evitant des noms d’utilisateurs faciles à identifier (admin, administrator, le nom du site, votre nom…)
- Choisissant un mot de passe sécurisé
- Limitant le nombre de tentatives de connexions, à l’aide d’une extension dédiée
Pourquoi changer l’URL de connexion à l’administration ?
WordPress dispose d’une URL « standard » pour accéder à la page de connexion à l’administration du site (votresite.fr/wp-login.php/). Cette URL est connue des robots « pirates » qui tentent de s’y connecter, d’où l’intérêt de la modifier.
Pour cela de nombreuses extensions WordPress existent (dont « Hide Login » de l’hébergeur LWS). Bien que contournables par l’œil humain, elles sont efficaces contre les robots (très largement utilisés pour ce type d’attaques). En effet si le robot ne trouve pas la page « standard », il se tournera vers un autre site.
Comment créer un mot de passe sécurisé ?
Choisir un mot passe sécurisé est à la fois simple et complexe. Simple car il faut éviter tout ce qui se rapporte à vous et à votre entourage (nom, prénom, date/lieu de naissance, adresse…).
Complexe car il doit :
- Comporter au moins 8 caractères (c’est un minimum, idéalement entre 10 et 14)
- Se composer de majuscules, minuscules, chiffres et signes de ponctuation
- Prioriser la longueur plutôt que la complexité
- Rester mémorisable (ne surtout pas l’écrire sur un support !)
- Être (surtout) unique
- Être renouvelé régulièrement (idéalement tous les mois ou tous les 2 mois)
Il doit permettre d’éviter des attaques de type « brute force » (recherche en boucle de mots de passe par des scripts pirates).
Le cas échéant vous pouvez vous aider d’un « coffre-fort » de mots de passe, installé sur votre ordinateur. Vous n’avez alors plus qu’à vous souvenir du mot de passe de ce « coffre-fort ».
Comment gérer les utilisateurs en toute sécurité ?
Bien gérer les utilisateurs est un autre point d’attention, souvent négligé. Dans cette perspective il convient de :
- Désactiver l’inscription des utilisateurs si possible (envisageable pour un site vitrine voire un blog, difficile pour le e-commerce)
- Utiliser une authentification à deux facteurs (2FA)
- Saisie du mot de passe doublée de l’envoi d’un code SMS
- Utiliser un Captcha (test permettant de s’assurer que l’utilisateur est un humain et non un robot)
- Forcer l’utilisation de mots de passe forts (et ne pas les partager)
- Ne pas utiliser l’identifiant comme « Nom à afficher publiquement »
- Ne pas se connecter à l’administration depuis un réseau Wi-Fi public (non sécurisé en général)
- Penser à se déconnecter systématiquement de l’administration une fois le travail terminé
- Vérifier la liste des utilisateurs et supprimer les comptes obsolètes
- Attribuer avec discernement le rôle des utilisateurs (limiter en particulier le nombre d’administrateurs), éventuellement avec une extension dédiée
La plupart de ces consignes peuvent être mises en place via les réglages de WordPress et des extensions dédiées.
Comment choisir un hébergement (réellement) sécurisé ?
Sécuriser WordPress ne suffit pas, il convient aussi de choisir un hébergement correctement sécurisé. Cela passe par :
- Isolation des comptes (éviter qu’un site piraté contamine les autres)
- Passage en HTTPS (HTTP sécurisé) via un certificat SSL (proposé d’office par la majorité des hébergeurs)
- Pare-feu applicatif (WAF)
- Protection anti-DDoS (attaque par « déni de service » visant à submerger de trafic un site)
- Surveillance 24/7
- Protection contre les virus et les malwares (logiciels malicieux)
- Sauvegarde automatique (idéalement quotidienne) sur le serveur et restauration aisée
- Sauvegarde régulière en local en complément
- Localisation et conformité légale vis-à-vis des données personnelles traitées par le site (en Europe, conformité au RGPD)
- Réactivité et compétences du support technique
Comment maintenir un « core » sain ?
La plupart des problèmes de sécurité vient d’un « core » (cœur de la plateforme) non maintenu. Il est donc indispensable d’appliquer les mises à jour de WordPress, mais aussi du thème et des extensions, dès leur publication. D’ailleurs de nombreux hébergeurs permettent de le faire automatiquement.
Néanmoins, pour les mises à jour « majeures », il convient de réaliser préalablement une sauvegarde du site.
De plus, évitez d’installer des thèmes/extensions hors du répertoire officiel de WordPress.
De même il est fortement conseillé, autant pour la sécurité que pour les performances, de supprimer les thèmes et extensions inutilisés.
Comment sécuriser techniquement un site ?
Vous pouvez aussi sécuriser le site en agissant sur des aspects techniques :
- Les fichiers de configuration (wp-config.php et .htaccess)
- Le préfixe de la base de données (éviter la valeur « wp_ » par défaut)
- L’injection de codes SQL
- Le blocage de la navigation dans les dossiers
- La désactivation de l’éditeur de fichiers intégré
- Le blocage des pages « auteurs »
- Les en-têtes de sécurité HTTP
- Le masquage de la version de WordPress (et de PHP)
- L’absence de tâches planifiées (« cron ») suspectes
Pour plus de détails, vous pouvez consulter cet article de WPFormation
Quels sont les signes d’un site piraté ?
Malgré toutes les précautions présentées précédemment, un site peut malgré tout être piraté. Alors, comment s’en apercevoir ?
- Un trafic en augmentation brutale sans raison particulière
- Sur des pages inexistantes (erreur 404)
- Sur des pages dont vous ignoriez l’existence (pouvant contenir des virus)
- A un moment de la journée inhabituel
- Un trafic ou des commandes en baisse brutale sans raison particulière
- Désactivation des passerelles de paiement (e-commerce)
- Bannissement des résultats de moteurs de recherche (liste noire)
- Une page d’accueil (ou autre) défigurée (page noire, bannières, pop-ups, liens inappropriés…)
- Tester en tant que visiteur non authentifié (ou en navigation privée)
- Des redirections aléatoires sur un autre site
- A partir du menu, des moteurs de recherche, d’un mobile
- Ne pas hésiter à tester plusieurs fois, sur différents navigateurs, en vidant les cookies… pour reproduire l’incident et pouvoir investiguer
- Les résultats de moteurs de recherche affichent d’autres contenus que les vôtres
- Envoi et réception d’emails impossibles
- Utilisation de toutes les ressources possibles pour spammer depuis votre serveur
- Vérifier périodiquement l’envoi du formulaire de contact, d’une newsletter
- Dossiers ou fichiers nouveaux (ou modifiés) apparaissant sur le serveur
- Vérifier périodiquement les fichiers et dossiers du site (via FTP), en particulier à la racine
- Nouveaux membres ajoutés à votre insu
- Réception d’un email informant de la création d’un nouvel utilisateur sans en être à l’initiative
- Vérification auprès des autres administrateurs si cela vient d’eux
- Vérification du rôle du nouveau membre (pas « administrateur »)
- Réception d’une alerte de votre hébergeur ou d’une extension de sécurité
- Malware, fichier/dossier modifié
Pour plus de détails, vous pouvez consulter cet article de WPFormation