Um firewall de aplicações web é um componente de segurança que fica à frente de uma aplicação web e inspeciona o tráfego de entrada nas aplicações web para impedir que pedidos maliciosos explorem vulnerabilidades.
Na pilha de rede, um WAF opera na camada de aplicação do modelo OSI, o que lhe dá visibilidade total sobre a carga útil do pedido. Para fazer essa inspeção, o WAF termina o TLS e o SSL, permitindo-lhe examinar o que entra. Cada pedido é depois analisado à procura dos padrões definidos numa lista de regras. Essas regras ajudam a travar métodos de ataque comuns, como as injeções de SQL, a injeção de cargas de cross-site scripting (XSS), a falsificação de pedidos entre sites (CSRF), os ataques de inclusão de ficheiros e muito mais.
Manter um bom conjunto de regras de firewall é o que há de mais valioso num WAF. A qualidade das regras varia bastante de fornecedor para fornecedor e é, no fim de contas, a principal diferença de propriedade intelectual entre eles. Regra geral, um WAF aborda a deteção com um modelo de bloqueio negativo, que trata todos os pedidos como legítimos, a menos que uma regra específica seja acionada. Alguns fornecedores recorrem à aprendizagem automática para detetar abstrações de padrões já conhecidos e acionar regras com base nisso.
Apesar das suas vantagens, os firewalls de aplicações web também podem implicar contrapartidas: acrescentam latência significativa às aplicações web ou, em alguns casos, criam uma falsa sensação de segurança ao limitarem o tamanho do pacote que inspecionam. Com isso, um atacante mal-intencionado pode contornar a deteção e passar despercebido.
Tradicionalmente, um WAF não consegue monitorizar as respostas do servidor web, nem o tráfego de saída. É uma limitação que, se não for prevista, pode provocar fuga de dados sensíveis perante um pedido malicioso. Um WAF também não tem qualquer visibilidade sobre execuções do lado do cliente.
Os firewalls de aplicações web podem ser implementados de muitas formas: como equipamentos físicos, como serviços geridos alojados em plataformas de cloud pública, como serviços que correm em runtimes de edge ou, mais recentemente, integrados diretamente numa aplicação através de um SDK.
A segurança é toda uma questão de camadas. Um WAF não resolve por magia os riscos de segurança; ainda assim, pode ser uma boa camada na defesa de segurança de uma aplicação web.
Aliás, muitos referenciais de conformidade reconhecidos no setor, como o PCI DSS, recomendam ou exigem a implementação de um WAF.