Web Application Firewall
O Web Application Firewall (WAF) protege as suas aplicações contra ameaças como SQL Injections, Remote File Inclusion (RFI), Cross-Site Scripting (XSS) e muito mais. O WAF analisa as requisições HTTP e HTTPS, detecta e bloqueia atividades maliciosas antes que elas alcancem a sua infraestrutura, sem impactar na performance de suas aplicações.
É uma barreira que usa um conjunto de regras para filtrar e monitorar o tráfego entre a sua aplicação e a internet. Atua na camada 7 conhecida como application layer - camada da aplicação - onde as aplicações acessam os serviços de rede.
1. Como funciona
O Web Application Firewall é um módulo do Azion Edge Firewall baseado na metodologia de scoring de requisições. Cada requisição http/https é comparada com um conjunto bem rigoroso e detalhado de padrões de aplicação e recebe uma pontuação - score - que é associada a uma determinada família de ameaças.
De acordo com o score recebido pela requisição, ela poderá ser liberada ou bloqueada diretamente nos Edge Nodes da Azion, antes que a ameaça atinja sua origem ou cause qualquer tipo de dano. Você define o nível desejado de sensibilidade para o bloqueio de cada família de ameaças.
Para evitar o bloqueio de requisições lícitas e o mau funcionamento de sua aplicação, você deve executar uma etapa de aprendizagem na qual o WAF Rule Set identifica os comportamentos legítimos de sua aplicação, inserindo-os em uma allowlist - lista de permissões.
Você ainda pode monitorar o comportamento e a efetividade de suas configurações de Web Application Firewall. Por meio de nossas ferramentas Real-Time Events e Data Streaming, a Azion disponibiliza dashboards e relatórios para consultas de logs de eventos online e em tempo real. Além disso, você pode importar os registros de logs da Azion e manipulá-los dentro de suas próprias ferramentas de análise.
Para utilizar os recursos de WAF Rule Sets é necessário habilitar o módulo Web Application Firewall no Edge Firewall Rule Set.
Modo de Operação
Para obter o máximo de desempenho e precisão do produto, é necessária a etapa de aprendizagem. Veja os dois modos de operação para apoiá-lo nessa etapa:
Modo de operação | Descrição |
---|---|
Counting Mode | É utilizado para especificar que o WAF não deve bloquear nenhuma requisição. O tráfego de suas aplicações será analisado, e as ameaças encontradas serão apenas contabilizadas. Utilize esse modo de operação durante a primeira etapa de aprendizagem. |
Blocking Mode | É utilizado para analisar e bloquear as ameaças detectadas, protegendo as suas aplicações dos usuários maliciosos. Você pode executar a etapa de aprendizagem sempre que julgar necessário, mesmo em Blocking Mode. |
Famílias de Ameaças
As ameaças são categorizadas em famílias de acordo com o objetivo do ataque. Você pode ativar ou desativar a proteção para cada família de ameaças individualmente de acordo com as proteções requeridas pelo tipo de sua aplicação e funcionalidades que ela apresente.
Tipos de Ameaça | Descrição |
---|---|
SQL Injections Sensitivity | Detecta tentativas de ataque por meio de injeção de código SQL por meios dos dados do cliente para a aplicação. |
Remote File Inclusions (RFI) | Detecta tentativas de incluir arquivos, usualmente por meio de scripts no servidor web. |
Directory Traversal | Previne a exploração de vulnerabilidade referente a 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 | Previne 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. |
Sensitivity (Sensibilidade)
A sensibilidade define o rigor com o qual o WAF irá considerar uma requisição como uma ameaça, veja os detalhes de cada nível a seguir:
Lowest
É o nível de sensibilidade mais baixo. A requisição será considerada uma ameaça se apresentar indícios muito fortes e receber um score alto. 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
É o nível de sensibilidade baixo. A requisição será considerada uma ameaça se apresentar indícios muito fortes e receber um score alto. 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
É o nível de sensibilidade recomendado pela Azion. A requisição será considerada como ameaça se apresentar indícios suficientes e receber um score intermediário.
High
É o nível alto de proteção para sua aplicação. Ao menor indício de uma ameaça, a requisição poderá ser bloqueada, mesmo quando apresentar um score relativamente baixo. 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
É o maior nível de proteção para sua aplicação. Ao mínimo indício de uma ameaça, a requisição poderá ser bloqueada, mesmo quando apresentar um score muito baixo. 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.
Regras
O conjunto de regras que incrementam o score de uma requisição. Quanto maior o score, maior a probabilidade de a requisição ser considerada um ataque pelo WAF.
A Azion trabalha com um conjunto extremamente restritivo de regras para assegurar a segurança de sua aplicação. Cada regra é composta pelos campos que seguem.
Campo | Descrição |
---|---|
Rule Id | Id numérico único de cada regra do WAF. |
Rule Description | Uma descrição textual do que a regra faz. |
Match Pattern | Condição de comparação, string ou regex, que será buscada na requisição. |
Path | Quando especificado, restringe a aplicação da Match Zone somente ao path definido. O path delimita o escopo de atuação da regra. |
Match Zones | Partes ou campos da requisição que serão comparados com o Match Pattern. Pode ser: Path: o match pattern será comparado com o path da requisição. Query String: o match pattern será comparado com a query string, também chamada de GET arguments. Request Header: o match pattern será comparado com os cabeçalhos HTTP da requisição. Request Body: o match pattern será comparado com o body de um POST, também chamado de POST arguments. File Name (Multipart Body): o match pattern será comparado com o nome de arquivos em multipart POSTs. Raw Body: o match pattern será comparado com o body não interpretado de uma requisição, também chamado de unparsed body. |
Attack Family | A(s) família(s) de ataques para as quais a regra incrementa a pontuação. |
Allowlist
É a listagem de comportamentos legítimos de sua aplicação, que não devem incrementar o score das requisições. Pode ser gerada automaticamente durante a etapa de aprendizagem ou inserida manualmente por meio de regras customizadas.
Cada regra de bloqueio tem match zones, conforme explicado na seção Regras. A allowlist - lista de permissões - tem o objetivo de desativar determinadas Match Zones de uma regra de bloqueio.
Campo | Descrição |
---|---|
Rule Id | Id numérico único da regra de bloqueio para a qual a allowlist foi gerada. |
Rule Description | Uma descrição textual do que faz a regra de bloqueio para a qual a allowlist foi gerada. |
Path | Quando especificado, restringe a aplicação da allowlist somente ao path definido. O path delimita o escopo de atuação da allowlist. |
Allowlist Match Zone | É a allowlist propriamente dita. Define a parte ou campo da requisição para o qual a regra de bloqueio deve ser desativada. Path: a rule id não será aplicada ao path da requisição. Query String: a rule id não será aplicada à query string, também chamada de GET arguments. Pode ser restrito tanto ao nome quanto ao valor dos argumentos. É possível delimitar o escopo da allowlist a um único GET argument utilizando Conditional Query String. Request Header: a rule id não será aplicada aos cabeçalhos HTTP da requisição. Pode ser restrito tanto ao nome quanto ao valor dos cabeçalhos. É possível delimitar o escopo da allowlist a um único cabeçalho HTTP utilizando Conditional Request Header. Request Body: a rule id não será aplicada ao body de um POST, também chamado de POST arguments. Pode ser restrito tanto ao nome quanto ao valor dos argumentos. É possível delimitar o escopo da allowlist a um único POST argument utilizando Conditional Request Body. File Name (Multipart Body): a rule id não será aplicada ao nome de arquivo em um multipart POST. Raw Body: a rule id não será aplicada ao body não interpretado de uma requisição, também chamado de unparsed body. |
Status | O status de ativação da regra na allowlist. |
2. Documentação de Suporte
Não encontrou o que procurava? Abra um ticket.