Ajusta las reglas de WAF de Google Cloud Armor

Reglas preconfiguradas

Las reglas preconfiguradas de Google Cloud Armor son reglas complejas de firewall de aplicación web (WAF) con decenas de firmas que se compilan a partir de estándares de la industria de código abierto. Google ofrece estas reglas tal como están. Las reglas permiten que Google Cloud Armor evalúe decenas de firmas de tráfico distintas mediante referencias a reglas con nombres adecuados, en lugar de requerir que definas cada firma de forma manual.

En la siguiente tabla, se incluye una lista completa de las reglas de WAF preconfiguradas que están disponibles para usar en una política de seguridad de Google Cloud Armor. La fuente de las reglas es el conjunto de reglas principales de ModSecurity 3.0.2.

Nombre de la regla de Google Cloud Armor Nombre de la regla de ModSecurity Estado actual
sqli-stable Inserción de SQL En sincronización con sqli-canary
sqli-canary Inserción de SQL Más recientes
xss-stable Secuencia de comandos entre sitios En sincronización con xss-canary
xss-canary Secuencia de comandos entre sitios Más recientes
lfi-stable (Beta) Inclusión de archivos locales En sincronización con lfi-canary
lfi-canary (Beta) Inclusión de archivos locales Más recientes
rfi-stable (Beta) Inclusión de archivos remotos En sincronización con rfi-canary
rfi-canary (Beta) Inclusión de archivos remotos Más recientes
rce-stable (Beta) Ejecución de código remoto En sincronización con rce-canary
rce-canary (Beta) Ejecución de código remoto Más recientes

Información sobre el ajuste de reglas

Cada regla preconfigurada está compuesta por varias firmas. Las solicitudes entrantes se evalúan en función de las reglas preconfiguradas. Una solicitud coincide con una regla preconfigurada si coincide con alguna de las firmas asociadas con la regla preconfigurada. Se genera una coincidencia cuando el comando evaluatePreconfiguredExpr() muestra el valor true.

Si decides que una regla preconfigurada coincide con más tráfico del necesario o si la regla bloquea el tráfico que se debe permitir, la regla se puede ajustar para inhabilitar firmas ruidosas o innecesarias. Para inhabilitar firmas en una regla preconfigurada en particular, proporciona una lista de los ID de las firmas no deseadas al comando evaluatePreconfiguredExpr(). Por ejemplo, este es un ejemplo de una condición de coincidencia en el lenguaje de las reglas con una regla ajustada:

evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v020901-id981136-xss', 'owasp-crs-v020901-id981138-xss'])

Reglas de ModSecurity preconfiguradas

Inserción de SQL

