Sécuriser aujourd'hui

Protéger demain

1. Wordpress, CMS le plus populaire

Source: pongo.io

1.1. Wordpress

On ne le présente plus, Wordpress est le système de gestion de contenu le plus utilisé du monde. En 2021, presque 40% des sites Web utilisent Wordpress pour gérer leurs contenus. En plus d’être le CMS le plus utilisé, il est aussi celui qui connait la plus grande croissance. Son succès n’est donc pas près de s’estomper.

1.2. Les raisons du succès

Ce succès peut s’expliquer de diverses manières :

  • Son accessibilité, Wordpress est un logiciel Open source et donc gratuit, ce qui représente un grand avantage.
  • Son adaptabilité, il est possible de réaliser une grande gamme de sites : du blog au site vitrine en passant par la plateforme d’e-commerce.
  • La gestion facile du contenu, chacun peut contribuer sans être un expert informatique.
  • Une myriade d’extensions gratuites, qui permettent de personnaliser l’application.

Pour toutes ces raisons, Wordpress reste en effet l’un en effet un des meilleurs choix lorsque l’on souhait développer une application Web rapidement et facilement.

1.3. Sécurité de Wordpress

Source: webcover.fr

Le grand succès de ce CMS n’est donc plus à constater, cependant celle-ci vient avec son lot d’inconvénients. Parmi ceux-ci, la sécurité de ses données, en effet, de par sa popularité, Wordpress est très connu des attaquants. Les vulnérabilités connues sur des versions obsolètes, les défauts de configuration, les interfaces d’authentification faiblement protégées sont autant de portes d’entrée rapides et faciles pour un attaquant.

Wordpress est ainsi le CMS le plus attaqué au monde ( ce qui peut aussi s’expliquer par le fait que ce soit le plus utilisé). On pourrait alors se demander s'il est facile d’infecter un site Wordpress; en réalité, c’est un peu plus compliqué, il est nécessaire suivre les bonnes pratiques de sécurité.

Afin de disposer d’une application Wordpress robuste, et de se prémunir des attaques faciles, il est nécessaire de mettre en place les bonnes pratiques de sécurité qui sont décrites dans la partie suivante de cette page.

2. Bonnes pratiques de sécurité

2.1. Introduction

Nous allons dorénavant voir les bonnes pratiques de sécurité. Celles-ci sont divisées en 3 grands axes dans ce document :

  • 1 Mise à jour et utilisation de composants robustes
  • 2 Durcissement de la configuration
  • 3 Protection de l’authentification

2.2. Mise à jour et utilisation de composants robustes

La majorité des attaques sur des sites Wordpress provient d’une vulnérabilité sur une version obsolète d’un composant. 40% des sites Wordpress attaqués utilisent des versions obsolètes, et il existe aujourd’hui plus de 4000 vulnérabilités connues sur les plugins, thèmes et noyaux Wordpress. Il est donc primordial de se protéger contre ces attaques, bien trop faciles à mettre en place du point de vue d’un attaquant.

Depuis la version 5.5 (février 2020), Wordpress propose un système de mise à jour automatique de son noyau, de ses plugins et de ses thèmes, ce qui représente une solution idéale. Cependant, on remarque qu’il y a parfois des réticences à adopter ce comportement, car cela peut poser des problèmes de stabilité et le dysfonctionnement du site suite à une mise à jour. La solution idéale à ce genre de problème, et qui répond en plus à une problématique de sécurité, est de réaliser des sauvegardes régulières de votre site afin de revenir dans une version stable le plus rapidement.

Il est aussi envisageable d’opter pour l’utilisation d’un environnement de test qui servirait à vérifier que votre site ne soit pas inutilisable à chaque mise à jour ; et c’est ensuite que vous réaliseriez la mise à jour manuelle sur l’environnement de production. Cependant cette mise à jour manuelle devra être effectuée le plus régulièrement possible (au moins 1 fois par mois).

Des solutions de sauvegardes sont proposées dans la partie 2.5. Sauvegardes de ce guide.

2.3 Durcissement de la configuration

De base, la configuration de Wordpress n’est pas assez dure. Celle-ci permet aux attaquants de récupérer des informations sensibles, voir de mener certaines attaques. Voici les points clés du durcissement de la configuration :

