Un pare-feu d'application web (WAF) se place entre votre site web et Internet, inspectant chaque requête HTTP entrante et bloquant celles qui correspondent à des motifs malveillants connus. Contrairement à un pare-feu réseau traditionnel qui fonctionne au niveau IP et port, un WAF comprend la structure du trafic web. Il peut lire les URL, les en-têtes, les corps POST, les cookies et les chaînes de requête pour identifier les attaques qui ciblent spécifiquement les applications web comme WordPress.
Comment fonctionne un WAF
Lorsqu'un visiteur (ou un attaquant) envoie une requête à votre site WordPress, le WAF l'intercepte avant qu'elle n'atteigne votre serveur web. Le WAF compare la requête à un ensemble de règles, souvent appelé jeu de règles ou politique. Ces règles définissent des motifs qui indiquent une intention malveillante. Par exemple, une règle peut rechercher de la syntaxe SQL dans les champs de formulaire, des balises script dans les paramètres d'URL, ou des signatures d'exploits connues ciblant des vulnérabilités spécifiques d'extensions. Si la requête correspond à une règle, le WAF peut la bloquer entièrement, défier le visiteur avec un CAPTCHA, journaliser la tentative pour examen, ou rediriger la requête. Le trafic légitime passe sans être affecté.
WAF vs pare-feu traditionnel
Un pare-feu traditionnel opère au niveau de la couche réseau (couches 3 et 4 du modèle OSI). Il contrôle l'accès en fonction des adresses IP, des ports et des protocoles. Il peut bloquer le trafic provenant de certains pays ou restreindre les ports ouverts, mais il ne peut pas inspecter le contenu des requêtes HTTP. Un WAF opère au niveau de la couche applicative (couche 7). Il comprend HTTP et peut distinguer une soumission de formulaire normale d'une tentative d'injection SQL, même si les deux proviennent de la même adresse IP sur le même port. Pour une bonne sécurité WordPress, vous voulez idéalement les deux : un pare-feu réseau pour bloquer le trafic indésirable au niveau de l'infrastructure et un WAF pour vous protéger contre les attaques au niveau applicatif.
Types de WAF
Les WAF se présentent sous trois principaux modèles de déploiement, chacun avec des compromis distincts :
- WAF basé sur le cloud : Le trafic est routé via un service tiers avant d'atteindre votre serveur. Vous modifiez généralement vos enregistrements DNS pour pointer vers le fournisseur WAF, qui transmet ensuite le trafic propre vers votre serveur d'origine. Les WAF cloud sont les plus simples à mettre en place car ils ne nécessitent aucune modification côté serveur. Ils absorbent également les attaques DDoS avant que le trafic n'atteigne votre infrastructure. L'inconvénient est qu'ils ajoutent une légère latence et que vous dépendez d'un tiers pour la disponibilité.
- WAF au niveau du serveur : Installé directement sur votre serveur web en tant que module ou service. ModSecurity (pour Apache et Nginx) en est l'exemple le plus connu. Les WAF au niveau du serveur ont la plus faible latence car ils inspectent le trafic localement, mais nécessitent un accès au serveur et des connaissances techniques pour la configuration. Ils consomment également des ressources serveur pour chaque requête inspectée.
- WAF au niveau de l'extension : Une extension WordPress qui exécute du code PHP à chaque requête pour analyser les motifs malveillants. Les WAF en extension sont faciles à installer (comme n'importe quelle extension WordPress), mais ils s'exécutent après que WordPress a déjà commencé à se charger, ce qui signifie qu'ils ne peuvent pas bloquer les attaques au niveau du serveur. Ils ajoutent également une charge de traitement à chaque requête de page car la logique du WAF s'exécute dans PHP.
Solutions WAF basées sur le cloud pour WordPress
Plusieurs fournisseurs de WAF cloud sont populaires dans l'écosystème WordPress :
- Cloudflare WAF : Propose une offre gratuite avec une protection de base et des plans payants avec des jeux de règles managés spécifiquement conçus pour WordPress. Cloudflare fournit également un CDN, une protection DDoS et une gestion des bots. Les règles WAF sont mises à jour régulièrement pour couvrir les vulnérabilités nouvellement découvertes.
- Sucuri Firewall : Un WAF basé sur le cloud conçu spécifiquement pour la sécurité des sites web. Sucuri route tout le trafic à travers son réseau, bloquant les attaques et servant du contenu en cache. Ils proposent également des services d'analyse et de suppression de logiciels malveillants. Leurs règles spécifiques à WordPress couvrent les vulnérabilités connues des extensions et des thèmes.
- Astra Security : Un WAF cloud avec une extension WordPress pour une mise en place facile. Il inclut une protection contre les bots, une protection des connexions et un tableau de bord en temps réel affichant les menaces bloquées.
Solutions WAF basées sur des extensions pour WordPress
Si vous préférez une approche basée sur une extension, voici les options les plus établies :
- Wordfence : L'extension de sécurité WordPress la plus populaire, avec plus de 4 millions d'installations actives. Elle inclut un WAF qui s'exécute au niveau PHP, un scanner de logiciels malveillants, des fonctionnalités de sécurité de connexion et une intelligence des menaces en temps réel. La version premium reçoit les mises à jour des règles de pare-feu en temps réel ; la version gratuite les reçoit après un délai de 30 jours.
- NinjaFirewall : Un WAF léger qui s'accroche à WordPress très tôt dans le processus de chargement, avant que la plupart des extensions et des thèmes ne se chargent. Cela lui confère de meilleures performances que les WAF en extension typiques car il peut bloquer les requêtes malveillantes avant que WordPress ne s'initialise complètement. Il prend en charge des fonctionnalités avancées comme la surveillance de l'intégrité des fichiers et les notifications d'événements.
- All In One WP Security : Une extension de sécurité gratuite avec un pare-feu intégré qui offre une protection de base via des règles .htaccess et un filtrage basé sur PHP. Elle est moins sophistiquée que Wordfence ou NinjaFirewall mais offre une interface plus simple pour les débutants.
Contre quoi les WAF protègent
Un WAF correctement configuré défend contre une large gamme de types d'attaques :
- Injection SQL : Les attaquants injectent des requêtes SQL malveillantes via des champs de formulaire, des paramètres d'URL ou des cookies pour lire, modifier ou supprimer le contenu de la base de données.
- Cross-site scripting (XSS) : Les attaquants injectent du JavaScript dans des pages que d'autres utilisateurs consultent, volant les cookies de session ou redirigeant les visiteurs vers des sites malveillants.
- Attaques par force brute : Outils automatisés qui essaient des milliers de combinaisons d'identifiant et de mot de passe contre votre page de connexion. Les WAF peuvent limiter le débit des tentatives de connexion ou bloquer les IP après des échecs répétés.
- Attaques de bots : Bots automatisés qui scrappent du contenu, spamment les formulaires de commentaires ou recherchent des vulnérabilités. Les WAF peuvent identifier et bloquer le trafic de bots en fonction des motifs comportementaux et des signatures de bots connues.
- Attaques d'inclusion de fichiers : Exploitation d'extensions vulnérables pour inclure des fichiers malveillants depuis des serveurs distants (Remote File Inclusion) ou depuis le serveur lui-même (Local File Inclusion).
- Exploits zero-day : Lorsqu'une nouvelle vulnérabilité est découverte, les fournisseurs de WAF peuvent pousser des correctifs virtuels en quelques heures, protégeant votre site avant que le développeur de l'extension ou du thème ne publie un correctif officiel.
Faux positifs et réglage du WAF
L'un des plus grands défis avec n'importe quel WAF est celui des faux positifs, où des requêtes légitimes sont bloquées parce qu'elles correspondent à une règle de sécurité. Cela arrive plus souvent qu'on pourrait le penser. Par exemple, un article de blog contenant des exemples de code SQL pourrait déclencher une règle d'injection SQL. Un administrateur téléversant un fichier avec des caractères inhabituels dans le nom pourrait être bloqué. Un formulaire personnalisé avec une entrée HTML pourrait ressembler à une tentative XSS pour le WAF. Régler votre WAF signifie examiner régulièrement les requêtes bloquées, créer des exceptions (règles d'autorisation) pour les motifs de trafic légitimes et ajuster les niveaux de sensibilité. La plupart des WAF offrent un « mode apprentissage » ou « mode surveillance » où ils journalisent les requêtes suspectes sans les bloquer, vous permettant d'identifier les faux positifs avant d'activer l'application.
WAF vs durcissement de la sécurité
Un WAF ne remplace pas les bonnes pratiques de sécurité. C'est une couche de défense supplémentaire. Vous devez toujours maintenir WordPress, les extensions et les thèmes à jour. Vous avez toujours besoin de mots de passe forts et d'une authentification à deux facteurs. Vous avez toujours besoin de permissions de fichiers correctes et d'un environnement d'hébergement sécurisé. Considérez un WAF comme un videur à la porte. Il arrête les fauteurs de troubles évidents, mais il ne corrige pas les problèmes structurels à l'intérieur du bâtiment. La sécurité WordPress la plus efficace combine un WAF avec des mises à jour régulières, un durcissement de la sécurité, une analyse des logiciels malveillants et des sauvegardes appropriées.
Règles managées vs règles personnalisées
La plupart des WAF sont livrés avec des jeux de règles managés maintenus par l'équipe de sécurité du fournisseur. Ces règles sont régulièrement mises à jour pour couvrir les nouvelles vulnérabilités et techniques d'attaque. Les règles managées fonctionnent bien pour la majorité des sites WordPress car elles couvrent les vecteurs d'attaque courants sans nécessiter de configuration manuelle. Les règles personnalisées vous permettent de créer vos propres conditions de blocage en fonction de vos besoins spécifiques. Par exemple, vous pourriez créer une règle qui bloque toutes les requêtes vers /xmlrpc.php en provenance de l'extérieur de votre pays, ou une règle qui limite le débit des requêtes API depuis une plage IP spécifique. Les règles personnalisées sont puissantes mais nécessitent une bonne compréhension de vos motifs de trafic pour éviter de bloquer les visiteurs légitimes.
Ce que InspectWP vérifie
InspectWP peut détecter plusieurs solutions WAF via les en-têtes de réponse et les enregistrements DNS. Les WAF basés sur le cloud comme Cloudflare et Sucuri modifient les enregistrements DNS et ajoutent des en-têtes caractéristiques que InspectWP identifie. Cela vous aide à confirmer que votre WAF est correctement configuré et protège activement votre site WordPress.