ID de firma (ID de regla de CRS) Nivel de sensibilidad Descripción
owasp-crs-v030001-id942140-sqli 1 Ataque de inserción de SQL: se detectaron nombres de DB comunes
owasp-crs-v030001-id942160-sqli 1 Detecta las pruebas de sqli ocultas mediante el uso de suspensiones() o comparativas()
owasp-crs-v030001-id942170-sqli 1 Detecta intentos de inserción de suspensiones y comparativas de SQL, incluidas las consultas condicionales
owasp-crs-v030001-id942190-sqli 1 Detecta la ejecución de código MSSQL y los intentos de recopilación de información
owasp-crs-v030001-id942220-sqli 1 Busca ataques de exceso de números enteros
owasp-crs-v030001-id942230-sqli 1 Detecta intentos de inserción de SQL condicional
owasp-crs-v030001-id942240-sqli 1 Detecta el cambio de charset de MySQL y los intentos de DoS de MSSQL
owasp-crs-v030001-id942250-sqli 1 Detecta operaciones MATCH AGAINST
owasp-crs-v030001-id942270-sqli 1 Busca inserciones básicas de sql String de ataque común para mysql
owasp-crs-v030001-id942280-sqli 1 Detecta la inserción de pg_sleep de Postgres
owasp-crs-v030001-id942290-sqli 1 Busca intentos de inserción básica de SQL de MongoDB
owasp-crs-v030001-id942320-sqli 1 Detecta inserciones de funciones o procedimientos almacenados de MySQL y PostgreSQL
owasp-crs-v030001-id942350-sqli 1 Detecta la inserción de UDF de MySQL y otros intentos de manipulación de datos o estructura
owasp-crs-v030001-id942360-sqli 1 Detecta intentos de SQLLFI y, también, inserciones básicas de SQL concatenadas
owasp-crs-v030001-id942110-sqli 2 Ataque de inserción de SQL: se detectó una prueba de inserción común
owasp-crs-v030001-id942120-sqli 2 Ataque de inserción de SQL: se detectó un operador de SQL
owasp-crs-v030001-id942150-sqli 2 Ataque de inserción de SQL
owasp-crs-v030001-id942180-sqli 2 Detecta los intentos de omisión de la autenticación básica de SQL 1/3
owasp-crs-v030001-id942200-sqli 2 Detecta las inserciones de MySQL ofuscadas con espacios o comentarios y la terminación de acento grave
owasp-crs-v030001-id942210-sqli 2 Detecta intentos de inserciones de SQL en cadena 1/2
owasp-crs-v030001-id942260-sqli 2 Detecta intentos de omisión de la autenticación básica de SQL 2/3
owasp-crs-v030001-id942300-sqli 2 Detecta comentarios de MySQL
owasp-crs-v030001-id942310-sqli 2 Detecta intentos de inserciones de SQL en cadena 2/2
owasp-crs-v030001-id942330-sqli 2 Detecta sondeos de inserción de SQL clásica 1/2
owasp-crs-v030001-id942340-sqli 2 Detecta intentos de omisión de la autenticación básica de SQL 3/3
owasp-crs-v030001-id942380-sqli 2 Ataque de inserción de SQL
owasp-crs-v030001-id942390-sqli 2 Ataque de inserción de SQL
owasp-crs-v030001-id942400-sqli 2 Ataque de inserción de SQL
owasp-crs-v030001-id942410-sqli 2 Ataque de inserción de SQL
owasp-crs-v030001-id942430-sqli 2 Detección de anomalías de caracteres de SQL restringidos (argumentos): número de caracteres especiales excedido (12)
owasp-crs-v030001-id942440-sqli 2 Se detectó la secuencia de comentarios de SQL
owasp-crs-v030001-id942450-sqli 2 Codificación hexadecimal de SQL identificada
owasp-crs-v030001-id942251-sqli 3 Detecta inserciones HAVING
owasp-crs-v030001-id942420-sqli 3 Detección de anomalías de caracteres de SQL restringidos (cookies): número de caracteres especiales excedido (8)
owasp-crs-v030001-id942431-sqli 3 Detección de anomalías de caracteres de SQL restringidos (argumentos): número de caracteres especiales excedido (6)
owasp-crs-v030001-id942460-sqli 3 Alerta de detección de anomalías de metacaracteres: caracteres repetidos que no forman palabras
owasp-crs-v030001-id942421-sqli 4 Detección de anomalías de caracteres de SQL restringidos (cookies): número de caracteres especiales excedido (3)
owasp-crs-v030001-id942432-sqli 4 Detección de anomalías de caracteres de SQL restringidos (argumentos): números de caracteres especiales excedido (2)

Para configurar una regla en un nivel de sensibilidad específico, inhabilita las firmas en los niveles de sensibilidad más altos:

Nivel 1 de sensibilidad de SQLi


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942110-sqli',
 'owasp-crs-v030001-id942120-sqli',
 'owasp-crs-v030001-id942150-sqli',
 'owasp-crs-v030001-id942180-sqli',
 'owasp-crs-v030001-id942200-sqli',
 'owasp-crs-v030001-id942210-sqli',
 'owasp-crs-v030001-id942260-sqli',
 'owasp-crs-v030001-id942300-sqli',
 'owasp-crs-v030001-id942310-sqli',
 'owasp-crs-v030001-id942330-sqli',
 'owasp-crs-v030001-id942340-sqli',
 'owasp-crs-v030001-id942380-sqli',
 'owasp-crs-v030001-id942390-sqli',
 'owasp-crs-v030001-id942400-sqli',
 'owasp-crs-v030001-id942410-sqli',
 'owasp-crs-v030001-id942430-sqli',
 'owasp-crs-v030001-id942440-sqli',
 'owasp-crs-v030001-id942450-sqli',
 'owasp-crs-v030001-id942251-sqli',
 'owasp-crs-v030001-id942420-sqli',
 'owasp-crs-v030001-id942431-sqli',
 'owasp-crs-v030001-id942460-sqli',
 'owasp-crs-v030001-id942421-sqli',
 'owasp-crs-v030001-id942432-sqli']
)
Nivel 2 de sensibilidad de SQLi

evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942251-sqli',
 'owasp-crs-v030001-id942420-sqli',
 'owasp-crs-v030001-id942431-sqli',
 'owasp-crs-v030001-id942460-sqli',
 'owasp-crs-v030001-id942421-sqli',
 'owasp-crs-v030001-id942432-sqli']
)
Nivel 3 de sensibilidad de SQLi


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942421-sqli',
 'owasp-crs-v030001-id942432-sqli']
)
Nivel 4 de sensibilidad de SQLi


evaluatePreconfiguredExpr('sqli-stable')

