Comment optimiser la securite de son site WordPress ?

Après avoir approfondi vos connaissances sur “les raisons pour lesquelles un site peut être piraté” et “les mesures de sécurité à respecter pour protéger son site WordPress”.
Nous allons aborder l’optimisation de la sécurité d’un site WordPress de façon plus avancée.

Ce troisième article de notre semaine de la sécurité WP a pour objectif d’en savoir plus sur la sécurisation du tableau de bord, la configuration des droits d’accès aux fichiers sur votre serveur et vous faire découvrir les plugins que nous utilisons au sein de l’agence Inaativ pour faciliter ce paramètrage.

Sécuriser l’accès à votre administration WordPress

Modifier le chemin d’accès au tableau de bord de votre site :
L’installation par défaut de WordPress crée une url générique pour y accéder qui se termine par « wp-admin » > www.monsite.com/wp-admin.
Les hackers tentent directement d’accéder à cette adresse pour tester des combinaisons et entrer dans votre administration WordPress. Si celle-ci est différente, bon nombre de hackers et robots seront donc bloqués avant même toute tentative d’intrusion. Il faut donc utiliser une url plus complexe, comme www.monsite.com/identifiant-complexe.

Ainsi, si le hacker veut accéder à notre page de connexion en se rendant sur l’adresse initiale « www.monsite.com/wp-admin« , il tombera sur une page d’erreur, comme celle-ci par exemple  :

Page d'erreur wp-admin

2/ Limiter les tentatives de connexion : si le hacker réussi tout de même à accéder à la page d’identification, il convient maintenant de ne pas le laisser entrer sur le tableau de bord de votre site. Une des techniques les plus répandues par les hackers est celle qu’on appelle le local brute force. Il s’agit de créer un robot automatisé qui va tester des milliers de combinaisons d’identifiant/mot-de-passe afin de trouver la bonne.

En dehors de l’intrusion, ce robot peut saturer votre serveur à cause du nombre de requêtes, il convient donc de limiter les tentatives de connexion invalides à un nombre défini, communément 3. Au bout de ces 3 tentatives, l’IP (numéro d’identifiant de la connexion Internet d’un matériel informatique) est bloqué pour une période donnée.

Si l’internaute ou le robot essaye 2 fois de plus des combinaisons incorrectes comme ci-dessous, il obtiendra un message d’erreur et ne pourra plus accéder au formulaire de connexion pendant une durée paramètrée par l’administrateur.

Erreur de connexion

3/ Bannir les IPs malveillantes : il existe des listes mises à jour par des communautés informatiques, qui recensent les IPs cataloguées comme “malveillantes”. Elles sont une bonne base de départ mais doivent être associées à un blocage manuel des IPs spécifiques attaquants votre site.

Le plugin Wordfence que nous allons détailler davantage en fin d’article, permet d’activer une de ces listes  et d’identifier en parrallèle les IPs suspectes qui ont tenté de se connecter à votre site pour les bloquer manuellement. Tout cela est rendu possible grâce à un outil de suivi en temps réel de l’activité sur votre site qui fonctionne en tâche de fond.

Verrouiller les droits d’accès aux fichiers sensibles de son site

Pourquoi mon site contient des données sensibles ?
Un site en ligne contient une multitude de fichiers dont certains peuvent contenir des données sensibles.

Ces données sont présentes car elles sont essentielles au bon fonctionnement de votre site (liaison avec la Base de données, préférences utilisateurs, aide au débogage …).
Quelques exemples de fichiers sensibles qui ne doivent pas être accessibles :

  • Wp-config.php : fichier de configuration qui permet notamment de faire la liaison avec la base de données et qui affiche en clair les identifiants de connexion à cette dernière.
  • Index.php: liste tous les fichiers et dossiers sur votre serveur. Il peut ainsi indiquer la présence d’un dossier de statistiques sensibles à vocation interne (destiné à votre reporting commercial mensuel par exemple)
  • Debug.log : utile pour les webmasters en cas de bug, il liste toutes les erreurs qui sont survenues sur votre site après certaines actions, autant de brèches potentielles dont lesquelles un hacker peut tirer parti …

