Configure regras de WAF pré-configuradas

Use estas instruções para configurar e otimizar as regras de firewall de aplicação Web (WAF) pré-configuradas do Cloud Armor para ajudar a proteger a sua aplicação contra ataques. Se não estiver familiarizado com as regras de WAF pré-configuradas, consulte a vista geral.

Configure uma regra de WAF pré-configurada

Esta secção fornece regras de WAF pré-configuradas de modelos que pode copiar para a consola Trusted Cloud e personalizar para se adequarem ao seu exemplo de utilização. Em cada exemplo de comando da CLI do Google Cloud, configura uma política de segurança com o nome POLICY_NAME e a prioridade PRIORITY.

O primeiro exemplo configura uma regra com um nome de regraRULE_NAME e um nível de sensibilidade de SENSITIVITY, o que permite todas as assinaturas com uma sensibilidade inferior ou igual a SENSITIVITY. Para mais informações sobre a sensibilidade das regras, consulte Escolha um nível de sensibilidade.

Consola

Selecione Modo avançado e, de seguida, use a seguinte expressão de exemplo 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

Substitua o seguinte:

  • PRIORITY: a prioridade da política de segurança
  • POLICY_NAME: o nome da política de segurança que quer configurar
  • RULE_NAME: o nome da regra de WAF que quer configurar
  • SENSITIVITY: o nível de sensibilidade da regra do WAF

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

Consola

Selecione Modo avançado e, de seguida, use a seguinte expressão de exemplo 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

Substitua o seguinte:

  • PRIORITY: a prioridade da política de segurança
  • POLICY_NAME: o nome da política de segurança que quer configurar
  • RULE_NAME: o nome da regra de WAF que quer configurar
  • SENSITIVITY: o nível de sensibilidade da regra do WAF
  • SIGNATURE_1: o nome da assinatura da WAF da qual quer desativar a receção
  • SIGNATURE_2: o nome da assinatura da WAF da qual quer desativar a receção.

O terceiro exemplo é semelhante ao segundo, mas, em vez de desativar duas assinaturas, ativa duas assinaturas de regras. Tenha em atenção que só pode ativar as assinaturas de regras quando define o nível de sensibilidade como 0:

Consola

Selecione Modo avançado e, de seguida, use a seguinte expressão de exemplo 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

Substitua o seguinte:

  • PRIORITY: a prioridade da política de segurança
  • POLICY_NAME: o nome da política de segurança que quer configurar
  • RULE_NAME: o nome da regra de WAF que quer configurar
  • SIGNATURE_1: o nome da assinatura da WAF da qual quer desativar a receção
  • SIGNATURE_2: o nome da assinatura da WAF da qual quer desativar a receção

Em todos os exemplos anteriores, usa apenas uma expressão por regra. Embora possa combinar expressões usando o operador lógico OU (||), recomendamos que use apenas uma expressão por regra como prática recomendada para evitar exceder o tamanho máximo da expressão.

Atualize o limite de inspeção para regras de WAF pré-configuradas

As regras de WAF pré-configuradas do Cloud Armor só podem inspecionar até aos primeiros 64 kB (8 kB, 16 kB, 32 kB, 48 kB ou 64 kB) de um corpo do pedido. Pode configurar manualmente uma política de segurança para usar um destes limites de inspeção para as suas regras de WAF pré-configuradas.

O comando seguinte define o limite de inspeção de todas as regras de WAF pré-configuradas disponíveis na política POLICY_NAME para 8 kB usando a flag --request-body-inspection-size. Para mais informações sobre os limites de inspeção das regras da WAF pré-configuradas, consulte o artigo Limitação da inspeção do corpo de POST e PATCH.

gcloud compute security-policies update POLICY_NAME \
    --request-body-inspection-size = 8 kB

Substitua POLICY_NAME pelo nome da política de segurança que quer configurar.

Da mesma forma, pode usar a flag --request-body-inspection-size para definir o limite de inspeção de todas as regras de WAF pré-configuradas disponíveis na política POLICY_NAME para 16 kB, 32 kB, 48 kB ou 64 kB.

Mitigue o risco no corpo do pedido que excede o limite de inspeção configurado

