Table des matières de l'article :
L’un des sujets les plus discutés et demandés tant par les passionnés que par les développeurs du monde WordPress est sans aucun doute celui relatif à la sécurité des installations. Le but est de protéger vos sites Internet des intrusions, des attaques et, de manière générale, de ces entités insidieuses et malveillantes communément appelées hackers. Dans ce contexte, nous recherchons des solutions efficaces pour sécuriser notre environnement numérique.
Si vous fouillez dans les forums en ligne, les groupes Facebook dédiés ou les newsletters thématiques, la réponse la plus courante et presque canonique concerne l’adoption de plugins de sécurité spécifiques. Parmi les plus populaires dans ce domaine, on retrouve WordFence, Sucuri et iThemes Security. Il n’est pas rare que l’installation de plus d’un de ces plugins soit suggérée, parfois en combinaison, pour obtenir une couverture de sécurité jugée plus complète.
WordFence
Description:
WordFence est l'un des plugins de sécurité les plus populaires pour WordPress, offrant un large éventail de fonctionnalités pour protéger votre site Web. Parmi ses principales fonctionnalités, nous trouvons l'analyse des logiciels malveillants, le pare-feu et la protection contre les attaques par force brute. Le plugin est connu pour son interface conviviale et sa capacité à surveiller le trafic en temps réel, permettant aux administrateurs du site de réagir rapidement à toute menace potentielle.
Sito Officiel :
Site officiel de WordFence
Sucuri
Description:
Sucuri est un autre plugin de sécurité très apprécié dans la communauté WordPress. Il offre une suite complète d'outils de sécurité, notamment un pare-feu d'application Web (WAF), une surveillance des logiciels malveillants et une protection DDoS. Sucuri est particulièrement populaire pour son service de nettoyage de sites, qui permet de supprimer les logiciels malveillants et de restaurer les sites Web compromis.
Sito Officiel :
Site officiel de Sucuri
iThemes Security
Description:
iThemes Security est un plugin de sécurité robuste et polyvalent pour WordPress, doté d'un certain nombre de fonctionnalités conçues pour protéger votre site Web contre divers types de vulnérabilités. Certaines de ses fonctions incluent la protection contre les attaques par force brute, la recherche de logiciels malveillants et la mise en œuvre de mesures de sécurité telles que la modification des préfixes des tables de base de données et la protection du fichier .htaccess.
Sito Officiel :
Site officiel de sécurité iThemes
Cependant, ce qui reste souvent dans l’ombre, ce sont les effets secondaires de ces solutions sur les performances des sites web. Ces plugins, écrits majoritairement en PHP — du fait des limitations intrinsèques de ce langage en termes de performances — ont un coût de calcul non négligeable. Pour chaque visite sur le site et pour une série d'actions spécifiques, comme le processus de connexion, ces scripts lancent une séquence d'opérations visant à assurer la sécurité. Ces opérations peuvent cependant impacter négativement le temps de réponse du site (latence) et l'utilisation des ressources système, notamment du CPU.
En d’autres termes, il existe un compromis entre sécurité et performances : l'installation de plugins de sécurité peut offrir un niveau de protection plus élevé, mais au prix d'une diminution des performances du site. C’est un aspect crucial à considérer, notamment pour ceux qui se concentrent sur la performance Web et souhaitent offrir une expérience utilisateur optimale sans compromis.
Comment fonctionnent ces plugins de sécurité ? Voyons WordFence par exemple.
Directement sur leur site : https://www.wordfence.com/blog/2017/01/how-wordpress-firewall-works/ nous rapportons la version traduite en italien.
"Lorsque vous activez le pare-feu de Wordfence, nous utilisons une technique qui indique à votre serveur Web d'exécuter le code du pare-feu de Wordfence avant tout autre code PHP sur votre site Web. La façon dont nous procédons est d'inclure une directive dans votre fichier .htaccess appelée 'auto_prepend_file'. Cette directive renvoie au code Wordfence et garantit que Wordfence fonctionne avant toute autre chose.
Une fois que votre site Web est configuré pour lancer le pare-feu Wordfence, toute demande reçue, quel que soit le fichier PHP auquel il tente d'accéder, sera d'abord traitée par Wordfence pour vérifier si elle est sûre ou non. Notre pare-feu WordPress exécutera la demande via son propre ensemble de règles, effectuera une analyse détaillée de haute performance et prendra la décision de bloquer la demande ou de l'autoriser.
Le code du pare-feu qui exécute cette décision avant toute autre chose, y compris WordPress. Cela signifie que le code WordPress n'a pas été chargé et que la base de données n'est pas encore connectée. Cela rend le code du pare-feu de Wordfence incroyablement rapide . Nous pouvons bloquer une requête malveillante avant même qu'elle ne se connecte à votre base de données et avant que le code WordPress volumineux et l'environnement API ne soient chargés.
Le code du pare-feu de Wordfence s'exécute avant toute autre chose, y compris WordPress. Mais il a également la possibilité de transférer des données vers WordPress et d'obtenir des données de l'API WordPress. Cela nous permet d'intégrer l'identité de l'utilisateur dans notre ensemble de règles afin que nous puissions décider d'autoriser ou non l'accès d'un utilisateur, en fonction non seulement du contenu de la demande, mais aussi de qui il est et de son niveau d'accès. WordPress.
L'utilisation de ce modèle d'exécution haute performance signifie que les pirates n'atteignent que le pare-feu Wordfence superflu et ne peuvent pas le franchir. Les amis des visiteurs du site, les robots d'exploration et les utilisateurs peuvent accéder à votre site Web complet. Cela maintient votre site Web WordPress rapide et sécurisé. »
Haute performance ? Vraiment ? Dans quel contexte ?
Le terme « haute performance » est une notion relative qui peut varier considérablement selon le contexte dans lequel elle est utilisée. Pour faire un analogue automobile, une Ferrari est incontestablement rapide par rapport à une berline de série, mais n'est peut-être pas la plus rapide par rapport à une voiture de Formule 1. Par conséquent, la vitesse et les performances sont toujours relatives et dépendent des critères de comparaison adoptés.
Critères d'évaluation des plugins WordPress
Dans le contexte des plugins de sécurité WordPress, « hautes performances » peut faire référence à l’efficacité dans la détection et la prévention des menaces, à la facilité d’utilisation ou à l’efficacité dans l’utilisation des ressources système. Cependant, l'utilisation du terme devient ambiguë lorsque l'on considère également les implications sur les performances du site, en particulier pour les sites Web à fort trafic.
PHP et limitations inhérentes
Prenons par exemple un plugin WordPress qui fait office de WAF (Web Application Firewall). Même s’il était conçu pour fonctionner le plus efficacement possible, l’utilisation du langage PHP présente des défis inhérents. PHP est notoirement plus lent que les autres langages de programmation et peut devenir un goulot d'étranglement, surtout lorsqu'il doit effectuer des opérations complexes ou nombreuses lors de chaque visite d'un site. Son modèle d’exécution bloquant signifie que chaque opération doit se terminer avant que la suivante puisse commencer, ce qui peut ralentir considérablement le site.
Le dilemme des performances pour les sites à fort trafic
Par conséquent, même si un plugin de sécurité basé sur PHP peut être « très performant » en termes de capacité à détecter et neutraliser les menaces, il n’est peut-être pas la solution idéale pour un site WordPress qui doit gérer un volume de trafic élevé. Dans ces cas, la nécessité d’effectuer des contrôles de sécurité « à chaque visite » peut devenir un facteur limitant important, ayant un impact négatif sur la latence et l’utilisation des ressources CPU.
Rappelez-vous toujours que PHP est un langage très lent.
Comme rapporté par de nombreux Benchmarks, PHP a une consommation CPU très élevée par rapport à d'autres langages tels que node.js à partir duquel nous avons rapporté le graphique ci-dessous. Cela a un fort impact sur les performances.
Pouvez-vous imaginer un site qui, pour chaque visite, doit effectuer ne serait-ce qu'une seule opération triviale en PHP ? Réalisez-vous ou non que le langage de programmation PHP est la chose la plus lente qui puisse exister ? Est-ce qu'on se rend compte que si on a 1000 visiteurs ou plus en ligne il est impensable d'activer PHP pour chaque visiteur pour éviter un ralentissement important des performances jusqu'à un plantage du système ?
Prenons par exemple cette capture d'écran d'il y a 5 jours. Un blog bien connu à fort trafic avec environ 15 250 utilisateurs connectés par minute, soit environ XNUMX utilisateurs par seconde. Serait-il vraiment logique d'exécuter un processus PHP pour chaque utilisateur ? Non. Évidemment.
Nos recommandations
La sécurité en ligne est un sujet qui concerne tous les gestionnaires de sites Web, et dans le vaste écosystème WordPress, les options pour protéger votre site peuvent sembler infinies. Cependant, toutes les solutions ne correspondent pas aux besoins de chaque type de site.
Évaluation critique des plugins de sécurité
Notre recommandation la plus sincère est d’être prudent lorsque vous choisissez d’installer des plugins de sécurité WordPress. Ces outils peuvent être très efficaces, mais il est essentiel de considérer l’environnement dans lequel ils seront utilisés.
Pour les sites institutionnels à faible trafic
Si vous exploitez un site institutionnel avec des mises à jour sporadiques et un volume de trafic relativement faible, l'utilisation de ces plugins peut être un choix acceptable. Sachez toutefois que cela entraînera une augmentation de la charge de travail du serveur et une augmentation de la latence. L’avantage est que vous obtiendrez un niveau de sécurité plus élevé pour votre site Web.
Pour les sites WordPress à fort trafic
Pour les sites WordPress avec un volume de trafic élevé, le conseil le plus précieux que nous puissions offrir est d’éviter d’installer ces plugins. L'impact sur les performances pourrait être important et potentiellement dangereux.
Côté système de solutions WAF
Si vous avez un besoin impérieux d’une solution de sécurité agissant comme un WAF (Web Application Firewall), notre recommandation est d’explorer les options côté système plutôt que de vous fier aux plugins WordPress. Par exemple, vous pouvez considérer NAXI, un pare-feu de sécurité open source pour les serveurs Web NGINX, ou le plus traditionnel et éprouvé mod_security pour Apache.
Solutions de sécurité externalisées
Si vous préférez opter pour des services de sécurité managés, une solution comme le plan commercial de CloudFlare, qui commence à environ 25 € par mois, peut fournir un service de pare-feu d'application Web efficace sans alourdir votre système ni provoquer de crash.
En fin de compte, la clé est de choisir la solution de sécurité la mieux adaptée à votre environnement spécifique, en tenant toujours compte à la fois de vos besoins en matière de sécurité et des implications en termes de performances du site.