Secuencia de comandos entre sitios (XSS)

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id941110-xss 1 Filtro de XSS - Categoría 1: vector de etiqueta de secuencia de comandos
owasp-crs-v030001-id941120-xss 1 Filtro de XSS - Categoría 2: vector de controlador de eventos
owasp-crs-v030001-id941130-xss 1 Filtro de XSS - Categoría 3: vector de atributos
owasp-crs-v030001-id941140-xss 1 Filtro de XSS - Categoría 4: vector de URI de JavaScript
owasp-crs-v030001-id941160-xss 1 NoScript XSS InjectionChecker: inserción de HTML
owasp-crs-v030001-id941170-xss 1 NoScript XSS InjectionChecker: inserción de atributos
owasp-crs-v030001-id941180-xss 1 Palabras clave de la lista negra del validador de nodos
owasp-crs-v030001-id941190-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941200-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941210-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941220-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941230-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941240-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941250-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941260-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941270-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941280-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941290-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941300-xss 1 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941310-xss 1 Filtro de XSS de codificación con formato incorrecto de US-ASCII: se detectó un ataque
owasp-crs-v030001-id941350-xss 1 XSS de IE de codificación UTF-7: se detectó un ataque
owasp-crs-v030001-id941150-xss 2 Filtro de XSS - Categoría 5: atributos HTML no permitidos
owasp-crs-v030001-id941320-xss 2 Posible ataque de XSS detectado: controlador de etiquetas HTML
owasp-crs-v030001-id941330-xss 2 Filtros de XSS de IE: se detectó un ataque
owasp-crs-v030001-id941340-xss 2 Filtros de XSS de IE: se detectó un ataque

Para configurar una regla en un nivel de sensibilidad específico, inhabilita las firmas en los niveles de sensibilidad más altos:

Nivel 1 de sensibilidad de XSS


evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v030001-id941150-xss',
 'owasp-crs-v030001-id941320-xss',
 'owasp-crs-v030001-id941330-xss',
 'owasp-crs-v030001-id941340-xss'])

Todas las firmas para XSS están por debajo del nivel 2 de sensibilidad. La siguiente configuración funciona para otros niveles de sensibilidad:

Niveles 2, 3 y 4 de sensibilidad de XSS


evaluatePreconfiguredExpr('xss-stable')

Inclusión de archivos locales (LFI) (Beta)

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id930100-lfi 1 Ataque de recorrido de ruta (/../)
owasp-crs-v030001-id930110-lfi 1 Ataque de recorrido de ruta (/../)
owasp-crs-v030001-id930120-lfi 1 Intento de acceso a archivos del SO
owasp-crs-v030001-id930130-lfi 1 Intento de acceso a archivos restringidos

Todas las firmas para LFI están en el nivel 1 de sensibilidad. La siguiente configuración funciona para todos los niveles de sensibilidad:

Niveles 1, 2, 3 y 4 de sensibilidad de LFI


evaluatePreconfiguredExpr('lfi-canary')

Ejecución de código remoto (RCE) (Beta)

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id932100-rce 1 Inserción de comandos de UNIX
owasp-crs-v030001-id932105-rce 1 Inserción de comandos de UNIX
owasp-crs-v030001-id932110-rce 1 Inserción de comandos de Windows
owasp-crs-v030001-id932115-rce 1 Inserción de comandos de Windows
owasp-crs-v030001-id932120-rce 1 Se encontró un comando de Windows PowerShell
owasp-crs-v030001-id932130-rce 1 Se encontró una expresión de shell de Unix
owasp-crs-v030001-id932140-rce 1 Se encontró un comando IF o FOR de Windows
owasp-crs-v030001-id932150-rce 1 Ejecución directa de comandos de UNIX
owasp-crs-v030001-id932160-rce 1 Se encontró código de shell de Unix
owasp-crs-v030001-id932170-rce 1 Shellshock (CVE-2014-6271)
owasp-crs-v030001-id932171-rce 1 Shellshock (CVE-2014-6271)

Todas las firmas para RCE están en el nivel 1 de sensibilidad. La siguiente configuración funciona para todos los niveles de sensibilidad:

Niveles 1, 2, 3 y 4 de sensibilidad de RCE


evaluatePreconfiguredExpr('rce-canary')

Inclusión de archivos remotos (RFI) (Beta)

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id931100-rfi 1 Parámetro de URL con direcciones IP
owasp-crs-v030001-id931110-rfi 1 Nombre de parámetro vulnerable de RFI común que se usa con la carga útil de URL
owasp-crs-v030001-id931120-rfi 1 Carga útil de URL usada con el carácter de signo de interrogación de cierre (?)
owasp-crs-v030001-id931130-rfi 2 Vínculo o referencia fuera del dominio

Para configurar una regla en un nivel de sensibilidad específico, inhabilita las firmas en los niveles de sensibilidad más altos:

Nivel 1 de sensibilidad de RFI


evaluatePreconfiguredExpr('rfi-canary', ['owasp-crs-v030001-id931130-rfi'])
Niveles 2, 3 y 4 de sensibilidad de RFI


evaluatePreconfiguredExpr('rfi-canary')

Próximos pasos