[Summary]





Quelques règles de sécurité en langage simple pour tout le monde.


Wordpress est de loin la solution la plus utilisée au monde pour créer des sites, c'est aussi une des meilleures solutions mais son succès en a fait une cible de choix pour tous les hackers de la planète. Vous n'avez peut être pas un site commercial et vous pensez peut être que votre site n'intéressera pas les hackers au point qu'ils voudront le hacker, détrompez-vous, ils s'en foutent complètement. Parfois l'attaque est visible et vous vous retrouvez avec du porno sur votre blog mais les hackers peuvent également s'infiltrer sur votre site pour s'en servir pour attaquer d'autres sites de façon presque transparente.

La sécurité absolue n'existe pas, il y aura toujours des failles et des hackers intelligents pour les trouver. Faut-il pour autant s'arrêter là? Non, surement pas. L'équation idéale consiste à rendre le travail des hackers plus difficile. Après tout devient une question de bénéfice, si un hacker ne peut tirer un gros bénéfice de votre site bien protégé, il ne prendra sans doute pas la peine d'aller creuser plus loin.

Je ne suis pas un expert en sécurité, je n'ai donc pas la prétention de vous mettre à l'abri de tout mais vous trouverez ici quelques règles de sécurité élémentaires que vous devriez suivre.


 



Règle n°1: mise à jour




Niveau: débutant


Un peu comme Windows, Wordpress est une solution qui doit être mise à jour pour ajouter de nouvelles fonctionnalités et apporter des nouvelles couches de protection. Etant donné l'importance de Wordpress au niveau mondial, ce système est constamment mis à l'épreuve par des milliers de hackers mais pour les mêmes raisons, il y a sans doute autant de monde qui cherche à améliorer le produit. Dès qu'une mise à jour est disponible, installez-là !

Comment installer une mise à jour:
- connectez-vous à votre interface d'administration (ex: monsite.com/wp-admin)
- entrez votre identifiant et mot de passe
- sur votre tableau de bord, vous devez en principe recevoir une invitation pour faire une mise à jour, cliquez sur le lien et suivez les instructions
mise à jour wordpress
Note: si vous avez la possibilité de faire une sauvegarde de votre site (par vous-même ou via votre hébergeur), faites-le, car si la mise à jour est interrompue pour une raison ou une autre, vous pourriez bien vous retrouver sans site.

La mise à jour est la règle n°1 à suivre car quoi que vous fassiez pour vous protéger, traîner avec une vieille version de Wordpress c'est lancer une invitation pour se faire hacker! J'en ai fait les frais et croyez moi, récupérer un site à 2h du matin après une soirée bien arrosée, c'est loin d'être amusant!


 



Règle n°2: nom d'utilisateur et mot de passe




Niveau: débutant


Protéger son site avec un bon mot de passe c'est essentiel, ça coule de source et pourtant beaucoup ne le font pas. En plus du mot de passe, il faut également choisir un nom d'utilisateur différent de celui attribué par défaut par Wordpress (admin) car en gardant "admin" comme nom d'utilisateur, vous faites déjà la moitié du travail du hacker.

Changer le nom d'utilisateur:
- cliquez sur "Utilisateurs"
wordpress utilisateurs
- Cliquez sur Ajouter
wordpress utilisateurs 2
Suivez les instructions pour créer un utilisateur de type admin mais sans utiliser le mot "admin". Evitez tout ce qui s'en rapproche, évitez aussi d'y mettre le nom de votre site, évitez d'y mettre un mot que l'on peut trouver dans le dictionnaire. Vous devez également utiliser une autre adresse e-mail que celle utilisée pour le compte "admin".

Note important: vous avez la possibilité de choisir un nom public, ne choisissez pas le même nom que celui utilisé pour l'identifiant sans quoi tout ce que vous faites ici sera inutile vu que vous révélez le nom de votre identifiant.

- Effacez le vieux compte admin à partir de la liste des utilisateurs, survolez "admin" avec la souris, cliquez sur effacez. Wordpress va vous proposer ici d'attribuer tous les articles écrits par "admin" à un autre profil, choisissez celui que vous venez de créer.


 



Installer des plug-ins de sécurité




Niveau: débutant


Si vous n'êtes pas développeur ou que vous n'avez pas envie de rentrer dans le code pour vous protéger, il existe de nombreuses extensions (plug-ins) de sécurité que vous pouvez installer pour vous aider à protéger votre site. Pour installer une extension, cliquez sur "Extensions" puis ajouter. Wordpress vous affiche ici une liste d'extension par défaut mais vous disposez d'un moteur de recherche en haut à droite pour faire votre propre recherche.

Je vous conseille d'installer Wordfence ou Sucuri (au choix)


