Sécuriser un blog Wordpress pour une association
La mise en place d'un blog pour une association soulève quelques question et problématiques propre. La sécurisation de Wordpress en est une.
Ayant la lourde tache 😉 de mettre en place un "site web" pour une association, j'ai choisi un outil ergonomique, simple à mettre en place et qui dispose d'un écosystème permettant un max d'évolution.
Le soucis avec Wordpress, c'est qu'étant le CMS le plus utilisé dans le monde (62% en 2024 voir stats ici), c'est naturellement une cible privilégiée pour les hackers en tout genre, il faut donc blinder la sécurité surtout si on souhaite auto-héberger la solution.

Fonctionnalités
Pour etre exploitable par une association, un blog devrait
- être simple a administrer (gestion des droits d'utilisateurs, extension, thèmes etc)
- disposer d'un agenda (plugin The Events Calendar)
- disposer d'un moyen de gérer une newsletter
- permettre de visualiser la popularité des articles avec des outils d'analytics (Matomo, Google Analytics ou plugins du type WP Statistics)
- disposer de la possibilité de migrer depuis la plateforme existante vers une autre (Ghost, Grav etc.) sans etre locked-in.
Sécurisation
La sécurisation d'un système d'information passe par :
- l'éducation de ses utilisateurs
- réduire au maximum les risques liés à l'activité humaine
- réduire la surface d'attaque au niveau applicatif
- sécuriser l'infrastructure
L'éducation des utilisateurs
Les utilisateurs du blog seront réparti en 3 catégories (grossièrement) :
- les visiteurs : madamme monsieur tout le monde (lecteurs du blog)
- les rédacteurs (éditeurs) : celles et ceux qui vont rédiger du contenu ou créer des évènements
- les administrateurs : les personnes ayant les pleins pouvoir sur le site
Il faut faire prendre conscience aux rédacteurs et administrateurs des risques inhérents à l'exposition sur internet d'information liés à l'activité de l'association et de la création d'un point regroupant sur internet des personnes ayant un interet commun (et pouvant etre la cible d'attaques).
Il faut ensuite expliquer qu'un ensemble de mesures techniques seront mis en place pour réduire ces risques (voir suite), et communiquer sur ces contraintes (ex 2FA)
Réduire au maximum les risques liés à l'activité humaine
Il s'agit là de faire en sorte que les utilisateurs ne puisse pas introduire des failles dans le système (exemple un mot de passe trop faible) en mettant en place des mesures techniques.
Pour celà Wordpress dispose d'un système de plugins, et dans notre quete de la sécurisation du site de l'association, on mettra en place (avec des exemples de plugins) :
- désactiver les commentaires sur le Blog : Disable Comments
- 2FA : WP 2FA - Two-factor authentication for WordPress
- backup automatisé et fréquent du contenu (avec si possible externalisation, règle du 3/2/1) : UpdraftPlus
- retirer tous les comptes admin et n'attribuer le role d'admin qu'au nombre minimum de membres de l'association (ou prestataire), et faire une revue régulière (à planifier) des comptes présents.
Réduire la surface d'attaque au niveau applicatif
L'action indispensable dans ce registre consiste à supprimer tous les thèmes et plugins inactifs, typiquement supprimer le plugin qu'on a installé pour voir quand on aura le temps...
Sécuriser l'infrastructure
- régulièrement patcher le serveur niveau système (et ne pas utiliser Windows 🤪)
- appliquer un durcicement au serveur : lire et appliquer le guide de l'ANSSI "recommandations de configuration d'un système gnu/linux"
- mettre à niveau le moteur de blog et toutes les extensions et thèmes (automatiquement)
- utiliser du TLS (SSL) obligatoirement
- filtrer les requetes entrantes (ex Crowdsec ou WAF)
- segmenter le réseau et bien isoler ce Wordpress dans la DMZ des autres serveurs microsegmentation
- restreindre les flux sortants vers les URL wordpress (pour les plugins, themes) et éventuellement certains services indispensables