Een web application firewall is een beveiligingscomponent dat vóór een webapplicatie staat en het inkomende verkeer naar webapplicaties inspecteert om te voorkomen dat kwaadaardige verzoeken kwetsbaarheden misbruiken.
In de netwerkstack bevindt een WAF zich op de applicatielaag van het OSI-model, waardoor hij volledig zicht heeft op de payload van het verzoek. Om die inspectie te kunnen uitvoeren, termineert de WAF TLS en SSL, zodat hij kan bekijken wat er binnenkomt. Elk verzoek wordt vervolgens geanalyseerd op patronen die in een regellijst zijn vastgelegd. Met die regels valt een reeks veelvoorkomende aanvalsmethoden tegen te houden, zoals SQL-injectieaanvallen, het injecteren van cross-site scripting-payloads (XSS), cross-site request forgery (CSRF), file inclusion-aanvallen en meer.
Het onderhouden van sterke firewallregels is het waardevolste onderdeel van een WAF. De kwaliteit van die regels loopt sterk uiteen per leverancier en vormt uiteindelijk het belangrijkste verschil in intellectueel eigendom tussen leveranciers. Een WAF pakt detectie meestal aan met een negatief blokkeermodel, waarbij elk verzoek als legitiem wordt behandeld tenzij een specifieke regel wordt geactiveerd. Sommige leveranciers zetten machine learning in om abstracties van bekende patronen te herkennen en op basis daarvan regels te laten afgaan.
Ondanks hun voordelen brengen web application firewalls ook nadelen met zich mee: ze kunnen flink wat vertraging aan webapplicaties toevoegen, of in sommige gevallen een vals gevoel van veiligheid geven doordat ze de grootte van de pakketten die ze inspecteren beperken. Daardoor kunnen kwaadwillenden detectie omzeilen en ongemerkt binnenkomen.
Van oudsher kan een WAF geen webserverresponses of uitgaand verkeer monitoren. Als je daar geen rekening mee houdt, kan deze beperking bij een kwaadaardig verzoek tot het lekken van gevoelige gegevens leiden. Een WAF heeft bovendien geen enkel zicht op wat er aan de clientzijde wordt uitgevoerd.
Web application firewalls zijn op tal van manieren uit te rollen: als fysieke appliances, als managed services die op public-cloudplatforms worden gehost, als services die op edge-runtimes draaien of, sinds kort, rechtstreeks in een applicatie geïntegreerd via een SDK.
Beveiliging draait helemaal om lagen. Een WAF lost beveiligingsrisico’s niet als bij toverslag op, maar het kan wel een goede laag zijn in de beveiligingsverdediging van een webapplicatie.
Sterker nog, veel gangbare compliance-frameworks in de sector, zoals PCI DSS, raden een WAF aan of stellen die zelfs verplicht.