Skip links

Sécurité WordPress : protégez votre site facilement

Par défaut, votre site WordPress possède déjà des sécurités et se protège lui-même de la plupart des attaques. Mais à cause de sa popularité, WordPress reste la cible de nombreuses attaques. Apprenez à sécuriser votre site pour le rendre impénétrable !

Si vous n’êtes pas sûr de vouloir effectuer ces manipulations vous-même, je le ferai volontiers pour vous ! Le service comprend la configuration du plugin de sécurité, le test de votre site entier pour vérifier qu’il fonctionne sans défauts ainsi que l’activation de deux-trois autres plugins de sécurité (pas nécessaires, mais appréciables). Le tout pour un forfait fixe de 200.- CHF !

1. Anatomie d’une attaque

En premier, il faut absolument comprendre comment et pourquoi on peut décider d’attaquer votre site, et du coup, pourquoi la sécurité est une facette de WordPress qu’on ne peut pas du tout éviter.

WordPress fait tourner plus de 30% des sites Internet du monde entier. Cela représente des centaines de millions de sites et ce sont donc des cibles très alléchantes pour les pirates. Or, les sites WordPress possèdent tous, quel que soit leur apparence ou leurs extensions, des points communs :

  • Il existe par défaut un utilisateur avec les droits d’administrateurs du nom d’admin.
  • Il existe une page /wp-admin pour se connecter à ce compte. A défaut, /wp-login fait la même chose.
  • Les tables de la base de données commencent toutes par wp_
  • Enfin, le stéréotype du mot de passe 123456 est toujours vrai.

En partant de ce constat, il devient vite logique pour quiconque connait un peu l’informatique de créer un robot, donc un programme qui effectue des tâches automatiquement, pour attaquer ces sites. Il suffit alors de lui donner ces instructions :

  1.  Va sur un site quelconque et cherche la page /wp-admin.
  2. Si elle n’existe pas, passe au site suivant.
  3. Si elle existe, alors entre le nom de compte admin et un mot de passe.
  4. Si le mot de passe que je t’ai donné ne convient pas, alors essaie le suivant.
  5. Si le mot de passe fonctionne, envoie-moi les informations pour que je me connecte personnellement.

Le mot de passe provient d’un fichier contenant des milliers de mots de passes à la suite, que le robot peut essayer à la suite (un peu comme un trousseau de clés à sa ceinture).

La plupart des attaques sur un site WordPress ne sont donc pas réalisées par une personne mais par un programme qui peut attaquer des centaines de sites chaque jour ! En pratique, la plupart des pirates utilisent un réseau de botnet : ce sont des ordinateurs infectés par un virus qui fait tourner le robot à l’insu du propriétaire. Cela permet de faire tourner le robot plusieurs fois au lieu d’une, et généralement votre site sera attaqué depuis différents endroits en même temps.

C’est pour cela qu’il ne faut pas laisser de côté la sécurité sur WordPress, car même si votre site est inconnu de tous, pas référencé sur Google et n’a qu’une page vide, il sera attaqué par des robots qui ne s’inquiètent bien peu de savoir ce qu’il se cache derrière. D’une part car ils ne sont pas programmés pour chercher plus loin que les instructions ci-dessous et d’autre part car même un site vide peut rapporter gros (plus d’informations au point 3 en fin d’article).

2. Mettez en place la sécurité de votre site

Commençons par le pilier de la sécurité : mettez toujours votre site à jour ! Au niveau des plugins autant que des versions de WordPress. Dès qu’une nouvelle version de WordPress est publiée, les pirates lisent les failles de sécurité qui ont été corrigées et se précipitent pour exploiter les sites qui n’ont pas encore été mis à niveau !

Comme je l’ai dit au début, WordPress met déjà en place quelques outils de protection. Cependant, ces protections ne peuvent rien contre un robot dont le seul but est une attaque par force brute, celle décrite au point précédent. De manière générale, il est difficile de prévenir de ces attaques mais cela n’est pas impossible !

En premier, vous aurez besoin d’une extension pour vous apporter les fonctionnalités nécessaires. J’utilise iThemes Security mais il en existe d’autres. Ensuite, vous devrez mettre en place la méthode d’exécution suivante sur votre site :

  1. Créer un nouvel utilisateur avec les droits d’administrateurs qui ne possède pas le nom admin ou un nom proche (administrateur, JeSuisAdmin…). Ce sera votre nouveau compte.
  2. Connectez-vous avec ce nouveau compte et supprimez l’ancien qui s’appelle donc admin. Le reste se déroule dans iThemes Security.
  3. dans iThemes Security, réglez d’abord la vue sur « All » (à côté de Recommended et Advanced, en haut à droite).

