Aplique um WAF rule set a um cookie específico
Rode dois WAF rule sets em um firewall e pontue as requisições que carregam um cookie escolhido contra o rule set que guarda uma exceção.
Você pode pontuar as requisições que carregam um cookie escolhido contra um rule set diferente do Web Application Firewall (WAF), a partir do Azion Console. Use essa configuração quando usuários autenticados, ou uma ferramenta de terceiros integrada, precisarem de uma política que o restante do seu tráfego não tem.
A configuração carrega três objetos:
- Um rule set primário pontua todas as requisições que o firewall recebe.
- Um rule set secundário carrega uma exceção para uma regra interna no header
Cookie. - Duas regras do Rules Engine for Firewall selecionam entre eles.
Para o modelo de pontuação por trás deles, consulte Score e modos.
Pré-requisitos
- Um firewall com o módulo WAF ativado. Consulte Defina as configurações principais de um firewall.
- Um workload vinculado a esse firewall. Consulte Vincule um firewall a um workload.
- Acesso ao Azion Console. Consulte Como acessar o Azion Console.
- O nome e o valor do cookie que a sua aplicação emite.
Crie o rule set primário
Esse rule set pontua o tráfego que não carrega o cookie. Para criá-lo:
Acesse o Azion Console > Edge Libraries > WAF Rules.
Na seção General, digite um Name. Por exemplo: storefront-primary.
Na seção Threat Type Configuration, defina a Sensitivity de cada família de ameaças.
O rule set aparece em WAF Rules. Ele ainda não pontua nada: um rule set inspeciona requisições somente depois que uma regra do Rules Engine o nomeia.
Crie o rule set secundário
Esse rule set pontua o tráfego que carrega o cookie, então dê a ele a mesma política do primário. Para criá-lo:
Ainda na página WAF Rules, comece um segundo rule set.
Na seção General, digite um Name. Por exemplo: storefront-cookie.
Na seção Threat Type Configuration, defina cada Sensitivity com o valor que você deu ao rule set primário.
Os dois rule sets carregam agora a mesma política. A exceção da próxima seção é o que os torna diferentes.
Adicione a exceção do cookie
Uma exceção impede que uma regra interna dispare em um lugar e a deixa disparando em todos os outros. O Azion Console chama uma exceção de allowed rule. Para adicionar uma ao rule set secundário:
Em WAF Rules, selecione o rule set que você criou na seção anterior.
Em Rule ID, selecione a regra interna que o seu cookie aciona. Este exemplo usa 1005, Possible SQL Injection attack: MySQL keyword (|) found in Body, Path, Query String or Cookies.
Em Description, explique por que essa regra é permitida.
Em Path, digite / para cobrir o site inteiro, ou um path mais estreito para limitar a exceção.
Em Condition, selecione Specific HTTP Header Name e digite cookie no campo Name.
Operator tem contains como padrão, que lê Name como uma string literal, e não como uma expressão regular.
A allowed rule aparece em Allowed Rules, que lista Rule ID, Description, Path, Conditions e Status.
Essa exceção relaxa uma regra interna para as requisições que o rule set secundário pontua. Todas as outras regras desse rule set continuam pontuando essas requisições.
Um cookie é fornecido pelo cliente e pode ser forjado. Quem descobrir o nome e o valor do cookie envia o mesmo header e alcança o rule set secundário. Mantenha a exceção restrita a um único Rule ID e ao Path mais estreito que a sua aplicação permitir.
Aplique o rule set primário a todas as requisições
Uma regra do Rules Engine seleciona requisições pelos seus critérios, e o comportamento Set WAF dela nomeia um rule set e um modo. Uma regra carrega no máximo um comportamento Set WAF, e é por isso que essa configuração usa duas regras.
Para criar a primeira regra:
No Azion Console, vá em Firewalls e selecione esse firewall.
Digite um nome para a regra. Por exemplo: Apply storefront-primary.
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, em seguida, selecione o rule set primário.
O firewall agora pontua todas as requisições que recebe contra o rule set primário.
Aplique o rule set secundário às requisições com o cookie
Essa regra lê o header Cookie e envia as requisições que carregam o seu cookie para o rule set secundário.
Um firewall processa as regras do Rules Engine na ordem em que estão dispostas, então posicione esta regra depois da que você criou na seção anterior. Para criá-la:
Ainda na aba Rules Engine, comece uma segunda regra.
Digite um nome para a regra. Por exemplo: Apply storefront-cookie.
Na seção Criteria, selecione a variável Header Cookie, o operador de comparação matches e partner-access=b7c1f2e4 como argumento.
Substitua partner-access=b7c1f2e4 pelo cookie que a sua aplicação emite. O operador matches lê o argumento como uma expressão regular.
Na seção Behaviors, selecione Set WAF e, em seguida, selecione o rule set secundário.
Uma requisição que carrega o cookie é pontuada contra o rule set secundário, de modo que a allowed rule não dispara no header Cookie dela, e todas as outras regras desse rule set continuam pontuando a requisição. Uma requisição sem o cookie é pontuada contra o rule set primário.