Un pare-feu d'application Web ( WAF ) est une forme spécifique de pare-feu d'application qui filtre, surveille et bloque le trafic HTTP vers et depuis un service Web . En inspectant le trafic HTTP, il peut empêcher les attaques exploitant les vulnérabilités connues d'une application Web, telles que l'injection SQL , le cross-site scripting (XSS), l'inclusion de fichiers et la configuration incorrecte du système. La plupart des grandes institutions financières utilisent des WAF pour aider à atténuer les vulnérabilités « zero-day » des applications Web, ainsi que les bugs ou faiblesses difficiles à corriger via des chaînes de signature d'attaque personnalisées.
Histoire
Les pare-feu d’applications Web dédiés sont arrivés sur le marché à la fin des années 1990, à une époque où les attaques de serveurs Web devenaient de plus en plus fréquentes.
Les premiers produits WAF, issus des technologies Kavado et Gilian, étaient disponibles, tentant de résoudre le nombre croissant d'attaques sur les applications Web à la fin des années 90. En 2002, le projet open source ModSecurity a été formé afin de rendre la technologie WAF plus accessible. Ils ont finalisé un ensemble de règles de base pour la protection des applications Web, basé sur le travail de vulnérabilité du comité technique de sécurité des applications Web d'OASIS (WAS TC). En 2003, ils ont étendu et standardisé les règles par le biais de la liste Top 10 de l' Open Web Application Security Project (OWASP), un classement annuel des vulnérabilités de sécurité Web. Cette liste deviendrait la norme de l'industrie pour la conformité de la sécurité des applications Web.
Depuis lors, le marché n’a cessé de croître et d’évoluer, en particulier en ce qui concerne la prévention de la fraude par carte de crédit . Avec le développement de la norme de sécurité des données de l’industrie des cartes de paiement (PCI DSS), une normalisation du contrôle des données des titulaires de cartes, la sécurité est devenue plus réglementée dans ce secteur. Selon le magazine CISO, le marché des WAF devrait atteindre 5,48 milliards de dollars d’ici 2022.
Description
Un pare-feu d'application Web est un type spécial de pare-feu d'application qui s'applique spécifiquement aux applications Web. Il est déployé devant les applications Web et analyse le trafic Web bidirectionnel (HTTP) - détectant et bloquant tout élément malveillant. L'OWASP fournit une définition technique large pour un WAF comme « une solution de sécurité au niveau de l'application Web qui - d'un point de vue technique - ne dépend pas de l'application elle-même ». Selon le supplément d'information PCI DSS pour l'exigence 6.6, un WAF est défini comme « un point d'application de la politique de sécurité positionné entre une application Web et le point de terminaison client. Cette fonctionnalité peut être implémentée dans un logiciel ou du matériel, exécutée dans un appareil ou dans un serveur typique exécutant un système d'exploitation commun. Il peut s'agir d'un appareil autonome ou intégré à d'autres composants réseau ». En d'autres termes, un WAF peut être un appareil virtuel ou physique qui empêche les vulnérabilités des applications Web d'être exploitées par des menaces extérieures. Ces vulnérabilités peuvent être dues au fait que l'application elle-même est de type hérité ou qu'elle a été insuffisamment codée par conception. Le WAF corrige ces lacunes de code par des configurations spéciales d'ensembles de règles, également appelées politiques.
Des vulnérabilités jusque-là inconnues peuvent être découvertes grâce à des tests de pénétration ou via un scanner de vulnérabilités. Un scanner de vulnérabilités d'applications Web , également appelé scanner de sécurité d'applications Web, est défini dans la norme SAMATE NIST 500-269 comme « un programme automatisé qui examine les applications Web à la recherche de vulnérabilités de sécurité potentielles. En plus de rechercher des vulnérabilités spécifiques aux applications Web, les outils recherchent également des erreurs de codage logiciel ». La résolution des vulnérabilités est communément appelée correction. Des corrections au code peuvent être apportées dans l'application, mais une réponse plus rapide est généralement nécessaire. Dans ces situations, l'application d'une politique personnalisée pour une vulnérabilité d'application Web unique afin de fournir une correction temporaire mais immédiate (appelée patch virtuel) peut être nécessaire.
Les WAF ne sont pas une solution de sécurité ultime, ils sont plutôt destinés à être utilisés en conjonction avec d'autres solutions de sécurité du périmètre réseau telles que les pare-feu réseau et les systèmes de prévention des intrusions pour fournir une stratégie de défense holistique.
Les WAF suivent généralement un modèle de sécurité positive, une sécurité négative ou une combinaison des deux, comme mentionné par le SANS Institute . Les WAF utilisent une combinaison de logique basée sur des règles, d'analyse et de signatures pour détecter et prévenir les attaques telles que les scripts intersites et l'injection SQL. En général, des fonctionnalités telles que l'émulation de navigateur, l'obscurcissement et la virtualisation ainsi que l'obscurcissement IP sont utilisés pour tenter de contourner les WAF. L'OWASP produit une liste des dix principales failles de sécurité des applications Web. Toutes les offres WAF commerciales couvrent au minimum ces dix failles. Il existe également des options non commerciales. Comme mentionné précédemment, le moteur WAF open source bien connu appelé ModSecurity est l'une de ces options. Un moteur WAF seul ne suffit pas à fournir une protection adéquate, c'est pourquoi l'OWASP et les Spiderlabs de Trustwave aident à organiser et à maintenir un ensemble de règles de base via GitHub à utiliser avec le moteur WAF ModSecurity.
Options de déploiement
Bien que les noms des modes de fonctionnement puissent différer, les WAF sont essentiellement déployés en ligne de trois manières différentes. Selon NSS Labs, les options de déploiement sont le pont transparent , le proxy inverse transparent et le proxy inverse . « Transparent » fait référence au fait que le trafic HTTP est envoyé directement à l'application Web, le WAF est donc transparent entre le client et le serveur. Cela contraste avec le proxy inverse, où le WAF agit comme un proxy et le trafic du client est envoyé directement au WAF. Le WAF envoie ensuite séparément le trafic filtré aux applications Web. Cela peut offrir des avantages supplémentaires tels que le masquage IP, mais peut introduire des inconvénients tels que des latences de performances.