La sécurité de Wordpress n'est pas bonne ? Voici comment y remédier

Vous avez probablement déjà entendu parler de tristes histoires liées à des problèmes de sécurité des sites WordPress, cela a pu vous inquiéter à juste titre. 

Sécuriser l'administration de Wordpress

Voici 5 mesures à mettre en place pour parer aux attaques sur Wordpress.

Il est vrai que nous devrions tous mettre en place des mesures de sécurité supplémentaires sur nos sites et blogs Worpress pour dormir tranquille. Voici cinq choses que vous pouvez faire dès aujourd'hui pour améliorer fortement la sécurité de vos sites édités sous WordPress.

Sécuriser l'administration de Wordpress

Même si vous avez choisi un nom d'utilisateur ainsi qu'un mot de passe fort pour vous connecter à l'administration WordPress, ajouter des étapes supplémentaires à l'authentification est une bonne idée, cela réduira le risque qu'une attaque par force brute réussise.

Il y a trois possibilités pour renforcer la sécurité de la zone d'administration de WordPress.

Option n° 1 : Ajouter un mot de passe de connexion pour accèder à l'administration de Wordpress

Sur un serveur web Apache, vous pouvez utiliser htpasswd en conjonction de htaccess, c'est une méthode très simple de protection par mot de passe. (Nginx, IIS et les autres serveurs web ont leur propre version de protection par mot de passe.)

Pour WordPress, vous devez protéger par mot de passe le fichier wp-login.php. Certes cela va obliger les administrateurs du site à taper un nom d'utilisateur et mot de passe supplémentaire avant de pouvoir accéder à la page de connexion WordPress. La sécurité demande parfois un peu d'effort...

Pour savoir comment protéger votre zone d'administration de WordPress, suivez ce tutoriel .

Option n° 2 : Mettre en place une validation en deux étapes

La validation en deux étapes nécessite deux étapes d'authentification distinctes avant que vous ne puissiez vous connecter à votre page d'administration WordPress.

Cette étape supplémentaire d'authentification permet de sécuriser votre site WordPress dans les cas où votre nom d'utilisateur et mot de passe aurait été compromis à votre insu. Cette double authentification vous donnear le temps de réinitialiser les informations de connexion avant que l'administration de WordPress ne soit violée. 

La validation en deux étapes vous informe également s'il y a des tentatives de connexion sur votre administration WordPress.

Voici comment fonctionne la vérification en deux étapes :

  1. Vous vous connectez à WordPress comme vous le faites normalement.
  2. Juste après d'entrer vos informations de connexion, vous recevrez un mot de passe sur votre téléphone mobile qui expirera après un certain laps de temps.
  3. Si le mot de passe unique est incorrect ou si le mot de passe a expiré, l'accès à votre zone d'administration de WordPress sera refusée, même si les informations de connexion sont valides.

Plugin 1 : Vous pouvez utiliser Google Authenticator pour WordPress en conjonction avec le Google Authenticator (qui est disponible sur iOS, Android et Blackberry). Voir le tutoriel réalisé par Korken ici

Plugin 2 : Un autre plugin à considérer est Duo Two-Factor Authentication. Il peut être configuré pour envoyer un SMS sur votre téléphone mobile ou effectuer un appel vocal qui divulgue votre mot de passe unique.

Capture d'écran du  plugin WordPress Duo pour l'authentification à deux facteurs

Option n°3 : Adresses IP en liste blanche

Avec cette option, seules les adresses IP autorisées (en liste blanche) pourront accéder à la zone d'administration de WordPress.

L' inconvénient avec les adresses IP en liste blanche est que si vous n'avez pas d'ip fixe ou si vous travaillez dans de nombreux endroits (cafés, espaces de coworking, etc.) et voyagez fréquemment, cette mesure de sécurité peut être un vrai soucis puisque vous n'aurez pas en liste blanche l'adresse IP que vous utilisez pour accéder à votre espace d'administration. 

Une des solutions de contournement à cette règle, est par exemple l'utilisation d'un VPN afin d'avoir une adresse IP statique quel que soit le réseau auquel vous vous connectez.

Pour créer votre liste blanche d'adresses IP, il suffit d'ajouter quelques lignes à votre fichier .htaccess.

Voici une directive qui refusera l'accès à la page wp-login.php si la demande ne provient pas des adresses IP misent en liste blanche.(remplacez ci-dessous "votre.adresse.ip" avec les adressse IP que vous souhaitez autoriser) :

Pour une adresse IP

<files wp-login.php>
order deny,allow 
deny from all 
allow from votre.adresse.ip
</files> 

Pour plusieurs adresses IP

<files wp-login.php>
order deny,allow 
deny from all 
allow from votre.adresse.ip.1 
allow from votre.adresse.ip.2 
allow from votre.adresse.ip.3 
</files> 

Mettre en place et maintenir une bonne politique de mot de passe

La première des failles de sécurité sur internet est souvent soi-même, quels sont vos mots de passe ? Utilisez-vous souvent les mêmes sur plusieurs services ? Sont-ils composés de lettres, de chiffres et de caractères spéciaux générés aléatoirement ?

Un site Wordpress est constitué ou tributaire de plusieurs applications et services tels que la base de données, l'interface d'administration, votre compte d'hébergement, etc... Pour chacune de ces composantes, il est souhaitable de mettre en place des mots de passe différents de manière à ce que la même "clé" n'ouvre pas toutes les portes.

