Un pare-feu applicatif web est un composant de sécurité placé devant une application web, qui inspecte le trafic entrant vers les applications web afin d’empêcher les requêtes malveillantes d’exploiter des vulnérabilités.
Dans la pile réseau, un WAF opère au niveau de la couche application du modèle OSI, ce qui lui donne une visibilité totale sur la charge utile de la requête. Pour mener cette inspection, il procède à la terminaison TLS et SSL, afin de pouvoir examiner ce qui arrive. Chaque requête est ensuite analysée à la recherche des motifs définis dans une liste de règles. Ces règles permettent de contrer des méthodes d’attaque courantes comme les injections SQL, l’injection de charges de cross-site scripting (XSS), la falsification de requête intersites (CSRF), les attaques par inclusion de fichiers, et bien d’autres.
Entretenir un solide jeu de règles est ce qu’un WAF a de plus précieux. La qualité des règles varie beaucoup d’un fournisseur à l’autre et constitue, au bout du compte, la principale différence de propriété intellectuelle entre eux. En général, un WAF traite la détection selon un modèle de blocage négatif : toute requête est considérée comme légitime tant qu’une règle précise ne se déclenche pas. Certains fournisseurs s’appuient sur l’apprentissage automatique pour repérer des variantes de motifs déjà connus et déclencher des règles en conséquence.
Malgré leurs avantages, les pare-feu applicatifs web ont aussi leurs contreparties : ils peuvent ajouter une latence non négligeable aux applications web ou, dans certains cas, donner un faux sentiment de sécurité en limitant la taille des paquets qu’ils inspectent. Cela peut alors permettre à des attaquants de contourner la détection et de s’introduire sans être repérés.
Traditionnellement, un WAF ne peut pas surveiller les réponses du serveur web, ni le trafic sortant. Cette limite, si elle n’est pas anticipée, peut entraîner une fuite de données sensibles en cas de requête malveillante. Un WAF n’a par ailleurs aucune visibilité sur ce qui s’exécute côté client.
Les pare-feu applicatifs web se déploient de bien des manières : sous forme d’appliances physiques, de services gérés hébergés sur des plateformes de cloud public, de services exécutés sur des runtimes edge ou, plus récemment, intégrés directement dans l’application via un SDK.
La sécurité, c’est une affaire de couches. Un WAF ne règle pas comme par magie les risques de sécurité, mais il peut constituer une bonne couche dans la défense d’une application web.
D’ailleurs, de nombreux cadres de conformité reconnus dans le secteur, comme PCI DSS, recommandent ou imposent la mise en place d’un WAF.