Sigue estas instrucciones para configurar y ajustar las reglas preconfiguradas del cortafuegos de aplicaciones web (WAF) de Cloud Armor y proteger tu aplicación frente a ataques. Si no conoces las reglas de WAF preconfiguradas, consulta la descripción general.
Configurar una regla de WAF preconfigurada
En esta sección se proporcionan reglas de WAF preconfiguradas que puedes copiar en la consola de Trusted Cloud y personalizar para adaptarlas a tu caso práctico. En cada ejemplo de comando de Google Cloud CLI, se configura 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 SENSITIVITY
, lo que habilita todas las firmas con una sensibilidad inferior o igual a SENSITIVITY
. Para obtener más información sobre la sensibilidad de las reglas, consulta Elegir un nivel de sensibilidad.
Consola
Selecciona Modo avanzado y, a continuación, 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
Haz los cambios siguientes:
PRIORITY
: la prioridad de la política de seguridadPOLICY_NAME
: el nombre de la política de seguridad que quieras configurarRULE_NAME
: el nombre de la regla de WAF que quieras configurarSENSITIVITY
: el nivel de sensibilidad de la regla de WAF
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 del WAF:
Consola
Selecciona Modo avanzado y, a continuación, 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
Haz los cambios siguientes:
PRIORITY
: la prioridad de la política de seguridadPOLICY_NAME
: el nombre de la política de seguridad que quieras configurarRULE_NAME
: el nombre de la regla de WAF que quieras configurarSENSITIVITY
: el nivel de sensibilidad de la regla de WAFSIGNATURE_1
: el nombre de la firma de WAF de la que quieras inhabilitar el usoSIGNATURE_2
: el nombre de la firma de WAF de la que quieras inhabilitar el uso.
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 definas el nivel de sensibilidad en 0
:
Consola
Selecciona Modo avanzado y, a continuación, 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
Haz los cambios siguientes:
PRIORITY
: la prioridad de la política de seguridadPOLICY_NAME
: el nombre de la política de seguridad que quieras configurarRULE_NAME
: el nombre de la regla de WAF que quieras configurarSIGNATURE_1
: el nombre de la firma de WAF de la que quieras inhabilitar el usoSIGNATURE_2
: el nombre de la firma de WAF de la que quieras inhabilitar el uso
En todos los ejemplos anteriores, solo se usa una expresión por regla. Aunque puedes combinar expresiones con el operador lógico OR (||
), te recomendamos que uses solo una expresión por regla para no superar el tamaño máximo de la expresión.
Actualizar el límite de inspección de las reglas de WAF preconfiguradas
Las reglas de WAF preconfiguradas de Cloud Armor solo pueden inspeccionar los primeros 64 KB (8 KB, 16 KB, 32 KB, 48 KB o 64 KB) del cuerpo de una solicitud. Puedes configurar manualmente una política de seguridad para que use uno de estos límites de inspección en tus reglas de WAF preconfiguradas.
El siguiente comando define el límite de inspección de todas las reglas de WAF preconfiguradas disponibles en la política POLICY_NAME
en 8 kB mediante la marca --request-body-inspection-size
. Para obtener más información sobre los límites de inspección de las reglas de WAF preconfiguradas, consulta Limitación de la inspección del cuerpo de las solicitudes POST y PATCH.
gcloud compute security-policies update POLICY_NAME \ --request-body-inspection-size = 8 kB
Sustituye POLICY_NAME
por el nombre de la política de seguridad que quieras configurar.
Del mismo modo, puedes usar la marca --request-body-inspection-size
para definir el límite de inspección de todas las reglas de WAF preconfiguradas disponibles en la política POLICY_NAME
en 16 kB, 32 kB, 48 kB o 64 kB.
Mitigar el riesgo en el cuerpo de la solicitud que supera el límite de inspección configurado
Cuando se evalúa una regla de WAF preconfigurada en una política de seguridad de Cloud Armor, se inspeccionan los primeros 64 kB (8 kB, 16 kB, 32 kB, 48 kB o 64 kB) del cuerpo de una solicitud para comprobar si hay coincidencias de firmas con las reglas de WAF.
Para mitigar el riesgo de las solicitudes de mayor tamaño, puede crear una regla en sus políticas de seguridad para asegurarse de que no llegue contenido sin inspeccionar a sus backends. Por ejemplo, cree una regla para denegar el tráfico que supere el límite de inspección configurado de 8 kB (8192 bytes) en el tamaño del cuerpo de la solicitud. El siguiente comando muestra cómo crear esta regla:
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"
Del mismo modo, puede crear una regla para denegar el tráfico que supere los límites de inspección configurados de 16 kB, 32 kB, 48 kB o 64 kB en el tamaño del cuerpo de la solicitud. Por ejemplo, el siguiente comando muestra cómo crear esta regla para el límite de inspección 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"
Ejemplos
Los ejemplos de esta sección destacan aspectos importantes de la creación y la configuración de reglas de WAF preconfiguradas, como el nivel de sensibilidad y las excepciones de firma.
En todos los comandos de ejemplo de la CLI de gcloud, se crea una política de seguridad con el nombre POLICY_NAME
y la prioridad PRIORITY
.
Crear una regla con un nivel de sensibilidad determinado
En este ejemplo, se usan todas las firmas de la regla de WAF sqli-v33-stable
con un nivel de sensibilidad inferior a 4. Por lo tanto, crea la regla en el nivel de sensibilidad 3, que incluye todas las firmas con un nivel de sensibilidad inferior o igual a 3:
Consola
Selecciona Modo avanzado y, a continuación, 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
Haz los cambios siguientes:
PRIORITY
: la prioridad de la política de seguridadPOLICY_NAME
: el nombre de la política de seguridad que quieras configurar
Crear una regla para inhabilitar una o varias firmas
En este ejemplo, se usan casi todas las firmas de los niveles de sensibilidad 1 y 2 en la regla de WAF xss-v33-stable
, pero se quiere excluir la firma owasp-crs-v030301-id941370-xss
, que comprueba las variables globales de JavaScript.
Por lo tanto, crea la regla en el nivel de sensibilidad 2 y usa el argumento opt_out_rule_ids
para inhabilitar la firma owasp-crs-v030301-id941370-xss
.
Consola
Selecciona Modo avanzado y, a continuación, 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
Haz los cambios siguientes:
PRIORITY
: la prioridad de la política de seguridadPOLICY_NAME
: el nombre de la política de seguridad que quieras configurar
Para 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 se indica a continuación:
Consola
Selecciona Modo avanzado y, a continuación, 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
Haz los cambios siguientes:
PRIORITY
: la prioridad de la política de seguridadPOLICY_NAME
: el nombre de la política de seguridad que quieras configurar
Crear una regla que habilite una o varias firmas
En este ejemplo solo se usa la firma owasp-crs-v030001-id941150-xss
de la regla xss-v33-stable
del WAF. La
firma comprueba si hay atributos HTML no permitidos y tiene un nivel de sensibilidad 2.
Por lo tanto, crea la regla con el nivel de sensibilidad 0 y usa 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 definas el nivel de sensibilidad en 0
:
Consola
Selecciona Modo avanzado y, a continuación, 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
Haz los cambios siguientes:
PRIORITY
: la prioridad de la política de seguridadPOLICY_NAME
: el nombre de la política de seguridad que quieras configurar
Si quieres 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 se indica a continuación:
Consola
Selecciona Modo avanzado y, a continuación, 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
Haz los cambios siguientes:
PRIORITY
: la prioridad de la política de seguridadPOLICY_NAME
: el nombre de la política de seguridad que quieras configurar
Siguientes pasos
- Para obtener más información sobre cómo activar las reglas de WAF, consulta el artículo Activar las reglas de WAF preconfiguradas de Cloud Armor.