2.3.1. Exposition de l’interface XMLRPC

L’interface XMLRPC permet de communiquer simplement entre Wordpress et d’autres systèmes. Cependant, son exposition sur Internet introduit des vulnérabilités, parmi les plus connues et utilisées : des attaques par déni de service (DDOS) et des attaques par Brute force efficaces pour trouver des identifiants valides à votre interface de connexion.

Bien que la définition donnée de XMLRPC semble la rendre indispensable, elle n’est quasiment plus utilisée par les sites Wordpress de nos jours. Il est donc certainement possible de désactiver la vôtre. Deux méthodes permettent de désactiver son interface XMLRPC :

  • Ajouter la directive suivante dans le fichier .htacess à la racine de votre site Wordpress :
    # Block WordPress xmlrpc.php requests
    <Files xmlrpc.php>
    order deny,allow
    deny from all
    </Files>
  • Installer un plugin permettant de désactiver cette interface. Le plugin Disable XML-RPC-API est efficace pour cela.

2.3.2. Sécurité du fichier WP-config.php

Le fichier wp-config.php est un fichier particulièrement sensible. En effet, celui-ci contient des secrets d’identification primordiaux pour votre site.

Une solution efficace permettant de réduire le risque que ce fichier ne se fasse voler est simplement de le déplacer dans un répertoire à l’extérieur de l’arborescence de votre site Web. Une fois que ce fichier est déplacé, vous pouvez le réinclure simplement en créant un nouveau fichier wp-config dans votre site Web qui importera le fichier wp-config originel et déplacé.

Il sera alors peut-être nécessaire de modifier le fichier php.ini si vous avez un message d’erreur relié à open_basedir. Si c’est le cas ajouter simplement le chemin de votre fichier wp-config.php originel et déplacé aux chemins présents dans openbase_dir.

2.3.3. Désactiver l’énumération de répertoire

La majorité des sites Wordpress est hébergée par un serveur Apache. Celui-ci peut souffrir d’une mauvaise configuration de base qui affecte alors Wordpress. Il s’agit de l’énumération de répertoire.

En effet, si Apache ne possède pas une configuration suffisamment robuste alors il sera possible d’énumérer ses répertoires et d’accéder très facilement à des données sensibles. Cette faille est d’autant plus importante que les attaquants connaissent bien les répertoires Wordpress (wp-includes/, wp-content/uploads/ …).

Pour remédier à cela, il suffit d’ajouter une directive dans le fichier de configuration apache ( généralement situé dans /etc/apache2/apache2.conf) ou dans le fichier .htaccess à la racine du serveur Wordpress. Cette directive est la suivante :

# Disallow directory listing
Options -Indexes

2.4. Protection de l’authentification

Comme toute application Web qui se respecte, l’authentification est un enjeu majeur pour la sécurité. Nous prendrons comme acquis que les mots de passe utilisés sont robustes (12 caractères minimum, au moins une minuscule, une majuscule, un numéro et un caractère spécial), car cela devrait être respecté pour tous les mots de passe. L’inverse reviendrait à laisser une porte grande ouverte pour un attaquant.

Voici donc les bonnes pratiques à respecter concernant l’authentification :

2.4.1. Activer la double authentification

Comme toute application Web qui se respecte, l’authentification est un enjeu majeur pour la sécurité. Nous prendrons comme acquis que les mots de passe utilisés sont robustes (12 caractères minimum, au moins une minuscule, une majuscule, un numéro et un caractère spécial), car cela devrait être respecté pour tous les mots de passe. L’inverse reviendrait à laisser une porte grande ouverte pour un attaquant.

Voici donc les bonnes pratiques à respecter concernant l’authentification :

2.4.1. Activer la double authentification

La double authentification reste un moyen simple de renforcer la sécurité de l’application. En effet, celle-ci permet de rajouter une couche de sécurité dans le processus d’authentification. Plusieurs plugins de sécurité permettant d’activer une authentification à double facteurs, parmi ceux-ci nous recommandons :

  • Wordfence ou ithemes Security, si vous désirez avoir cette fonctionnalité avec un plugin de sécurité généraliste.
  • WP 2FA, si vous désirez gérer la fonctionnalité de manière avec un plugin uniquement dédié à cela.

2.4.2 Filtrage IP

