Use estas instruções para configurar e ajustar as regras pré-configuradas do firewall de aplicativos da Web (WAF) do Google Cloud Armor e 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 Google Cloud e personalizadas para se adequar ao seu caso de uso. Em cada exemplo de comando da Google Cloud CLI, 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 do WAF que você quer configurarSENSITIVITY
: o nível de sensibilidade da regra do 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 do 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 do WAF que você quer configurarSENSITIVITY
: o nível de sensibilidade da regra do 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 regra. 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 do 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 WAF pré-configuradas
As regras WAF pré-configuradas do Google 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 suas regras de WAF pré-configuradas.
O comando a seguir define o limite de inspeção de todas as regras 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 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 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 do WAF pré-configurada é avaliada em uma política de segurança do Google 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 do 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 WAF pré-configuradas, incluindo nível de sensibilidade e exceções de assinatura.
Em todos os exemplos de comandos da CLI 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ê usa todas as assinaturas na regra 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 três:
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 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 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
Se você quiser 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 do WAF, consulte Ajustar as regras WAF pré-configuradas do Google Cloud Armor