Web Application Firewall
Web Application Firewall (WAF) é um módulo de Edge Firewall desenvolvido para proteger edge applications contra ameaças do tipo SQL Injections, Remote File Inclusion (RFI), Cross-Site Scripting (XSS) e outras vulnerabilidades da web. O WAF analisa requisições HTTP e HTTPS, detecta e bloqueia atividades maliciosas, antes que elas cheguem à sua infraestrutura, origem ou servidor.
O WAF opera na sétima camada do modelo OSI, a camada da aplicação, onde ocorre o relacionamento entre as aplicações web, seus respectivos serviços de rede e dados de usuários. Funciona também como uma barreira para filtrar e monitorar o tráfego entre sua aplicação e as requisições da internet.
O Web Application Firewall se baseia em uma metodologia de pontuação por requisição. Cada requisição HTTP/HTTPS é comparada a um conjunto rigoroso e detalhado de padrões de aplicações e recebe uma pontuação associada a determinada família de ameaças. De acordo com a pontuação recebida pela requisição, ela pode ser liberada ou bloqueada diretamente nos edge nodes da Azion, antes que a ameaça atinja sua origem ou cause qualquer tipo de dano. O nível de sensibilidade para cada família de ameaças pode ser customizado a qualquer momento.
Para evitar o bloqueio de solicitações legais e mau funcionamento do seu aplicativo, você deve realizar uma etapa de aprendizado (learning step). Nesta etapa, o WAF identifica os comportamentos legítimos de seu aplicativo, adicionando-os a uma allowlist. Se tráfego interno, testes e falsos positivos estiverem sendo bloqueados pelo WAF, você também pode ajustar esse comportamento na aba Tuning, disponível em uma configuração de WAF criada.
Implementação
Seção intitulada ImplementaçãoEscopo | Fonte |
---|---|
WAF | Como verificar o modo do seu WAF |
WAF | Como encontrar o score de requisições bloqueadas pelo WAF |
Pré-requisitos
Seção intitulada Pré-requisitosPara configurar um WAF Rule Set, que é como uma configuração de WAF é chamada, você precisa ter uma configuração de Edge Firewall com o módulo Web Application Firewall ativado.
Saiba mais sobre os módulos do Edge Firewall e o Mecanismo de Regras para o Edge Firewall.
WAF Main Settings
Seção intitulada WAF Main SettingsA tabela Threat Type Configuration está disponível na aba Main Settings. Aqui, as ameaças são categorizadas em famílias, conforme o objetivo do ataque.
Família de ameaça | Descrição |
---|---|
SQL Injections Sensitivity | Detecta tentativas de ataque do tipo injeção de código SQL, por meio dos dados do cliente para a aplicação. |
Remote File Inclusions (RFI) | Detecta tentativas de incluir arquivos, normalmente por meio de scripts no servidor web. |
Directory Traversal | Previne a exploração de vulnerabilidade referente à sanitização insuficiente de campos de nomes de arquivo fornecidos pelos usuários, de modo que caracteres representando atalhos para o diretório pai sejam passados por meio da API de arquivos. |
Cross-Site Scripting (XSS) | Previne a injeção de scripts client-side em páginas vistas por seus visitantes. |
File Upload | Detecta a tentativa de envio de arquivos para o servidor web. |
Evading Tricks | Protege contra alguns truques de codificação utilizados para tentar escapar dos mecanismos de proteção. |
Unwanted Access | Detecta as tentativas de acesso a páginas administrativas ou vulneráveis, bots e ferramentas de scanning de segurança. |
Identified Attacks | Previne vários tipos de ataques comuns e vulnerabilidades conhecidas que certamente deverão ser bloqueados. |
Você também pode ativar ou desativar a proteção para cada família de ameaças individualmente através do switch Active, na terceira coluna.
Níveis de sensibilidade e seus scores equivalentes
Seção intitulada Níveis de sensibilidade e seus scores equivalentesA sensibilidade define o rigor com o qual o WAF irá considerar uma requisição como uma ameaça. Uma requisição será bloqueada caso ela obtenha um score do WAF maior ou igual ao limiar do nível de sensibilidade configurado. Você pode definir um nível de sensibilidade para cada família de ameaças.
Sensibilidade | Descrição e limiar do score |
---|---|
Lowest | A requisição será considerada uma ameaça se apresentar indícios muito fortes e receber um score do WAF maior ou igual a 40. Essa sensibilidade tem um menor nível de proteção para suas aplicações, mas também evitará o bloqueio de requisições com menor chance de representar ameaças (falsos positivos). |
Low | A requisição será considerada uma ameaça se apresentar indícios muito fortes e receber um score do WAF maior ou igual a 24. Essa sensibilidade tem um menor nível de proteção para suas aplicações, mas também evitará o bloqueio de requisições com menor chance de representar ameaças (falsos positivos). |
Medium | A requisição será considerada uma ameaça se apresentar indícios suficientes e receber um score do WAF maior ou igual a 16. |
High | Ao menor indício de uma ameaça, a requisição poderá ser bloqueada, mesmo quando apresentar um score do WAF maior ou igual a 8. Esse nível de sensibilidade pode apresentar mais falsos positivos se a etapa de aprendizagem não tiver cobertura suficiente sobre a variabilidade de cenários e usos de sua aplicação. |
Highest | Ao mínimo indício de uma ameaça, a requisição poderá ser bloqueada, mesmo quando apresentar um score maior ou igual a 4. Esse nível de sensibilidade pode apresentar muitos falsos positivos se a etapa de aprendizagem não tiver cobertura suficiente sobre a variabilidade de cenários e usos de sua aplicação. |
Cada nível de sensibilidade tolera um número definido de indícios de ameaças, o score do WAF representa essa quantidade de indícios de ameaças. Por isso, quanto mais flexível é o nível de sensibilidade, maior é o score do WAF que ela aceita. Já as sensibilidades mais rígidas, aceitam apenas requisições que somaram poucos indícios de ameaças.
WAF Tuning
Seção intitulada WAF TuningWAF Tuning é uma ferramenta analítica, que mostra os IPs bloqueados por possível tentativa de ataque. Na aba Tuning, é onde você pode flexibilizar o funcionamento do WAF. Os IPs bloqueados são exibidos de forma agrupada na tabela Filter Possible Attacks e é possível filtrar por Domínio, Data, Network Lists, IP e país.
Nos filtros abaixo de Filter Possible Attacks:
- Informe o domínio (obrigatório), a data, quais Network Lists prefere utilizar, quais IPs está investigando e o país de origem da requisição.
- Clique no botão Apply filter.
Para ver os IPs bloqueados pelo WAF é necessário informar pelo menos o domínio (ou os domínios) da sua aplicação. Os outros campos são opcionais, mas permitem uma seleção mais detalhada.
Ao clicar no botão Apply filter, uma lista de Possible Attacks será exibida. Essa lista conta com os campos Rule ID, Description, Hits, IPs, Countries, Top 10 IPs Address e Top 10 Countries.
Para mais informações sobre esses possíveis ataques, consulte a documentação de Custom Allowed Rules do WAF.
Allowed Rules
Seção intitulada Allowed RulesEssa aba permite a criação de Match Zones para Allowed Rules.
Allowed Rules são compostas pelos seguintes campos:
Campo | Descrição |
---|---|
Rule ID | ID numérico exclusivo da regra WAF. |
Rule Description | Descrição automática do que a regra é/faz. |
Reason | Campo de descrição textual alternativa. |
URI | Uniform Resource Identifier (URI) é o caminho (path) após o domínio na URL. |
Path | Delimita o escopo de atuação da regra. Se especificado, restringe a aplicação da Match Zone somente ao path definido. |
Match Zone | Partes ou campos da requisição que serão comparados com o match pattern . Pode ser Path , Query String , Request Header , Request Body , File Name or Raw Body . |
Active | Switch de ativação da Allowed Rule. |
Saiba mais sobre cada opção de Match Zone na tabela de opções de Match Zone abaixo.
Opções de Match Zone
Seção intitulada Opções de Match ZoneCampo | Descrição |
---|---|
Path | Match pattern será comparado com o caminho (path) da requisição. |
Query String | Match pattern será comparado à string de consulta (query string), também chamada de GET arguments. |
Request Header | Match pattern será comparado aos headers HTTP da requisição. |
Request Body | Match pattern será comparado ao body de um POST, também chamado de POST arguments. |
File Name (Multipart Body) | Match pattern será comparado com o nome dos arquivos em multipart POSTs. |
Raw Body | Match pattern será comparado ao body não interpretado (unparsed body) de uma requisição. |
Os campos
Last Editor
eLast Modified
estão disponíveis apenas pela API.