Um firewall de aplicação é um tipo de firewall que controla o tráfego de, para ou por uma aplicação ou serviço.
Os firewalls de aplicação, ou firewalls de camada de aplicação, utilizam uma série de políticas configuradas para determinar se deve bloquear ou permitir comunicações de ou para uma aplicação.
Os firewalls tradicionais controlam o fluxo de dados de e para a CPU, examinando cada pacote conforme ele passa. Um firewall de aplicação vai mais além ao controlar a execução de arquivos ou código por aplicações específicas. Dessa forma, mesmo se um invasor conseguir entrar em uma rede ou servidor, ele não poderá executar códigos maliciosos.
Os firewalls de aplicação podem ser ativos ou passivos.
Ativo — Os firewalls de aplicação ativos inspecionam ativamente todas as solicitações de entrada, incluindo a mensagem real sendo trocada, contra vulnerabilidades conhecidas, como injeções de SQL, adulteração de parâmetros e cookies e cross-site scripting. Apenas as solicitações consideradas “limpas” são passadas para a aplicação.
Passivo — Os firewalls de aplicação passivos agem de maneira semelhante a um sistema de detecção de intrusões (IDS), pois também inspecionam todas as solicitações de entrada em relação a vulnerabilidades conhecidas, mas não rejeitam ou negam ativamente essas solicitações se um ataque em potencial for descoberto.
Em geral, os firewalls de aplicação podem ser atualizados remotamente, o que permite evitar vulnerabilidades recém-descobertas. Eles costumam ser atualizados com mais frequência do que códigos específicos com foco em segurança incluídos nas aplicações, devido aos ciclos de desenvolvimento e teste mais longos necessários para incluir esses códigos nas aplicações.
Hoje em dia, é mais comum ver Web Application Firewalls (WAFs) para filtrar, monitorar e bloquear o tráfego HTTP/S de e para uma aplicação Web, especificamente.