Si les connexions à l’interface d’administration de Wordpress ne sont effectuées que par une poignée d’administrateur, il est très intéressant de filtrer l’IP entrante. On bloquera alors quasiment toutes les chances qu’a un attaquant de pénétrer dans votre site Wordpress par l’interface d’authentification.

<Files wp-login.php>
order deny,allow
Deny from all

# whitelist Your own IP addresses
allow from xx.xxx.xx.xx
allow from xx.xxx.xx.xx
</Files>

2.5. Sauvegardes

Les sauvegardes relèvent d’une importance capitale, car elles permettent d’avoir un système résilient en cas d’incident de sécurité. Il est donc capital d’en faire de manière régulière que ce soit pour ses serveurs, ses postes … mais aussi pour les applications Wordpress.

De manière générale, il est recommandé de suivre la règle 3, 2, 1 pour les sauvegardes :

  • Effectuer 3 copies des données
  • Sauvegarder sur 2 supports différents : copie sur le cloud, disque externe, disque dur …
  • Avoir 1 copie hors site : que ce soit sur un disque externe déplacé hors du site ou plus simplement sur le cloud.

Il est possible d’effectuer ces sauvegardes grâce à des plugins qui rendent donc la tâche bien plus simple. Nous allons voir donc 2 plugins que nous recommandons pour effectuer vos sauvegardes :

BackWPup

BackWPUp: Ce plugin permet d’effectuer des sauvegardes complètes de votre site Wordpress (thèmes, plugins, base de données …). A la suite de chaque sauvegarde, un email vous est envoyé pour vous informer de la réussite de la sauvegarde.

Avantages Inconvénients
Aperçu des sauvegardes directement depuis l’interface d’administration Wordpress. Configuration avec le Cloud qui peut être pénible.
Les fichiers de Backup sont chiffrés. L’option de restauration des sauvegardes depuis le plugin est payante.

UpdraftPlus

Ce plugin propose plus ou moins les mêmes fonctionnalités que le précédent plugin. Sa grande différence est qu’il est possible de faire des restaurations d’une version Wordpress dans la version gratuite.

Avantages Inconvénients
Très facile à utiliser. Support peu réactif dans la version gratuite.
Possibilité d’effectuer des restaurations mêmes dans la version gratuite.
Beaucoup d’options de sauvegardes dans le Cloud.

3. Synthèse

3.1. Plan d’action

Afin d’y voir plus clair dans la sécurisation de son installation Wordpress, nous vous proposons un plan d’action pour prioriser les bonnes pratiques à mettre en place :

Priorité Bonnes pratiques
Difficulté de mise en place
P1 Définir une politique de mise à jour et mettre à jour les composants (partie 2.2)
Facile
P2 Mettre en place au moins 1 solution de protection de l’authentification (partie 2.4) Facile
P2 Mettre en place un système de sauvegardes (partie 2.5) Moyenne
P3 Désactivation de l’interface XMLRPC (partie 2.3.1) Facile
P4 Désactiver l’ énumération de répertoire (partie 2.3.3) Facile
P5
Durcissement du fichier WP-config (partie 2.3.2) Moyenne

4. Plugins de sécurité

4.1. Plugins de sécurité

En complément de ces bonnes pratiques de sécurité, il est recommandé d’installer un plugin de sécurité généraliste qui permet de surveiller l’activité et de se prémunir contre certaines attaques ( Blocage IP ou de compte au bout d’un certain nombre de tentatives de connexion infructueuses par exemple).

Voici quelques exemples de plugins que vous pouvez installer :

  • Ithemes Security
  • Wordfence
  • All in one Security

Nous avons comparé les fonctionnalités de sécurité proposées par ces plugins dans leur version gratuite :

Fonctionnalité Wordfence

Ithemes Security
All in one Security
Gestion de la politique de mot de passe
Image
Gestion d’un deuxième facteur d’authentification
Système anti-Bruteforce
Blacklist d’IP malveillante connue
Analyse des fichiers du site
Pare-feu
Image
Journalisation
Système de notation
Image
Image
Réparation de fichiers
Image
Image

Il est de plus recommandé de n’installer qu’un seul de ces 3 plugins pour éviter qu’il y ait des collisions entre les différentes fonctionnalités.