Primeiros passos com WAF
Crie um rule set, aplique-o a um firewall com um behavior Set WAF e confirme que uma requisição com forma de injection é recusada.
Este guia orienta você a pontuar a sua primeira requisição contra o Web Application Firewall (WAF).
- Crie um rule set que carrega oito famílias de ameaças com sensibilidade
medium. - Aplique esse rule set a um firewall com um behavior
Set WAFem modo blocking. - Envie uma requisição com forma de injection e leia a recusa.
Quatro objetos colocam uma requisição sob inspeção, e cada um se liga ao seguinte:
- O rule set guarda as famílias de ameaças e a sensibilidade escolhida para cada uma.
- O firewall carrega o módulo WAF, e o workload que atende a sua aplicação está vinculado a esse firewall.
- A regra do Rules Engine nesse firewall carrega um behavior
Set WAF, que nomeia o rule set e o modo. - A requisição é o que o WAF então pontua contra o rule set.
Um rule set não inspeciona nada por conta própria. Enquanto uma regra do Rules Engine não o nomear, nenhuma requisição é pontuada.
Selecione a interface que você vai usar. Os pré-requisitos e todas as etapas abaixo seguem essa escolha.
Pré-requisitos
- Uma conta Azion. Para criar uma, consulte Como criar uma conta na Azion.
- Um firewall com o módulo WAF habilitado. O WAF é o único módulo que um firewall não habilita por conta própria. Consulte Defina as configurações principais de um firewall.
- Um workload vinculado a esse firewall, atendendo uma aplicação. Consulte Vincule um firewall a um workload.
- Acesso ao Azion Console. Para entrar, consulte Como acessar o Azion Console.
Crie o WAF rule set
O rule set guarda o que detectar. Ele carrega oito famílias de ameaças, e cada família tem um nível de sensibilidade que fixa o score em que ela bloqueia. Toda família começa em medium, que é o nível que este guia usa.
Para criar o rule set no Azion Console:
Acesse o Azion Console > Edge Libraries > WAF Rules.
Na seção General, informe um Name. Por exemplo: storefront-waf.
A seção Threat Type Configuration lista oito famílias de ameaças. Cada uma abre em Sensitivity Medium.
O rule set aparece em WAF Rules, que lista o seu Threat Type Configuration, Status, Last Editor e Last Modified.
Aplique o rule set com uma regra do Rules Engine
Uma regra do Rules Engine for Firewall seleciona requisições pelos seus próprios critérios. O seu behavior Set WAF então nomeia um rule set e um modo. A regra abaixo aplica o seu rule set a todas as requisições que o firewall recebe.
O modo é obrigatório, e ele pertence ao behavior, não ao rule set. Blocking recusa uma requisição cujo score alcança um limiar. Logging registra essa mesma requisição e a entrega. Este guia usa Blocking.
Para aplicar o rule set no Azion Console:
Ainda no Azion Console, vá para Firewalls e selecione esse firewall.
Informe um nome para a regra. Por exemplo: Apply storefront-waf.
Na seção Criteria, selecione a variável Request Uri, o operador de comparação starts with e / como argumento.
Na seção Behaviors, selecione Set WAF e então selecione o rule set que você criou.
O firewall agora pontua contra o rule set todas as requisições que recebe. Uma regra carrega no máximo um behavior Set WAF.
Verifique que o WAF bloqueia uma requisição
A verificação é a mesma qualquer que seja a interface que construiu a regra. O seu workload responde em um domínio no formato <id>.map.azionedge.net.
Um novo vínculo leva tempo para alcançar a infraestrutura distribuída da Azion. Espere perto de seis minutos até a regra entrar em vigor. O domínio então responde de forma inconsistente por vários minutos, enquanto a alteração chega em diferentes lugares. Uma requisição que ainda retorna a resposta anterior não quebrou nada: espere e envie-a de novo.
Envie primeiro uma requisição limpa:
A requisição não é pontuada como ameaça e alcança a aplicação, que a responde:
A sua própria aplicação decide esse status. O que importa é que a requisição não é recusada.
Agora envie uma requisição com forma de injection, carregando 1' OR '1'='1 na query string:
O WAF a recusa:
O body é a página de erro padrão da Azion, encabeçada por Bad Request. Nada na resposta nomeia o WAF, a regra que correspondeu ou o score. Anote o x-azion-request-id: esse valor encontra a requisição no Real-Time Events.
Essa requisição disparou as regras internas 1009 e 1013, ambas no argumento q. Ela pontuou sob as famílias SQL injection e cross-site scripting. O seu rule set agora está pontuando tráfego.