La capture d’écran ci-dessous montre le contenu classique d’un wp-config.php, affichant clairement les identifiants très sensibles de la base de données ici remplacées par « XXX ».

Comment verrouiller ces droits d’accès ?
Pour éviter que des utilisateurs non autorisés puissent accéder à ces fichiers, il convient donc de paramétrer les droits d’accès. Le plus souvent les personnes ayant un intérêt à y accéder sont votre administrateur réseau, développeur ou webmaster et personne d’autre !

Un petit fichier nommé Htaccess situé à la racine de votre site permet de modifier ces droits. En lui ajoutant des règles, il permet de définir qui va pouvoir accéder à un dossier ou fichier défini.

À l’agence, nous utilisons sur tous nos projets un fichier Htaccess que nous avons optimisé au fil du temps et une fonctionnalité du plugin Ithemes Security pour vérifier avant la mise en ligne que les fichiers sensibles sont bien verrouillés.

Recommandation de 2 plugins de sécurité

Il existe plus de 4000 plugins de sécurité sur le répertoire officiel de WordPress. Difficile de s’y retrouver !

A l’agence, après avoir testé nombre d’entre eux, nous utilisons désormais pour chaque nouveau projet 2 plugins complémentaires. Ils permettent de faciliter et valider la mise en place de tous les points de sécurité avancés évoqués dans cet article.

Il s’agit d’Ithemes Security, qui compte plus de 800 000 activations actives et Wordfence, qui en comptabilise plus de 4 millions.
Ces plugins sont régulièrement mis à jour par ses développeurs et portés par une communauté très active.

Ithemes security

Ithemes Security : le couteau-suisse de la sécurisation.

Un plugin redoutablement efficace et paramètrable ! Voici quelques unes de ses 30 fonctionnalités :

  • Suppression de l’utilisateur admin, bonne pratique évoqué dans l’article “Pourquoi mon site WordPress s’est fait piraté
  • Checklist automatique des règles de sécurité de bases et remarques d’optimisation associées
  • Modification du chemin d’accès au back-office
  • Verification des règles htaccess de base.

Wordfence

Wordfence : un anti-virus au service de votre site.

Cette extension agit de la même façon que l’anti-virus installé sur votre ordinateur.
Wordfence scanne les fichiers de votre site (WordPress, thèmes, plugins etc.) en quête de différence avec les codes officiels et vous fait savoir si un code malveillant est présent.

Il génère des erreurs précises et permettra à un webmaster d’en identifier la provenance et de résoudre le problème.
Ce plugin analyse ensuite de façon permanente en temps direct l’activité sur votre site, comme un pare-feu classique.

Il bloque automatiquement bon nombre d’attaques et tentatives de connexion d’Internautes malveillants :

  • Exploitations de failles plugins connues
  • Injections SQL (attaque qui vise à insérer du code directement dans les formulaires)
  • Accès back-office : identifiant inexistant, nombre de tentatives de connexion
  • Blocage des Ips tentant de se connecter à des pages inexistantes

En bref, un ensemble de scripts, Ips et tentatives d’attaques identifiés par la communauté, plus de 4000 actuellement.

Site sécuriséAvec ces 2 plugins complémentaires et qui ont largement fait leurs preuves, vous limitez de façon drastique les tentatives d’intrusion..

Conclusion…

En mettant en place ces bonnes pratiques de sécurité avancées, vous rendrez la tâche bien plus difficile aux hackers sans pour autant les bannir malheureusement.

La sécurité est un enjeu essentiel pour votre site, il faut donc impérativement aller au delà de cette prévention et mettre en place un système de sauvegarde complet et régulier de votre site pour ne pas risquer de perdre vos données.

Dans le dernier article de notre semaine de la sécurité WordPress, nous vous présenterons “La nécessité de mettre en oeuvre des sauvegardes régulières” : Comment et à quelle fréquence ?

Ne manquez plus une actualité !

Abonnez-vous dès maintenant à la newsletter trimestrielle d'Inaativ...

  • (obligatoire)