Vos login et mots de passe doivent être constitués au minimum de 10 caractères aléatoires comportant chiffres, lettres (majuscules et minuscules) et des caractères spéciaux. Par exemple : Fdg(10?trv7 constitue une bonne protection que "kevin"...

Comment gerer ses mots de passe ?

Avec de tels logins et mots de passe se pose la question de leur gestion, votre mémoire pourrait ne pas suffire. Il existe de nombreux gestionnaires de mots de passe pour vous aider dans cette tâche. Parmis les meilleurs je citerais : Keepass, passreminder ou passwordsafe. Je vous invite à voir cette page de la CNIL pour tous les bons conseils qu'elle donne sur le sujet.

Faire le ménage et supprimer les fichiers qui ne servent plus

Une bonne pratique dans la gestion et la maintenance d'un site web consiste à supprimer régulièrement les fichiers de sites internet non utilisés ou obsolètes. Cela améliorer la sécurité WordPress en réduisant les vecteurs d'attaque potentiels.

Il est facile d'oublier de supprimer les fichiers inutilisés ou des fichiers de développement / test, on ne pensent pas que ces fichiers peuvent être dangeureux. Les attaquants peuvent y trouver des failles et exploiter les vulnérabilités découvertes

Voici une liste de choses à supprimer:

  • Désactiver les plugins ou les thèmes inutilisés : vous pouvez toujours les réinstaller plus tard au besoin.
  • Vieille installation de WordPress et fichiers de site Web inutilisés sur votre serveur : vous pouvez faire des tests ou un site de développement pour vos projets WordPress en cours. Ceux-ci doivent être supprimés des serveurs publics et archivés dans un endroit sûr.
  • Pages et messages dans la Corbeille WordPress : si vous avez des éléments enregistrés dans le dossier Brouillons et ne prévoyez pas les utiliser dans les prochains mois, les supprimer aussi.
  • Les commentaires dans le dossier Spam ou Corbeille : tout dans votre dossier en suspens devrait être approuvé ou définitivement supprimé.
  • Les sauvegardes que vous avez sur votre serveur : si vous sauvegarder automatiquement vos fichiers de site web sur votre compte d'hébergement ou un serveur web, retirez-les et sauvegardez-les dans un endroit qui n'est pas accessible au public.

Protégez WordPress des attaques DDoS

Les attaque par déni de service (DDoS : denial of service attack) sont des attaques qui tentent de faire tomber votre site Web.

Beaucoup de gens pensent à tord qu'ils ne peuvent pas être la cible d'une attaque DDoS, mais cela peut arriver à ne importe qui.

Nombre de rapports et d'études montrent que la fréquence d'attaque DDoS, la durée et la taille augmentent considérablement, il est temps de prendre des mesures pour défendre votre site contre ces attaques qui entraînent des ruptures de services et font perdre des revenus substanciel.

Je vous conseille la lecture de cette page Wikipédia pour obtenir plus d'information sur le sujet :

Solution : utilisez un pare-feu d'application Web

Peu importe la taille de votre site WordPress, s'il joue un rôle important pour vous, il a besoin d'un pare-feu d'applications Web.

Une application de pare-feu (ou Firewall) bloque les attaques qui tentent d'exploiter les vulnérabilités de sécurité.

Même si vous gardez mis à jour votre installation WordPress, ses thèmes et plugins avec les derniers correctifs de sécurité, vous êtes toujours à la merci d'exposition aux attaques zero-day. 

Les attaques zero-day dans le contexte de WP peuvent provenir de failles de sécurité non patchées qui sont inconnues des développeurs de plugins ou de thèmse, ou des problèmes de sécurité que les développeurs n'ont pas eu le temps de patcher et de publier dans un correctif. 

Un pare-feu d'application web réduit considérablement les vulnérabilités zero-day en bloquant les exploits communs tels que l'injection SQL et XSS.

Firewalls et solutions de protection :

Si vous avez votre propre serveur Apache (Dédié ou VPS), ModSecurity est un firewall open source que vous pouvez installer.

CloudProxy est une solution commerciale, c'est une suite de logiciels pour la protection des site internet. Il est livré avec un firewall qui prend en charge de nombreux types de plates-formes de publication, y compris WordPress.

Si vous êtes hébergement mutualisé le  plugin pour WordPress "Block Bad Queries (BBQ)", même s'il n'est pas techniquement un pare-feu, fera un bon travail en bloquant les requêtes malveillantes.

BBQ ajoute des directives à votre fichier .htaccess qui surveillent votre trafic web entrant, il détectera et bloquera les requêtes suspects et malveillantes.

Conclusion :

Comme vous avez pu le lire, sécurisé une installation Wordpress peut comprendre différents niveaux de mesures, le firewall étant sans doute la plus lourde à mettre en place. Cependant les premières mesures expliquées conviendrons et limiterons beaucoup les risques de piratages.

Il existe de nombreuses autres mesures à mettre en place pour parer à toutes éventualités, les pirates ne sont jamais en vacances...

Vous pouvez me contacter pour plus d'information ou me confier la sécurisation de votre site et application web.


Par Johan Puisais - Xtendo : création de site internet Poitiers

Pour continuer votre lecture sur la thématique WordPress

Partager l'article sur :

Tags : WordPress, Sécurité internet, Développement web Poitiers,

Commenter et noter cet article

Les commentaires pour cet article