Réglages principaux

listenoire - Sécurité Wordpress : protégez votre site facilement

Ouvrez les Réglages principaux, descendez un peu et activez le bannissement des offenseurs. Cela bloquera les gens qui échouent à trop de connexions (typiquement les robots qui essaient plusieurs mots de passe à la suite) :

  • Liste noire des offenseurs récidivistes : oui
  • Seuil de la liste noire : jusqu’à 3, mais pas plus.
  • Période de Lookback de la liste noire : 7 jours
  • Période de blocage : 1440 minutes (soit 24 heures).

Avec ces réglages, iThemes Security se souviendra des adresses IP ayant échoué à se connecter durant 7 jours. Si, durant cette période, ils ont échoué 3 fois, alors ils seront bannis du site durant 24 heures. Attention toutefois que vous pourrez aussi être bannis si vous avez un jour oublié votre mot de passe !

La plupart des robots essaient de se connecter pendant un jour, voire deux, rarement plus : il n’y a aucun intérêt à rester sur la même cible si il en existe des bien plus accessibles ailleurs. Bloquer l’accès 24 heures est donc largement suffisant.

Recevoir les notifications de blocage

Allez ensuite dans « Notification Center » afin d’être averti par email lorsque quelqu’un tente de se connecter mais se fait bannir. Si vous avez un responsable de la sécurité, il voudra recevoir ces emails.

  • Descendez tout en bas dans la catégorie « Site lockouts ».
  • Cochez la case Activé
  • Mettez le sujet que vous souhaitez : ce sera le sujet de l’email que vous recevrez
  • Sélectionnez quels utilisateurs devront recevoir cet email. Cochez votre compte et celui de la personne qui s’occupe de votre sécurité.

Vous recevrez certainement des emails dans les prochains jours comme quoi une ou l’autre adresse IP a été bloquée d’accès à votre site. Ne vous inquiétez surtout pas ! Avec une sécurité complète, il sera très, très rare qu’une telle attaque aboutisse.

Changer le préfixe des bases de données

prefix - Sécurité Wordpress : protégez votre site facilement

En Anglais : « Change Database Table Prefix »

Une manipulation très importante ! La base de données contient notamment les informations de vos utilisateurs : les mots de passe (encryptés, mais parfois décryptables), mais surtout les informations de paiement si vous avez une boutique ! Lors d’une grosse attaque sur un gros site (une banque, un réseau social…), les pirates sont à la recherche des bases de données justement car elles contiennent les informations juteuses.

Par défaut, WordPress utilise le préfixe wp_ devant chaque table. Vous aurez ainsi la table wp_articles, wp_utilisateurs, etc. C’est une très grosse faille de sécurité puisque tout le monde le sait ! iThemes Security vous invite donc à améliorer la sécurité de votre site en changeant le préfixe de vos tables, simplement en changeant l’option « non » en « oui » et en cliquant sur valider.

Utilisateurs bannis

utilisateursbannis - Sécurité Wordpress : protégez votre site facilement

Un réglage tout bête :

  • Activez Liste noire par défaut
  • Activez ensuite Ban Lists
  • Terminé !

Simplement, iThemes Security téléchargera les informations de la liste noire de Hackrepair.com, le site d’un spécialiste des réparations suites à un piratage. Vous pourrez donc automatiquement bannir des adresses IP connues comme appartenant à des pirates. Activez et laissez tourner !

Cacher l’administration

cacherwpadmin2 - Sécurité Wordpress : protégez votre site facilement

Le deuxième réglage très important ! C’est ce dont je parlais dans l’anatomie d’une attaque : nous allons changer l’adresse de /wp-admin en quelque chose d’autre.

  • Cochez la case Cacher l’administration
  • Dans Identifiant de connexion, tapez l’adresse que vous souhaitez. Attention : notez-la quelque part ! Si vous l’oubliez et que vous devez vous reconnecter (ce qui arrive assez fréquemment), vous devrez désactiver le plugin depuis le FTP pour rétablir wp-admin.
  • N’utilisez pas non plus un lien ressemblant à wp-admin. Optez pour des mots n’ayant pas grand chose à voir.
  • Activez la redirection
  • Puis donnez un lien pour la redirection. Personnellement, j’ai mis un lien aléatoire, qui retournera ma page d’erreur 404. Vous pouvez en tester une ici. Si c’est un utilisateur véridique, il ne quittera pas le site (l’erreur 403 vous amènerait sur une page sans mise en page, et sans lien de retour vers le site).

