Définition
Un WAF (Web Application Firewall) est une couche de sécurité qui inspecte chaque requête HTTP vers un site web et filtre ou bloque les motifs malveillants avant qu’ils n’atteignent l’application. Il se place devant l’application, en proxy inverse ou en nœud edge de CDN, et vérifie les en-têtes, les paramètres d’URL et le corps de chaque requête par rapport à des jeux de règles, interceptant généralement les classes de l’OWASP Top 10 : injection SQL, cross-site scripting, inclusion de fichiers et abus d’authentification défaillante, ainsi que les bots de credential stuffing, les scrapers et les signatures d’exploits connues. La plupart des WAF aujourd’hui sont fournis comme service cloud managé (Cloudflare, AWS WAF, Imperva, Sucuri) plutôt qu’installés sur le serveur, de sorte que les mises à jour de règles sont déployées en quelques heures après la divulgation d’une nouvelle vulnérabilité, sans aucun changement dans l’application elle-même. De nombreux CDN intègrent un WAF dans leur offre de sécurité. En contrepartie : des règles peuvent bloquer à tort du trafic légitime (faux positifs), et un WAF ne corrige pas une application non sécurisée, il ne fait que réduire la surface d’attaque qui l’atteint.
Comment cela fonctionne
Un WAF applique un ensemble de règles (gérées par le fournisseur et personnalisées) à chaque requête : bloquer les charges utiles connues comme malveillantes, limiter le débit des IP suspectes, challenger les navigateurs qui paraissent automatisés et tout journaliser pour inspection. Les WAF les plus robustes combinent jeux de règles et modèles d’apprentissage automatique entraînés sur du trafic d’attaque.
Pourquoi c'est important
Un WAF est l’amélioration la moins coûteuse et la plus sérieuse pour la posture de sécurité d’un site, défendant contre des attaques auxquelles un WordPress fraîchement installé ou une bibliothèque non corrigée est vulnérable. Il ne remplace pas un bon code, mais il offre du temps lorsqu’une vulnérabilité est découverte et absorbe le bruit de fond constant des attaques à l’échelle d’internet.