Sécurité

Sécuriser WordPress : ce qui protège, et ce qui compte peu

Préfixe des tables, adresse de connexion changée, extension de sécurité : pour sécuriser WordPress, toutes ces mesures ne se valent pas. Nous les avons classées selon ce qu’elles empêchent, d’après les piratages que nous voyons.

Julien Marolles · Maintena23 octobre 20266 min de lecture

Certaines mesures ferment les portes par lesquelles les pirates entrent. D’autres limitent les dégâts ou permettent de repérer une intrusion. D’autres enfin comptent peu contre les pirates, même si certaines restent utiles pour d’autres raisons.

Ce qui ferme les portes d’entrée

Le risque vient surtout des extensions, comme le montre notre analyse de près de 33 000 failles publiées.

1. Appliquer les mises à jour dès leur sortie

Votre site reste exposé à une faille publiée jusqu’à la mise à jour qui la corrige. Installez donc les mises à jour dès leur sortie, après une sauvegarde, sans attendre la prochaine intervention de votre prestataire.

Deux points méritent votre attention. Une extension payante ne reçoit ses mises à jour que si sa licence est valide et activée sur le site. Nous avons vu la mise à jour de sécurité d’un constructeur de pages, l’extension qui sert à composer la mise en page, bloquée pour ce seul motif. Et comme une mise à jour peut abîmer une page, vérifiez votre site juste après plutôt que de repousser la mise à jour.

2. Garder peu d’extensions, et supprimer celles qui ne sont plus maintenues

Chaque extension est une porte de plus. Une extension abandonnée par son éditeur ne recevra plus aucun correctif, et ses failles resteront ouvertes. Une extension désactivée mais laissée sur le serveur peut rester attaquable, car certaines failles visent directement ses fichiers. Si elle ne vous sert plus, supprimez-la. Une extension qui n’a reçu aucune mise à jour depuis plus d’un an est peut-être abandonnée.

3. N’installer que depuis des sources officielles

Une extension ou un thème « premium » obtenu gratuitement sur un site de téléchargement peut contenir une porte dérobée, c’est-à-dire un accès caché que le pirate utilisera plus tard. En l’installant, vous le faites entrer vous-même. Téléchargez vos extensions uniquement sur wordpress.org, sur le site de l’éditeur ou sur la boutique où il les vend officiellement.

4. Protéger les comptes d’accès

  • La double authentification pour tous les administrateurs : en plus du mot de passe, un code à usage unique obtenu sur le téléphone. WordPress ne la propose pas lui-même, mais une extension spécialisée l’ajoute en quelques minutes. Un mot de passe volé ne suffit alors plus. Rangez à part les codes de secours fournis à l’activation.
  • Un mot de passe différent pour chaque service, car les mots de passe qui fuient ailleurs sont essayés partout.
  • Le moins de droits possible. Une personne qui écrit des articles n’a pas besoin d’être administrateur. Supprimez les comptes de prestataires ou de stagiaires qui ne servent plus, en attribuant leurs contenus à un autre compte quand WordPress vous le propose.
  • Des inscriptions fermées si vous n’en avez pas besoin. Dans Réglages, puis Général, décochez « Tout le monde peut s’inscrire ». Si vos visiteurs doivent pouvoir ouvrir un compte, laissez juste en dessous le « Rôle par défaut de tout nouveau compte » sur « Abonné / abonnée », le rôle qui a le moins de droits. Un simple compte suffit en effet à exploiter certaines failles (voir notre analyse des failles publiées).
  • Une limite aux tentatives de connexion, pour décourager les robots qui essaient des mots de passe à la chaîne.
  • XML-RPC désactivé si vous n’utilisez ni l’application mobile WordPress, ni Jetpack, ni un service qui publie sur votre site à distance. Les robots passent aussi par cette ancienne interface de publication à distance.

5. Garder une version de PHP maintenue

PHP, le logiciel qui fait tourner WordPress chez votre hébergeur, a lui aussi ses failles, corrigées tant que la version reste maintenue. Pour choisir la version et en changer sans risque, voyez notre article sur WordPress 7.

6. Ajouter un pare-feu applicatif