La sécurité contre les attaques de force brute

bruteforcelocal - Sécurité Wordpress : protégez votre site facilement

En anglais : « Local brute force protection »

L’attaque de force brute fait partie de l’anatomie du point 1. En essayant tous les mots de passe du monde avec tous les noms de compte du monde, on finirait forcément par trouver la bonne combinaison. Alors certes, cela prendrait plusieurs centaines d’années à une personne, mais rappelez-vous : les réseaux de pirates vous attaqueront de plusieurs ordinateurs en même temps, ce qui réduit grandement les combinaisons.

Pour empêcher ces attaques de fonctionner, il faut simplement empêcher la possibilité de se connecter trop souvent. Si une personne échoue sa première connexion, alors il est banni pendant 48 heures. Cela s’applique aussi pour vous, donc mettez peut-être plutôt 3 !

Cochez aussi la case « bannir automatiquement l’admin » : comme vous n’avez plus de compte nommé admin, personne n’a besoin de pouvoir l’essayer. Je garantis que ça stoppe 90% des attaques net.

iThemes Security possède aussi un réseau anti-force brute, l’option est sous le nom « Network Brute Force Protection ». Cela vous permettra de partager les hôtes bloqués par votre site avec les autres participants au programme (et eux aussi feront de même), mais cette option nécessite de créer une clé API chez iThemes.

Forcer les mots de passe forts

En Anglais : Strong Password Enforcement

Cette option est utile si vous permettez à quiconque de s’inscrire sur votre site. Par défaut, WordPress teste la sécurité de votre mot de passe et vous avertit d’un mot de passe faible (par exemple 123456), mais l’utilisateur peut tout de même l’utiliser. Avec cette option, il sera obligé de choisir un mot de passe fort.

Si vous activez cette option, vous pouvez choisir à partir de quel rôle elle s’applique. Par exemple, vu que les administrateurs ont accès à tout le site et peuvent le détruire entièrement s’ils le voulaient (mais pas les éditeurs ou les auteurs), on peut activer cette règle uniquement pour les administrateurs. C’est à choix.

Bon, personnellement, je pense que les meilleurs mots de passes ne sont pas ceux qui contiennent des chiffres, des lettres majuscules et minuscules et des caractères spéciaux. Selon moi, un bon mot de passe est simplement long, très long… au moins 30 caractères. J’explique cela en détail dans cet article.

Modifications système

Très important, mais peut entrer en conflit avec des extensions qui auraient besoin d’accéder à certains fichiers.

Cette option vous permettra d’empêcher d’accéder à certains fichiers sur votre FTP depuis le navigateur (en communiquant avec le serveur donc). Dans l’absolu, il faudrait tout cocher. Cependant, certaines extensions ont besoin de pouvoir accéder à des fichiers. En pratique, je recommande de cocher une option, sauvegarder, puis tester son site de fonds en combles : cliquez sur les liens, le menu, envoyez un formulaire, un commentaire, publiez un article, etc. etc. afin de vous assurer que tout fonctionne comme il se doit, puis faites de même pour l’option suivante, ainsi de suite jusqu’à la dernière.

A noter : n’activez pas Filtrer les caractères non anglais ! Si votre site est en français, rien que les accents ne sont pas considérés comme des caractères anglais.

Votre site WordPress contient un fichier nommé wp-config.php dans son dossier. Ce fichier contient notamment les informations de connexion à votre base de données, sans aucun cryptage. Si on peut accéder à ce fichier, alors on peut sans autre accéder à votre base de données, et sans même avoir besoin de passer par votre compte FTP ! C’est le fichier primordial à protéger s’il n’y en avait qu’un. Si vous n’utilisez pas WordPress, le nom du fichier sera différent mais le principe reste le même du moment que vous utilisez une base de données !

Cependant, il faut aussi empêcher l’injection PHP dans Uploads (librairie Media), les thèmes et les extensions. Pour rester simple, si vous avez un formulaire dans lequel on peut joindre un fichier, alors il peut être possible d’envoyer un fichier déguisé en image, par exemple, mais qui contient en fait du code PHP. Si votre serveur exécute le fichier (cela viendrait d’une mauvaise configuration et ne se fait normalement plus), alors il exécutera le code qui peut faire n’importe quoi, par exemple afficher les informations de connexion du compte administrateur. Comme un fichier média n’a pas besoin de PHP, il est préférable de bloquer ceci.

