Web Application Firewall 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 ameaças antes que elas alcancem a sua infraestrutura e sem impactar na performance de suas aplicações.

  1. Como funciona
  2. Crie uma rule set do WAF para monitorar o tráfego de suas aplicações
  3. Associe a rule set criada com as aplicações que deseja monitorar
  4. Utilize o Analytics ou o Rawlogs para acompanhar as ameaças detectadas
  5. Aprove a whitelist desejada
  6. Ative o bloqueio de ameaças na rule set

1. Como funciona

O Azion WAF é baseado na metodologia de scoring de requisições. Cada requisição http/https é comparada com um conjunto extremamente restritivo de regras de bloqueio e recebe uma pontuação para cada família de ameaças.

De acordo com a pontuação recebida pela requisição, a mesma poderá ser liberada ou bloqueada diretamente nos Edge Servers da Azion, antes que a ameaça atinja sua origem. 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 mal funcionamento de sua aplicação, você deve executar uma etapa de aprendizagem, na qual o WAF identifica os comportamentos legítimos de sua aplicação, inserindo-os em uma whitelist.

Modo de Operação

Para obter o máximo de desempenho e precisão do produto é necessária a etapa de aprendizagem. Você conta com dois modos de operação para lhe apoiar nessa etapa:

  • 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.

Threat Type Description
SQL Injections Previne tentativas de ataque através de injeção de código SQL na aplicação.
Remote File Inclusions (RFI) Previne tentativas de incluir arquivos, usualmente através 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 através 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 Previne a tentativa de envio de arquivos para o servidor web.
Evading Tricks Previne contra algunas truques de codificação utilizados para tentar escapar dos mecanismos de proteção.
Unwanted Access Previne 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.

Sensibilidade

A sensibilidade define o rigor com o qual o WAF irá considerar uma requisição como uma ameaça:

  • Low: é nível de sensibilidade mais baixo, a requisição será considerada uma ameaça se apresentar indícios muito fortes e receber uma pontuação alta. 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 uma pontuação intermediária.
  • High: é o maior nível de proteção para sua aplicação. Ao menor indício de uma ameaça, a requisição poderá ser bloqueada, mesmo quando apresentar uma pontuação relativamente baixa. 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.

Regras

O conjunto de regras que incrementam o score de uma requisição. Quanto maior o score, maior a probabildade da 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): 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.
Score A pontuação que será incrementada em caso de match.

Whitelist

É 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 possui match zones, conforme explicado na seção Regras. A whitelist 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 whitelist foi gerada.
Rule Description Uma descrição textual do que faz a regra de bloqueio para a qual a whitelist foi gerada.
Path Quando especificado, restringe a aplicação da whitelist somente ao path definido. O path delimita o escopo de atuação da whitelist.
Whitelist Match Zone É a whitelist propriamente dita. Define a parte ou campo da requisição para a 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 a 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 whitelist 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 whitelist 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 whitelist 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 whitelist.

2. Crie uma rule set do WAF para monitorar o tráfego de suas aplicações

Rule set é o conjunto de regras do WAF que habilita a proteção contra os mais variados tipos de ataque. Nela estão definidas as proteções que você deseja ativar, o nível de sensibilidade da detecção e a whitelist.

Para criar uma rule set:

  1. Acesse o Real-Time Manager e entre no menu Cloud Security > WAF, ou acesse o atalho “Manage WAF” na tela inicial.
  2. Adicione uma nova rule set clicando no botão Add.
  3. Na aba Main Settings, ative as proteções e o nível de sensibilidade desejados.
  4. Salve sua rule set com um nome sugestivo. Você vai precisar dele para realizar posteriormente a associação da rule set com o path de sua aplicação.

No primeiro momento, recomendamos que você ative a regra em Counting Mode, para que possa acompanhar o número de ameaças detectadas e realizar a etapa de aprendizagem, antes de efetivamente bloquear as requisições. Dessa forma você poderá também regular a sensibilidade da detecção, de acordo com a sua aplicação.

