Configurar regras WAF pré-configuradas

Use estas instruções para configurar e ajustar as regras pré-configuradas do firewall de aplicativos da Web (WAF) do Google Cloud Armor para ajudar a proteger seu aplicativo contra ataques. Se você não conhece as regras WAF pré-configuradas, consulte a visão geral.

Configurar uma regra WAF pré-configurada

Esta seção fornece modelos de regras WAF pré-configuradas que podem ser copiadas para o console do Google Cloud e personalizadas para se adequar ao seu caso de uso. Em cada comando gcloud de exemplo, você configura uma política de segurança com o nome POLICY_NAME e a prioridade PRIORITY.

O primeiro exemplo configura uma regra com o nome RULE_NAME e um nível de sensibilidade de SENSITIVITY, que ativa todas as assinaturas com sensibilidade menor ou igual a SENSITIVITY. Para mais informações sobre a sensibilidade da regra, consulte Escolher um nível de confidencialidade.

Console

Selecione Modo avançado e use o exemplo de expressão a seguir no campo Correspondência:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY})" \
    --action deny-403

O segundo exemplo é semelhante ao primeiro, mas desativa as assinaturas de regra SIGNATURE_1 e SIGNATURE_2. Isso significa que essas duas assinaturas não são avaliadas quando a regra do WAF é avaliada:

Console

Selecione Modo avançado e use o exemplo de expressão a seguir no campo Correspondência:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY, 'opt_out_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY, 'opt_out_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})" \
    --action deny-403

O terceiro exemplo é semelhante ao segundo, mas, em vez de desativar duas assinaturas, você ativa duas assinaturas de regras. Só é possível ativar as assinaturas de regras quando o nível de confidencialidade é definido como 0:

Console

Selecione Modo avançado e use o exemplo de expressão a seguir no campo Correspondência:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': 0, 'opt_in_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': 0, 'opt_in_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})" \
    --action deny-403

Em todos os exemplos anteriores, você usa apenas uma expressão por regra. É possível combinar expressões usando o operador lógico ||, mas recomendamos usar apenas uma expressão por regra como prática recomendada para evitar exceder o tamanho máximo da expressão.

Exemplos

Os exemplos desta seção destacam aspectos importantes da criação e ajuste de regras WAF pré-configuradas, incluindo nível de sensibilidade e exceções de assinatura. Em todos os comandos de exemplo gcloud, você cria uma política de segurança com o nome POLICY_NAME na prioridade PRIORITY.

Criar uma regra em um determinado nível de sensibilidade

Neste exemplo, você quer usar todas as assinaturas na regra WAF sqli-v33-stable com um nível de sensibilidade menor que 4. Portanto, você cria a regra no nível de sensibilidade 3, que inclui todas as assinaturas com um nível de sensibilidade menor ou igual a três:

Console

Selecione Modo avançado e use o exemplo de expressão a seguir no campo Correspondência:

evaluatePreconfiguredWaf('sqli-v33-stable', {'sensitivity': 3})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('sqli-v33-stable', {'sensitivity': 3})" \
    --action deny-403

Criar uma regra que desativa uma ou mais assinaturas

Neste exemplo, você quer usar quase todas as assinaturas no nível de sensibilidade 1 e 2 na regra WAF xss-v33-stable, mas quer excluir a assinatura owasp-crs-v030301-id941370-xss, que verifica variáveis globais do JavaScript. Portanto, você cria a regra no nível de confidencialidade 2 e usa o argumento opt_out_rule_ids para desativar a assinatura owasp-crs-v030301-id941370-xss:

Console

Selecione Modo avançado e use o exemplo de expressão a seguir no campo Correspondência:

evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss']})" \
    --action deny-403

Se você quiser excluir duas ou mais assinaturas de uma regra, forneça uma lista de assinaturas separada por vírgulas com o argumento opt_out_rule_ids, como neste exemplo:

Console

Selecione Modo avançado e use o exemplo de expressão a seguir no campo Correspondência:

evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss', 'owasp-crs-v030301-id941380-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss', 'owasp-crs-v030301-id941380-xss']})" \
    --action deny-403

Criar uma regra que ativa uma ou mais assinaturas

Neste exemplo, você quer usar apenas a assinatura owasp-crs-v030001-id941150-xss da regra WAF xss-v33-stable. A assinatura verifica atributos HTML não permitidos e está no nível 2 de sensibilidade. Portanto, você cria a regra no nível de confidencialidade 0 e usa o argumento opt_in_rule_ids para ativar a assinatura owasp-crs-v030001-id941150-xss. Só é possível ativar as assinaturas de regras quando você define o nível de confidencialidade como 0:

Console

Selecione Modo avançado e use o exemplo de expressão a seguir no campo Correspondência:

evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss']})" \
    --action deny-403

Se você quiser incluir duas ou mais assinaturas de uma regra, forneça uma lista de assinaturas separada por vírgulas com o argumento opt_in_rule_ids, como neste exemplo:

Console

Selecione Modo avançado e use o exemplo de expressão a seguir no campo Correspondência:

evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss', 'owasp-crs-v030301-id941320-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss', 'owasp-crs-v030301-id941320-xss']})" \
    --action deny-403

A seguir