Les deux solutions se valent et vous permettront de sécuriser votre site gratuitement.

Configuration de Wordfence
Après l'installation de Wordfence, cliquez sur Wordfence dans votre menu ensuite "options".
Vous pouvez cochez toutes les cases sauf celles indiquées comme "premium" car celles là sont payantes. N'oubliez pas de mettre votre adresse mail pour recevoir les alertes (where to email alerts) de telle sorte à ce que Wordfence vous prévienne en cas de problème. Ne faites pas d'arrêt cardiaque la première fois où vous allez recevoir un mail de Wordfence, la plupart du temps Wordfence vous préviendra juste qu'il a bloqué une attaque.

Configuration de Sucuri
Ici aussi Sucuri fera la plupart des choix pour vous pendant l'installation. Vous pouvez ensuite modifier la configuration en cliquant sur "Sucuri et puis "Settings".
Activez les options suivantes:
IP adress discovered: cette option pourra permettre d'identifier d'où viennent les attaques
User comment monitor: ce service vérifie avec Sucuri si les commentaires postés sur votre site ne sont pas des commentaires de spam. Une option intéressante si vous voulez éviter le comment spam.
Audit log statistics: permet de surveiller l'activité sur votre site, qui essaie d'y accéder et comment
Vous pouvez activer les autres options mais lisez bien les instructions avant car certaines ont un impact négatif sur le temps de chargement de votre site.


 




Eviter les thèmes gratuits non-officiels




Niveau: débutant


Une des forces de Wordpress réside dans la possibilité d'installer des thèmes pour avoir un site qui a de la gueule. Il existe des thèmes de base fournis par Wordpress et bien qu'ils ne soient pas extraordinaires au niveau visuel, ils vous permettront déjà de construire un site tout à fait correct et surtout sur une base sûre. Vous trouverez sans doute des tas d'autres sites qui proposent des thèmes mais vous prenez un risque. Ces thèmes ne sont pas controlés par Wordpress et peuvent donc contenir du code malicieux qui est assez difficile à trouver, même pour un développeur expérimenté.

Vous pouvez vérifier si un thème est propre en installant une extension (plug-in) permettant de scanner les thèmes. Allez dans "Extensions" puis "Ajouter", recherchez "theme scan" et dans la liste choisissez celui qui a le plus de téléchargements avec une note de plus de 4 étoiles sur 5, avec ça vous devriez vous en sortir. Cette solution est valable pour les thèmes que vous avez déjà installés mais si vous voulez vérifier un thème avant de le télécharger, vous pouvez utiliser un site comme http://themecheck.org/fr/ qui liste les thèmes déjà scannés et vous permet d'uploader un thème par vous même.

Il existe également de nombreux thèmes gratuits que vous pouvez trouver sur des sites de torrents, ne les téléchargez pas! Des thèmes premiums gratuits c'est généralement suspect, ne prenez pas de risques inutiles!

 




Se protéger du spam sur les commentaires




Niveau: moyen


Le spam sur les commentaires c'est quoi? Ce sont des scripts qui viennent polluer votre site avec des tas de commentaires sur votre site pour faire la promotion de sites louches que vous n'avez pas envie de voir sur votre site. Ces attaques sont souvent automatisées et assez massives, vous pourriez bien vous retrouver avec 4000 commentaires indésirables sur votre site en l'espace de quelques minutes. En dehors du fait que ces commentaires ça ne fait pas très "propre" sur votre site, ils peuvent également donner de mauvais signaux à Google et vous risqueriez d'y perdre en référencement.

Comment vous protéger ? Plusieurs méthodes existent.
Sucuri cité plus haut peut vous aider. Le plug-in le plus connu c'est Akismet, il est développé par la société qui développe Wordpress. Il se base sur l'activité de tous les sites Wordpress et lorsqu'une attaque de spam est détectée au niveau global, Akismet permet de protéger tous les sites qui l'utilisent. Vous bénéficiez donc d'un système de protection global. Akismet n'est cependant pas gratuit mais vous pouvez définir vous même combien vous payez chaque année. Une solution facile, pas très chère et efficace.

Il existe une méthode plus technique qui consiste à faire une mise à jour dans le fichier .htaccess avec le contenu suivant:


RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]


Remplacez yourdomain.com par l'adresse de votre site

Ce code permet de bloquer une partie des spams en vérifiant si le commentaire a été initié par un autre site.
Ce que ce script vérifie:
- si la requête est de type POST
- si la requête point vers le script de commentaires
- si la requête vient de votre site
Si ces conditions ne sont pas remplies, votre site renvoie la balle à l'expéditeur en redirigeant la requête de là où elle venait, et hop!


 



