Use estas instruções para configurar e ajustar as regras de firewall de aplicativos da web (WAF) pré-configuradas do Cloud Armor e proteger seu aplicativo contra ataques. Se você não conhece as regras de WAF pré-configuradas, consulte a visão geral.
Configurar uma regra de WAF pré-configurada
Esta seção fornece regras de WAF pré-configuradas de modelo que podem ser copiadas para
o console do Google Cloud e personalizadas para se adequar ao seu caso de uso. Em cada exemplo
de comando da CLI do Google Cloud, 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
SENSITIVITY, que ativa todas as assinaturas com
sensibilidade menor ou igual a SENSITIVITY. Para mais
informações sobre a sensibilidade das regras, consulte
Escolher um nível de sensibilidade.
Console
Selecione Modo avançado e 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:
PRIORITY: a prioridade da política de segurançaPOLICY_NAME: o nome da política de segurança que você quer configurarRULE_NAME: o nome da regra de WAF que você quer configurarSENSITIVITY: o nível de sensibilidade da regra de WAF
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 de WAF é avaliada:
Console
Selecione Modo avançado e 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:
PRIORITY: a prioridade da política de segurançaPOLICY_NAME: o nome da política de segurança que você quer configurarRULE_NAME: o nome da regra de WAF que você quer configurarSENSITIVITY: o nível de sensibilidade da regra de WAFSIGNATURE_1: o nome da assinatura do WAF que você quer desativarSIGNATURE_2: o nome da assinatura do WAF que você quer desativar.
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 sensibilidade é definido como 0:
Console
Selecione Modo avançado e 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:
PRIORITY: a prioridade da política de segurançaPOLICY_NAME: o nome da política de segurança que você quer configurarRULE_NAME: o nome da regra de WAF que você quer configurarSIGNATURE_1: o nome da assinatura do WAF que você quer desativarSIGNATURE_2: o nome da assinatura do WAF que você quer desativar
Em todos os exemplos anteriores, você usou apenas uma expressão por regra. Embora
seja possível combinar expressões usando o operador lógico OR (||), recomendamos
usar apenas uma expressão por regra como prática recomendada para evitar
exceder o tamanho máximo da expressão.
Atualizar o limite de inspeção para regras de WAF pré-configuradas
As regras de WAF pré-configuradas do Cloud Armor só podem inspecionar até os primeiros 64 kB (8 kB, 16 kB, 32 kB, 48 kB ou 64 kB) de um corpo de solicitação. Você pode configurar manualmente uma política de segurança para usar um desses limites de inspeção nas regras de WAF pré-configuradas.
O comando a seguir define o limite de inspeção de todas as regras de WAF
pré-configuradas disponíveis na política POLICY_NAME como 8 kB usando a flag --request-body-inspection-size. Para mais informações sobre
os limites de inspeção das regras de WAF pré-configuradas, consulte
Limitação de 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 você quer configurar.
Da mesma forma, é possível 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 como
16 kB, 32 kB, 48 kB ou 64 kB.
Reduzir o risco no corpo da solicitação que excede o limite de inspeção configurado
Quando uma regra de WAF pré-configurada é avaliada em uma política de segurança do Cloud Armor, até os primeiros 64 KB (8 KB, 16 KB, 32 KB, 48 KB ou 64 KB) do corpo de uma solicitação são inspecionados para correspondências de assinatura nas regras de WAF.
É possível reduzir o risco de solicitações maiores ao criar uma regra nas políticas de segurança para garantir que nenhum conteúdo não inspecionado chegue aos back-ends. Por exemplo, crie uma regra para negar o tráfego que excede o limite de inspeção configurado de 8 kB (8192 bytes) no tamanho do corpo da solicitação. O comando a seguir mostra como criar essa 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, é possível criar uma regra para negar o tráfego que excede os limites de inspeção configurados de 16 kB, 32 kB, 48 kB ou 64 kB no tamanho do corpo da solicitação. Por exemplo, o comando a seguir mostra como criar essa 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 seção destacam aspectos importantes da criação e do ajuste de
regras de WAF pré-configuradas, incluindo nível de sensibilidade e exceções de assinatura.
Em todos os exemplos de comandos da gcloud CLI, você cria uma política de segurança com o
nome POLICY_NAME na prioridade
PRIORITY.
Criar uma regra em determinado nível de sensibilidade
Neste exemplo, você usa todas as assinaturas na regra de WAF sqli-v33-stable
com um nível de sensibilidade menor que 4. Portanto, crie a regra no
nível de sensibilidade 3, que inclui todas as assinaturas com um nível de sensibilidade
menor ou igual a 3:
Console
Selecione Modo avançado e 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:
PRIORITY: a prioridade da política de segurançaPOLICY_NAME: o nome da política de segurança que você quer configurar
Criar uma regra que desativa uma ou mais assinaturas
Neste exemplo, você usa quase todas as assinaturas no nível de sensibilidade
1 e 2 na regra de WAF xss-v33-stable, mas quer excluir a assinatura
owasp-crs-v030301-id941370-xss, que verifica variáveis globais do JavaScript.
Portanto, crie a regra no nível de sensibilidade 2 e use o argumento
opt_out_rule_ids para desativar a assinatura owasp-crs-v030301-id941370-xss:
Console
Selecione Modo avançado e 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:
PRIORITY: a prioridade da política de segurançaPOLICY_NAME: o nome da política de segurança que você quer configurar
Para excluir duas ou mais assinaturas de uma regra,
forneça uma lista separada por vírgulas de assinaturas com o argumento opt_out_rule_ids,
da seguinte forma:
Console
Selecione Modo avançado e 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:
PRIORITY: a prioridade da política de segurançaPOLICY_NAME: o nome da política de segurança que você quer configurar
Criar uma regra que ativa uma ou mais assinaturas
Este exemplo usa apenas a assinatura
owasp-crs-v030001-id941150-xss da regra de WAF xss-v33-stable. A
assinatura verifica atributos HTML não permitidos e está no nível 2 de sensibilidade.
Portanto, crie a regra no nível de sensibilidade 0 e use 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 sensibilidade como 0:
Console
Selecione Modo avançado e 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:
PRIORITY: a prioridade da política de segurançaPOLICY_NAME: o nome da política de segurança que você quer configurar
Para incluir duas ou mais assinaturas de uma regra, forneça
uma lista separada por vírgulas de assinaturas com o argumento opt_in_rule_ids, da
seguinte forma:
Console
Selecione Modo avançado e 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:
PRIORITY: a prioridade da política de segurançaPOLICY_NAME: o nome da política de segurança que você quer configurar
A seguir
- Para mais informações sobre o ajuste de regras de WAF, consulte Ajustar regras de WAF pré-configuradas do Cloud Armor