Il examine chaque demande adressée au site et bloque les attaques connues, comme l’envoi d’un fichier piégé. Il peut arrêter une partie des attaques contre une faille pas encore corrigée, sans dispenser de la mise à jour.

Ce qui limite les dégâts et repère une intrusion

  • Surveiller les fichiers du site. Un fichier ajouté ou modifié sans raison est un signe d’intrusion. Sur un site que nous surveillons, une extension malveillante a été isolée treize secondes après son apparition.
  • L’éditeur de fichiers de l’administration désactivé. Gardez d’abord une copie de wp-config.php, le fichier qui contient les réglages principaux du site, puis ajoutez-y la ligne define( 'DISALLOW_FILE_EDIT', true );, au-dessus de la ligne qui demande de ne plus rien modifier. Un pirate qui a volé un compte administrateur ne pourra plus modifier le code de vos extensions et de votre thème depuis le tableau de bord. La mesure le gêne sans l’arrêter, car il pourra encore y installer une extension piégée.
  • Des sauvegardes hors du serveur, que vous savez restaurer. De votre sauvegarde dépend ce que vous perdrez après une intrusion. Elle doit être quotidienne, stockée ailleurs que chez votre hébergeur et conservée plusieurs semaines, car un piratage peut n’être découvert que des semaines plus tard. Entraînez-vous à la restaurer sur un site de test, que vous supprimerez ensuite, jamais par-dessus le site en ligne.

Ce qui compte peu contre les pirates

Aucune de ces mesures ne corrige une faille d’extension.

  • Changer l’adresse de la page de connexion réduit le nombre de robots qui la trouvent, et donc le nombre de tentatives inscrites dans l’historique des connexions de votre extension de sécurité. La double authentification protège bien mieux vos comptes.
  • Masquer la version de WordPress ne cache pas celle de vos extensions, et un robot qui essaie ses attaques à l’aveugle n’a pas besoin de la lire.
  • Changer le préfixe des tables de la base de données (wp_ par défaut) ne gêne que les injections SQL écrites pour le préfixe d’origine. Une injection SQL est une attaque qui passe par une extension pour lire ou modifier la base. Sur un site existant, l’opération est risquée pour un gain faible.
  • Le HTTPS est indispensable pour protéger ce qui circule entre vos visiteurs et le site, comme les mots de passe et les formulaires. Il ne protège pas le site lui-même contre une intrusion.

Et l’extension de sécurité ?

Une bonne extension de sécurité apporte un pare-feu, une limite aux tentatives de connexion et une analyse des fichiers. C’est utile. Mais elle ne met pas vos extensions à jour et, comme toute extension, elle peut elle-même avoir des failles. Elle vient donc en complément des mesures décrites plus haut, sans les remplacer.

L’extension Maintena, que nos clients installent sur leur site, peut elle aussi avoir des failles. Elle vérifie donc deux fois par jour si une nouvelle version est disponible, et l’installe d’elle-même.

Questions fréquentes

Un petit site vitrine intéresse-t-il vraiment les pirates ?

Oui. Les tentatives relevées dans l’encadré plus haut visaient justement des sites de cette taille. Les robots des pirates ne trient pas les sites selon leur taille ou leur renommée. Ce qu’un pirate fait ensuite d’un petit site est décrit dans notre guide du site piraté.

Faut-il une extension de sécurité payante ?

Pas forcément. Les versions payantes reçoivent plus vite les nouvelles règles de protection, ce qui compte face à une faille fraîchement publiée. Mais aucune ne met vos extensions à jour à votre place.

Que faire si je perds le téléphone qui sert à la double authentification ?

Connectez-vous avec l’un des codes de secours. À défaut, un autre administrateur ou votre prestataire peut désactiver l’extension de double authentification en renommant son dossier sur le serveur, le temps de la configurer à nouveau.

Écrit par

Julien Marolles, fondateur de Maintena

Pendant des années, j’ai conçu des sites WordPress pour des entreprises, des études et des agences. J’ai créé Maintena pour que quelqu’un veille sur chacun d’eux, chaque jour : mises à jour vérifiées, sauvegardes, attaques bloquées, et réparation quand il le faut.

Une question sur votre site ? Écrivez-moi, je lis tout.

Articles similaires

Voir tous les articles