Usa estas instrucciones para configurar y ajustar las reglas de firewall de aplicación web (WAF) preconfiguradas de Google Cloud Armor para ayudar a proteger tu aplicación contra ataques. Si no conoces las reglas de WAF preconfiguradas, consulta la descripción general.
Cómo configurar una regla de WAF preconfigurada
En esta sección, se proporcionan reglas de WAF preconfiguradas de plantillas que puedes copiar en la consola de Google Cloud y personalizar para que se ajusten a tu caso de uso. En cada comando gcloud
de ejemplo, configuras una política de seguridad con el nombre POLICY_NAME y la prioridad PRIORITY.
En el primer ejemplo, se configura una regla con el nombre RULE_NAME y un nivel de sensibilidad de SENSITIVITY, que habilita todas las firmas con una sensibilidad menor o igual a SENSITIVITY. Para obtener más información sobre la sensibilidad de las reglas, consulta Elige un nivel de sensibilidad.
Console
Selecciona Modo avanzado y, luego, usa la siguiente expresión de ejemplo en el campo Coincidencia:
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
El segundo ejemplo es similar al primero, pero inhabilita las firmas de reglas SIGNATURE_1 y SIGNATURE_2. Esto significa que estas dos firmas no se evalúan cuando se evalúa la regla de WAF:
Console
Selecciona Modo avanzado y, luego, usa la siguiente expresión de ejemplo en el campo Coincidencia:
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
El tercer ejemplo es similar al segundo, pero en lugar de inhabilitar dos firmas, habilitas dos firmas de reglas. Ten en cuenta que solo puedes habilitar las firmas de reglas cuando estableces el nivel de sensibilidad en 0
:
Console
Selecciona Modo avanzado y, luego, usa la siguiente expresión de ejemplo en el campo Coincidencia:
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
En todos los ejemplos anteriores, solo se usa una expresión por regla. Si bien puedes combinar expresiones con el operador lógico ||
, te recomendamos que uses solo una expresión por regla como práctica recomendada para evitar exceder el tamaño máximo de la expresión.
Ejemplos
En los ejemplos de esta sección, se destacan aspectos importantes de la creación y el ajuste de las reglas de WAF preconfiguradas, incluidos el nivel de sensibilidad y las excepciones de firma.
En todos los comandos de ejemplo de gcloud
, creas una política de seguridad con el nombre POLICY_NAME en la prioridad PRIORITY.
Crea una regla en un nivel de sensibilidad determinado
En este ejemplo, deseas usar todas las firmas de la regla de WAF sqli-v33-stable
con un nivel de sensibilidad inferior a 4. Por lo tanto, creas la regla en el nivel de sensibilidad 3, que incluye todas las firmas con un nivel de sensibilidad inferior o igual a tres:
Console
Selecciona Modo avanzado y, luego, usa la siguiente expresión de ejemplo en el campo Coincidencia:
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
Crea una regla que inhabilite una o más firmas
En este ejemplo, deseas usar casi todas las firmas en los niveles de sensibilidad 1 y 2 en la regla de WAF xss-v33-stable
, pero deseas excluir la firma owasp-crs-v030301-id941370-xss
, que busca variables globales de JavaScript.
Por lo tanto, creas la regla en el nivel de sensibilidad 2 y usas el argumento opt_out_rule_ids
para inhabilitar la firma owasp-crs-v030301-id941370-xss
:
Console
Selecciona Modo avanzado y, luego, usa la siguiente expresión de ejemplo en el campo Coincidencia:
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
Si deseas excluir dos o más firmas de una regla, proporciona una lista de firmas separadas por comas con el argumento opt_out_rule_ids
, como en el siguiente ejemplo:
Console
Selecciona Modo avanzado y, luego, usa la siguiente expresión de ejemplo en el campo Coincidencia:
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
Crea una regla que habilite una o más firmas
En este ejemplo, deseas usar solo la firma owasp-crs-v030001-id941150-xss
de la regla de WAF xss-v33-stable
. La firma verifica si hay atributos HTML no permitidos y está en el nivel 2 de sensibilidad.
Por lo tanto, creas la regla en el nivel de sensibilidad 0 y usas el argumento opt_in_rule_ids
para habilitar la firma owasp-crs-v030001-id941150-xss
. Ten en cuenta que solo puedes habilitar las firmas de reglas cuando configuras el nivel de sensibilidad en 0
:
Console
Selecciona Modo avanzado y, luego, usa la siguiente expresión de ejemplo en el campo Coincidencia:
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
Si deseas incluir dos o más firmas de una regla, proporciona una lista de firmas separadas por comas con el argumento opt_in_rule_ids
, como en el siguiente ejemplo:
Console
Selecciona Modo avanzado y, luego, usa la siguiente expresión de ejemplo en el campo Coincidencia:
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
¿Qué sigue?
- Para obtener más información sobre el ajuste de reglas de WAF, consulta Ajusta las reglas de WAF preconfiguradas de Google Cloud Armor.