Mettre le site derrière un cloud




Niveau: moyen


Un cloud c'est quoi? On parle en fait d'un CDN, l'abbréviation de Content Distribution Network. Ca ne vous dit toujours pas ce que c'est, ok, donc si je dois l'expliquer s'implement c'est une couche technique qui vient s'installer entre votre site et votre visiteur. Chaque visite passe par le CDN avant d'arriver vers votre site. Quelle est donc l'intérêt ?
- le cloud optimise la vitesse de votre site
- le cloud peut stopper certaines attaques
- le cloud peut optimiser votre code

Comment s'y prendre?
Il faut d'abord trouver un service de cloud comme par exemple Cloudflare.com, c'est gratuit.
Vous vous inscrivez à CloudFlare et dans la configuration, Cloudflare va vous demander d'adapter les DNS de votre site pour tout faire passer chez eux plutôt que par votre hébergeur naturel.

Cloudflare utilise habituellement:
elle.ns.cloudflare.com
lee.ns.cloudflare.com

Que faut-il faire avec ces trucs là ? Vous devez remplacer les DNS fournis par votre hébergeur. Je vous indique comment le faire pour OVH:
- entrez dans votre compte OVH
- cliques sur "domaines"

- choisissez votre domaine et cliquez ensuite sur DNS servers

- cliquez sur l'option pour personnaliser votre serveur dns à droite

- confirmer le changement

- editer les noms avec le crayon à droite

Vous pouvez ici remplacer les DNS de OVH par ceux fournis par Cloudflare. Gardez les anciens sous la main au cas où vous voudriez faire machine arrière.

Attention, cette opération n'est pas compliquée mais la moindre erreur peut rendre votre site complètement indisponible, à utiliser avec précaution donc.

Autre remarque, le changement ne se fait pas en temps réel, ça peut parfois prendre plusieurs heures. Vous verrez dans votre interface CloudFare si le changement s'est déroulé correctement.


 



Utiliser le .htaccess




Niveau: avancé


Accéder au fichier .htaccess de votre Wordpress demande l'utilisation d'un client FTP et d'un éditeur de fichier. Si vous avez l'habitude de ce genre de chose, les éléments ci-dessous ne vous poserons aucun problème. Si ce n'est pas le cas, n'hésitez pas sans l'aide de quelqu'un de plus expérimenté, la moindre erreur dans le fichier htaccess peut rendre votre site inaccessible!

Que peut-on faire avec le fichier .htaccess? Ce fichier permet de réguler le trafic venant vers votre site en établissant des règles. Vous pouvez bloquer du trafic, autoriser l'accès, rediriger et bien d'autres choses encore mais attardons nous d'abord sur l'aspect sécurité de Wordpress.


Bloquer l'accès à certaines IP:

Si vous êtes constamment attaqués par les mêmes adresses IP (souvent issues de Russie ou d'Ukraine), vous pouvez les bloquer avant qu'elles ne touchent votre installation Wordpress:



order allow,deny
allow from all
deny from 5.1.0.0/19

Dans cet exemple je bloque toutes les adresses IP du range 5.1.0.0 jusque 5.1.0.19. Si une de ces adresses se présente sur le site, elle aura droit à une page d'erreur.
On peut ajouter autant d'IP que l'on veut, sous la forme d'un range ou d'un masque (ex: 5.1.0. on couvre ici plus de possibilités).

Attention, si vous faites ceci, cela bloquera l'accès à tout le site pour l'adresse IP concernée, assurez-vous donc de ne pas bloquez de vrais visiteurs.


Bloquer les requêtes POST


# allow the server to POST to itself
RewriteCond %{REMOTE_ADDR} !127.0.0.1

Ceci permet de réserver les requêtes POST à la machine sur laquelle se trouve votre site, cela évite des POST de l'extérieur.


Protection contre les injections de fichiers


RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]



Protection de la page de login



order deny,allow
Deny from all
allow from X.X.X.X


Si vous vous connectez toujours du même endroit, vous pouvez limiter l'accès à l'admin en bloquant toutes les adresses IP sauf la votre. Simple et efficace mais très contraignant car dès que vous changez d'IP, vous êtes vous-mêmes bloqués.


Protéger l'accès aux fichiers htaccess



order allow,deny
deny from all
satisfy all


Vu le côté sensible des fichiers htaccess mieux vaut les protéger de façon efficace.


Eviter certaines attaques de spam



Order Allow,Deny
deny from all


Il s'agit ici d'une vulnérabilité de Wordpress qui si elle n'est pas corrigée peut transformer votre site en machine à spam.

Il existe bien d'autres méthodes encore, si vous avez des suggestions, n'hésitez pas à les proposer en commentaire.