Durante o Counting Mode é recomendado que você deixe todas as proteções ativadas para que possa monitorar as ameaças detectadas pelo WAF.

Se forem detectados falsos positivos, algumas regras poderão ser incluídas na whitelist pelo Suporte da Azion, sem a necessidade de desativar a proteção completa para uma família de ameaças. Entre em contato se desejar avaliar a necessidade de incluir regras em whitelist, antes de desabilitar a sua proteção.

Por fim, a rule set deve estar ativa para que o WAF analise as suas requisições. O checkbox Active serve para permitir que você habilite e desabilite o WAF rapidamente para todos os paths que estiverem associados a rule set.


3. Associe a rule set criada com as aplicações que deseja monitorar

Você deve associar a rule set criada aos paths de sua aplicação. Para tanto:

  1. Acesse o menu Content Delivery e edite a Configuration que você deseja proteger.
  2. Na aba Rules Engine, edite as regras referentes ao path de sua aplicação.
  3. Para associar uma rule set do WAF a um path em Rules Engine, o behavior selecionado deve ser Application Acceleration.
  4. A associação da rule set do WAF ao path é feita na seção WAF Settings, mas lembre-se que essa seção só aparece se o behavior for Application Acceleration.

A partir deste momento, as requisições realizadas para essa aplicação serão analisadas pelo WAF. Enquanto sua rule set estiver em Counting Mode, os ataques estão sendo apenas detectados, mas não serão bloqueados.


4. Utilize o Analytics ou o Rawlogs para acompanhar as ameaças detectadas

Recomenda-se que você deixe a rule set do WAF em modo Counting pelo tempo que julgar necessário para que a maior parte das funcionalidades de sua aplicação sejam cobertas. Você deve acompanhar os gráficos da aba WAF pelo Analytics ou os logs do WAF por meio do produto Rawlogs.

No Analytics, o primeiro gráfico da aba WAF (Threats vs Requests) apresenta três séries temporais:

  • Regular Requests: todas as requisições HTTP e HTTPS analisadas pelo WAF e consideradas seguras
  • Threats: o volume de ameaças detectadas pelo WAF e contabilizadas, quando em modo Counting. Essas ameaças não estão sendo bloqueadas nesse momento.
  • Threats Blocked: ameaças efetivamente bloqueadas pelo WAF. Para começar a bloquear as ameaças encontradas, a rule set tem que estar em Blocking Mode.

Se você possuir também o serviço Rawlogs, poderá solicitar a configuração dos logs para o Suporte da Azion. Através dos logs é possível acompanhar informações mais detalhadas sobre IP, data e horário de acesso, status code, família de ataque detectada e modo de atuação configurado.

Com base nessas informações, você pode ajustar a sensibilidade da rule set do WAF, como mencionado anteriormente, até que não ocorram mais falsos positivos. Ou mesmo solicitar para Azion a geração de whitelist para sua aplicação.


5. Aprove a whitelist desejada

Solicite ao Suporte da Azion a geração da proposta de whitelist, baseada na etapa de aprendizagem de sua aplicação.

A proposta de whitelist gerada pela Azion será inserida na plataforma e estará disponível para sua aprovação:

  1. Acesse o menu Cloud Security > WAF, ou acesse o atalho “Manage WAF” na tela inicial.
  2. Edite a rule set para a qual deseja avaliar a whitelist.
  3. Na aba Whitelist, habilite todas as regras que desejar aprovar.
  4. Salve sua rule set.

6. Ative o bloqueio de ameaças na rule set

Após monitorar o comportamento de sua aplicação e as ameaças detectadas após a etapa de aprendizagem e aprovação da whitelist, você deve alterar a rule set para Blocking:

  1. Acesse o menu Cloud Security > WAF
  2. Edite a rule set do WAF desejada.
  3. Altere o modo de Counting para Blocking.

A partir desse momento, sua aplicação estará protegida e as ameaças detectadas serão efetivamente bloqueadas.

O WAF só bloqueia as ameaças se estiver configurado em Blocking Mode.