Sécuriser WordPress, mythes et réalités
La sécurité, ce n’est pas mon métier. Mais du haut de mes quinze ans de WordPress sans piratage, je me suis dit que je pouvais faire le point sur la sécurité de WordPress, les failles réelles et les erreurs des débutants. Enfin, disons que je vais donner un point de vue très personnel sur la question qui devrait aider les amateurs à se faire une idée sur les bonnes pratiques.
Les questions que vous vous posez
WordPress est-il fragile d’un point de vue sécurité ?
R. Non
Un WordPress tout nu (sans extension et avec un thème par défaut) est sécurisé. Dès qu’une faille est découverte, une mise à jour automatique est faite par l’équipe de WordPress.
Modifier l’URL de login va-t-il sécuriser mon site ?
R. Non
Contrairement à une idée reçue très populaire – et reprise par les solutions de sécurité pour promouvoir leur produit – ce n’est pas la page login qui va permettre aux virus de s’installer sur votre site. Plus d’informations sur le sujet plus bas.
Protéger la page de login va-t-il sécuriser mon site ?
R. Non
Même réponse que pour la question précédente.
Une double authentification va-t-elle sécuriser mon site ?
R. Non
Une double authentification protège les comptes des membres de votre site mais n’aura aucun effet protecteur global en cas de piratage du site.
La page login
La page de connexion (login) est devenue avec le temps une espéce de passage obligé dans la communication des extensions de sécurité. Selon elles, il faut à tout prix la protéger, voire la déplacer. Est-ce vraiment nécessaire, quels sont les gains possibles ? Voici mes réponses.
Pendant longtemps, la page login était la cible privilégiée des attaques pour deux raisons simples :
- l’identifiant de l’administrateur était
admin
par défaut et les utilisateurs ne le changeait pas ;- les utilisateurs se contentaient d’un mot de passe faible et basique.
Ces deux éléments simplifiaient grandement le travail des pirates et des extensions devenues très populaires sont venues rassurer les utilisateurs de WordPress en déplaçant l’URL du login ou en protégeant cette page des attaques de force brute (attaques qui cherchent à deviner identifiant et mot de passe par essais successifs).
Est-ce utile de déplacer l’URL du login ?
De nos jours, il n’y a aucun intérêt à faire cette manipulation dans le cas où vous avez choisi un identifiant et un mot de passe fort non utilisés sur d’autres plates-formes.
Les pirates utilisent maintenant des bases de données de mots de passe et identifiant récupérés sur des sites piratés. Ils ne cherchent pas à casser des mots de passe en listant tout ce qui est possible. Vu la longueur suggérée de ces mots de passe, cela leur prendrait un temps inutile. Vous avez un mot de passe unique et long ? Vous ne risquez rien.
Est-ce utile de protéger la page de login ?
Pour les raisons citées plus haut, protéger la page de login n’ajoute aucun élément de sécurité à votre site. Par contre, en limitant ces attaques et en bloquant les robots nocifs, vous allégez votre site. Une extension de protection à ce niveau à donc un intérêt même s’il n’est pas sécuritaire.
Bouts de code
Un autre mantra qui peut être contreproductif pour les gens qui se mettent à WordPress, c’est la phobie des extensions. « Je ne veux pas ajouter une extension, je préfère un bout de code, c’est plus léger ». C’est évidemment très relatif puisque si le bout de code fait la même chose que l’extension, vous n’y gagnez rien. Dans le cas de la sécurité, ça se traduit par une accumulation de bouts de code qui servent à tout : ça va de la sécurisation du très important fichier wp-config.php
au déplacement entier des fichiers vers un répertoire secret.
Toutes ces ficelles ont un point commun : elles commencent à dater. Elles datent très exactement du temps où il n’y avait pas d’extension de sécurité complète pour WordPress. Les utilisateurs en étaient réduits à chercher des recettes sur le Web. Personnellement, je considère qu’elles n’ont pas de nécessité. Si un pirate peut avoir accès à wp-config.php
ou plus généralement au serveur où sont entreposés vos fichiers, il a la possibilité de nuire qui dépassent l’accès aux fichiers cachés.
Ces bouts de code ont un autre inconvénient : en cas de problème sur le site, il faudra faire une vérification sur tous ces ajouts.
À retenir : recopier des bouts de code pour sécuriser son site est une solution obsolète et contraignante
Mais alors d’où viennent les virus ?
Essentiellement de failles de sécurité au niveau des extensions ou du thème – c’est pour cette raison qu’il faut les maintenir à jour.
Les autres raisons connues sont :
- les appareils utilisés pour se connecter vérolés ;
- une faille de sécurité au niveau de l’hébergeur.
Faisons simple
Je ne connais qu’une méthode efficace pour sécuriser un site :
installer une (et une seule) extension de sécurité/pare-feu.
Les extensions de sécurité protègent complètement un site sans faille de sécurité. En cas de faille (extension ou thème mal codé, ordinateur/smartphone vérolé, hébergeur piraté), il ne va pas obligatoirement pouvoir empêcher le piratage. Mais il saura vous prévenir de tout évènement suspect.
Elles doivent donc (et les complètes le font) :
- prévenir d’un évènement lié à la sécurité – changement de statut d’une extension (installée, activée, etc), utilisation d’un fichier php récent, mise à jour de règles de sécurité lorsqu’une faille est découverte sur une extension, avertissement lorsqu’une extension ou un thème nécessite une mise à jour immédiate
- protéger la page login
- gérer les règles de sécurité de base liées à WordPress
- permettre la comparaison suite à une modification d’un fichier – c’est une possibilité que je n’active pas parce que ça signifie que vous doublez l’espace serveur nécessaire et je ne peux pas me le permettre
Voici les trois extensions que je conseille pour des raisons plus ou moins valables
1. NinjaFirewall
Moi aussi j’ai installé des petites extensions de sécurité et rajouté des bouts de code en pensant que ça suffisait bien comme ça. Et j’avais une peur bleue de me faire bloquer hors de mon site par une extension de sécurité. Mais c’était à une autre époque, un autre temps… À force de lire des choses au sujet du piratage, je me suis décidé à sauter le pas. NinjaFirewall a été un choix évident parce qu’elle est considérée comme l’extension de sécurité qui impacte le moins la vitesse d’une installation WordPress. Elle est aussi considérée comme très efficace (cf. plus loin).
2. SecuPress (pas testée)
Développée par une partie de l’équipe de WP Rocket, on peut imaginer que c’est du sérieux. De plus, développée par une équipe française, ça peut aider en cas de problème. Et c’est une bonne raison pour la préférer à la concurrence.
3. Wordfence (pas testée)
La plus populaire des extensions de sécurité. Difficile de l’écarter de cette liste mais elle est réputée pour son poids sur le fonctionnement de WordPress.
Attention, il ne faut installer qu’une seule extension de sécurité à la fois. Sinon les risques d’interférence sont trop importants et vous risquez de voir votre site tout cassé.
Complément indispensable
Le complément indispensable à l’extension de sécurité, c’est évidemment l’extension de sauvegarde (backup). La base de données en priorité et de manière quotidienne. Et les fichiers, par FTP et moins fréquemment.
Et le WAF de mon hébergeur ?
De nombreux hébergeurs proposent à leurs clients une protection sous forme de WAF (Web Application Firewall) qui est une solution de sécurité qui protège toutes les applications que vous installez.
J’y vois un paradoxe : alors que vous êtes seul responsable de ce qui se passe sur votre site et que votre hébergeur ne vous aidera a priori que pour des problèmes liés aux serveurs, il vous ajoute une couche de sécurité que vous contrôlez plus ou moins.
Mon expérience avec le WAF de mon hébergeur Alwaysdata est pour le moins mitigée. Alwaysdata propose différents types de WAF dont un destiné aux installations de WordPress. Avoir le choix est une bonne chose parce que l’on peut considérer que chaque application a des besoins et des contraintes différentes. Le WAF en question s’est révélé très efficace. Voire trop efficace. Installé alors que Gutenberg en était à ses prémices, il bloquait carrément les fonctionnalités du nouveau moteur d’édition de WordPress. Et je passais mon temps à désactiver des règles du WAF pour faire fonctionner correctement les extensions que j’installais. Ça n’avait plus aucun sens. Une solution de ce type ne devrait pas rajouter des contraintes dans la gestion de votre site.
Si il est utile que l’hébergeur installe des protections au niveau des serveurs pour contrer des attaques qui les visent – je pense notamment aux attaques DoS – je ne vois pas l’intérêt de rajouter une couche extérieure à WordPress que vous ne pouvez pas configurer suivant vos besoins. De plus, les extensions mettent à jour en temps réel leurs règles de sécurité en fonction des failles découvertes. Ce n’est pas le cas des WAF.
Dans le cadre d’un hébergement mutualisé, préférez une extension de sécurité à toute solution proposée par votre hébergeur pour protéger directement votre installation WordPress afin de ne pas rajouter une couche de complexité inutile à la gestion du site, pour être sûr d’avoir la main sur la sécurité.
La vraie faille WordPress dont personne ne parle
Assez étrangement, je ne lis jamais rien sur ce qui me paraît un grave problème de sécurité lié aux extensions de WordPress. Lorsque vous installez une extension, vous êtes prévenu lorsqu’une mise à jour est disponible. Mais jamais lorsque cette extension est retirée du dépôt officiel. Or, une des raisons les plus probables de ce retrait, c’est la découverte d’une faille de sécurité pas corrigée. Si bien que vous pouvez traîner une extension problématique dans votre installation pendant des années sans même savoir qu’elle a été retirée du dépôt. La seule façon que je connaisse de surveiller l’âge des extensions installées est l’extension Vendi Abandoned Plugin Check mais même elle ne vous dira pas si l’extension est retirée du dépôt.
Trop tard, mon WordPress a été piraté !
Si c’est le cas, il vous faut le nettoyer de fond en comble. Ne faites pas confiance aux extensions qui se vantent de nettoyer votre site. Elles détecteront des fichiers problématiques mais il est impossible de savoir si elles ont vraiment tout nettoyé. Car il faut nettoyer les fichiers suspects dans tous les répertoires et les entrées suspectes dans la base de données. C’est un travail de longue haleine qui oblige à mettre les mains dans le cambouis et vous obligera à un peu d’autoformation si FTP ou phpMyAdmin ne veulent rien dire pour vous – dans ce cas-là, un peu de lecture utile ici https://www.echodesplugins.li-an.fr/tutoriaux/mon-premier-wordpress/.
Cet excellent tutoriel va vous permettre de faire tout ce travail pas à pas : https://wpfr.net/support/sujet/solutions-de-depannage-pour-un-site-hacke-pirate/
La suite uniquement pour les curieux
Que valent les extensions de sécurité WordPress ? (version complotiste)
Impossible pour un clampin moyen de vraiment tester une extension de sécurité. On peut comprendre les fonctionnalités mais est-ce que c’est bien programmé, est-ce que ça pense à tout ? Heureusement, il y PluginVulnerabilities pour nous dire la vérité vraie.
Vous ne trouverez pas d’extension Plugin Vulnerabilities sur le dépôt. Elle en a été retirée en 2017 pour comportement déplacé : le développeur faisait la réclame de son produit en dénigrant la concurrence. Et c’est toujours le cas sur le site officiel https://www.pluginvulnerabilities.com/. À l’en croire, si Plugin Vulnerabilities protège un site à 100%, la concurrence fait au mieux… 36%. Et, hourra, c’est NinjaFirewall.
Il y a évidemment un côté risible à ces chiffres puisque si c’était réellement le cas, seuls les sites protégés par Plugin Vulnerabilities échapperaient au piratage. Mais la lecture de leur blog est néanmoins instructive si vous vous intéressez à la sécurité de votre site. Leurs articles soulignent de manière éclairante les dysfonctionnements des sites plus connus d’analyse de sécurité ou même de l’équipe de gestion du dépôt (qui mériterait un article à elle toute seule) ou d’Automattic. Vous y découvrirez que l’installation d’Elementor est déconseillée vu les mauvaises pratiques de sécurité de cette extension – dont plusieurs failles ont été découvertes récemment.
Est-ce que je conseillerai leur produit ? Franchement, non. En dehors du prix prohibitif, le peu d’informations sur les options de leur pare-feu est pour le moins léger – l’extension gratuite se contentait d’informer des failles potentielles dans les extensions installées. Ils proposent d’ailleurs une extension pour navigateur qui fait le même travail et que je vais tester.