Activer le salage des mots de passe

Cliquez simplement sur Salages WordPress, puis cochez la case et validez. Vous devrez vous reconnecter, mais c’est tout ce qu’il y à faire. Personnellement, je change les salages de temps à autre, surtout après une attaque infructueuse, juste dans le doute.

Le salage consiste à rajouter une couche de protection aux mots de passe. Simplement, si votre mot de passe est « lesMisérables », alors le serveur le transformera automatiquement en « lesMisérablesz54loi ». Ce z54loi s’ajoute à tous les mots de passe : c’est le salage. Pourtant, vous ne le voyez jamais : pour vous connecter, vous continuez d’utiliser le mot de passe que vous avez choisi.

Enfin fini !

Nous avons fait le tour des fonctionnalités d’iThemes Security, qui sont normalement présentes sur n’importe quel autre plugin de sécurité.

Pour aller plus loin, je vous conseille une extension comme Updraft Plus afin d’automatiquement sauvegarder votre site régulièrement. Elle permet de remettre votre site en état après une attaque, ou bien après la mise à jour d’un plugin qui casse certaines fonctionnalités de votre site.

3. Pourquoi votre site sera attaqué

Ne croyez pas que seuls les gros sites avec des millions d’utilisateurs sont victimes d’attaque ! Comme je l’expliquais plus tôt, les robots qui testent les vulnérabilités de votre site ne s’inquiètent pas du tout de votre contenu, ils ont juste comme instruction de trouver le mot de passe de l’administrateur.

On peut alors se poser la question : pourquoi cibler WordPress spécifiquement ? Il y a plusieurs intérêts à gagner l’accès à un site :

En premier, en accédant à la base de données, le pirate a accès aux emails des utilisateurs et aux mots de passe cryptés. Il peut alors essayer de décrypter les mots de passe des utilisateurs. Dépendant du niveau d’encryption, cela peut être relativement facile (enfin, on parle plutôt de durée que de difficulté, donc ça peut se faire relativement rapidement). Une fois armé des adresses et de leur mot de passe associé, il peut les tester sur des sites plus sécurisés comme Facebook ou Gmail. Ainsi, il n’a pas eu besoin d’attaquer Facebook directement, qui possède une équipe de sécurité disponible 24 heures sur 24.

Le deuxième but d’une telle attaque est d’envoyer du spam depuis votre site, de deux manières différentes :

  • D’abord, il est possible de détourner votre formulaire de contact pour qu’il envoie du spam à une liste d’emails. Les gens recevront un email provenant de votre domaine, donc intraçable jusqu’à sa source.
  • Ensuite, une technique gagnant en popularité consiste à créer une page de phishing. Vous recevez un email provenant de Microsoft : votre compte va être supprimé et il faut vite vous connecter pour empêcher cela ! Vous cliquez sur le lien inclus dans l’email et vous arrivez sur une page de connexion qui ressemble exactement à la vrai. Sauf que, lorsque vous entrez vos informations de connexion, elles snt envoyées au pirate. C’est le principe du phishing.

De nos jours, les navigateurs web bloquent les sites malveillants, notamment ceux qui sont connus comme étant source de phishing : lorsque vous cliquez sur le lien mentionné, vous n’arriverez pas sur une page de connexion mais sur une page rouge vous avertissant du danger. Du coup, plutôt que de créer des nouveaux sites sans cesse, les pirates accèdent à des sites mal protégés et hébergent leur page de phishing dessus. A terme, le site victime, qui est pourtant innocent, sera bloqué par les navigateurs et perdra tous ses visiteurs ! Plus d’informations sur cette attaque ici (en anglais).

Le troisième but pourrait simplement être un pirate qui essaie de se faire la main ou d’apprendre comment pirater un site. Généralement, bien que cela devienne plus rare, ils changent le contenu de vos pages et s’en vont.

Le quatrième but pourrait être la rançon, bien que cela n’est pas très populaire. Le pirate vous bloque l’accès à votre site entier : vous ne pouvez plus accéder à la page administrateur. Vous n’avez plus accès au FTP pour rétablir une version fonctionnelle. La page d’accueil n’est plus celle de votre site, mais une page vous invitant à payer une certaine somme d’argent (parfois très élevée) pour regagner les accès.

Les possibilités sont vraiment infinies, et un pirate trouvera toujours une utilité à un site dans lequel il a réussi à pénétrer.

La question n’est donc pas si votre site sera attaqué, mais quand il sera attaqué !

Leave a comment

Name

Website

Comment