Quando uma regra de WAF pré-configurada é avaliada numa política de segurança do Cloud Armor, são inspecionados até aos primeiros 64 kB (8 kB, 16 kB, 32 kB, 48 kB ou 64 kB) de um corpo de pedido para verificar se existem correspondências de assinaturas com as regras de WAF.

Pode mitigar o risco de pedidos maiores criando uma regra nas suas políticas de segurança para ajudar a garantir que nenhum conteúdo não inspecionado chega aos seus back-ends. Por exemplo, crie uma regra para recusar tráfego que exceda o limite de inspeção configurado de 8 kB (8192 bytes) no tamanho do corpo do pedido. O comando seguinte mostra como criar esta regra:

gcloud compute security-policies rules create 10 \
    --security-policy my-policy \
    --expression "int(request.headers['content-length']) > 8192" \
    --action deny-403 \
    --description "Block requests greater than 8 kB"

Da mesma forma, pode criar uma regra para recusar tráfego que exceda os limites de inspeção configurados de 16 KB, 32 KB, 48 KB ou 64 KB no tamanho do corpo do pedido. Por exemplo, o comando seguinte mostra como criar esta regra para o limite de inspeção de 64 KB (65 536 bytes).

gcloud compute security-policies rules create 10 \
    --security-policy my-policy \
    --expression "int(request.headers['content-length']) > 65536" \
    --action deny-403 \
    --description "Block requests greater than 64 kB"

Exemplos

Os exemplos nesta secção realçam aspetos importantes da criação e ajuste de regras de WAF pré-configuradas, incluindo o nível de sensibilidade e as exceções de assinatura. Em todos os comandos de exemplo da CLI gcloud, cria uma política de segurança com o nome POLICY_NAME na prioridade PRIORITY.

Crie uma regra a um determinado nível de sensibilidade

Neste exemplo, usa todas as assinaturas na regra de WAF sqli-v33-stable com um nível de sensibilidade inferior a 4. Por conseguinte, cria a regra ao nível de sensibilidade 3, que inclui todas as assinaturas com um nível de sensibilidade inferior ou igual a três:

Consola

Selecione Modo avançado e, de seguida, use a seguinte expressão de exemplo 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

Substitua o seguinte:

  • PRIORITY: a prioridade da política de segurança
  • POLICY_NAME: o nome da política de segurança que quer configurar

Crie uma regra que desative uma ou mais assinaturas

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

Consola

Selecione Modo avançado e, de seguida, use a seguinte expressão de exemplo 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

Substitua o seguinte:

  • PRIORITY: a prioridade da política de segurança
  • POLICY_NAME: o nome da política de segurança que quer configurar

Para excluir duas ou mais assinaturas de uma regra, indique uma lista de assinaturas separadas por vírgulas com o argumento opt_out_rule_ids, da seguinte forma:

Consola

Selecione Modo avançado e, de seguida, use a seguinte expressão de exemplo 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

Substitua o seguinte:

  • PRIORITY: a prioridade da política de segurança
  • POLICY_NAME: o nome da política de segurança que quer configurar

Crie uma regra que ative uma ou mais assinaturas

Este exemplo usa apenas a assinatura owasp-crs-v030001-id941150-xss da regra do xss-v33-stable WAF. A verificação de assinatura procura atributos HTML não permitidos e está no nível de sensibilidade 2. Por conseguinte, cria a regra ao nível de sensibilidade 0 e usa o argumento opt_in_rule_ids para ativar a owasp-crs-v030001-id941150-xss assinatura. Tenha em atenção que só pode ativar as assinaturas de regras quando define o nível de sensibilidade como 0:

Consola

Selecione Modo avançado e, de seguida, use a seguinte expressão de exemplo 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

Substitua o seguinte:

  • PRIORITY: a prioridade da política de segurança
  • POLICY_NAME: o nome da política de segurança que quer configurar

Se quiser incluir duas ou mais assinaturas de uma regra, forneça uma lista de assinaturas separadas por vírgulas com o argumento opt_in_rule_ids, da seguinte forma:

Consola

Selecione Modo avançado e, de seguida, use a seguinte expressão de exemplo 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

Substitua o seguinte:

  • PRIORITY: a prioridade da política de segurança
  • POLICY_NAME: o nome da política de segurança que quer configurar

O que se segue?