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çaPOLICY_NAME
: o nome da política de segurança que quer configurarRULE_NAME
: o nome da regra de WAF que quer configurarSENSITIVITY
: 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çaPOLICY_NAME
: o nome da política de segurança que quer configurarRULE_NAME
: o nome da regra de WAF que quer configurarSENSITIVITY
: o nível de sensibilidade da regra do WAFSIGNATURE_1
: o nome da assinatura da WAF da qual quer desativar a receçãoSIGNATURE_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çaPOLICY_NAME
: o nome da política de segurança que quer configurarRULE_NAME
: o nome da regra de WAF que quer configurarSIGNATURE_1
: o nome da assinatura da WAF da qual quer desativar a receçãoSIGNATURE_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çaPOLICY_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çaPOLICY_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çaPOLICY_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çaPOLICY_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çaPOLICY_NAME
: o nome da política de segurança que quer configurar
O que se segue?
- Para mais informações sobre o ajuste das regras da WAF, consulte o artigo Ajuste as regras da WAF pré-configuradas do Cloud Armor