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, ya que consulta las reglas con nombres prácticos 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 reglas es conjunto de reglas principales de ModSecurity 3.0.2 (CRS).

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 reciente
xss-stable Secuencia de comandos entre sitios En sincronización con xss-canary
xss-canary Secuencia de comandos entre sitios Más reciente
lfi-stable Inclusión de archivos locales En sincronización con lfi-canary
lfi-canary Inclusión de archivos locales Más reciente
rfi-stable Inclusión de archivos remotos En sincronización con rfi-canary
rfi-canary Inclusión de archivos remotos Más reciente
rce-stable Ejecución de código remoto En sincronización con rce-canary
rce-canary Ejecución de código remoto Más reciente
methodenforcement-stable Aplicación de métodos (vista previa pública) En sincronización con methodenforcement-canary
methodenforcement-canary Aplicación de métodos (vista previa pública) Más reciente
scannerdetection-stable Detección de escáner En sincronización con scannerdetection-canary
scannerdetection-canary Detección de escáner Más reciente
protocolattack-stable Ataque de protocolo En sincronización con protocolattack-canary
protocolattack-canary Ataque de protocolo Más reciente
php-stable Ataque de inserción de PHP En sincronización con php-canary
php-canary Ataque de inserción de PHP Más reciente
sessionfixation-stable Ataque de corrección de sesión En sincronización con sessionfixation-canary
sessionfixation-canary Ataque de corrección de sesión Más reciente

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().

En el siguiente ejemplo, se excluyen dos ID de reglas CRS de la regla de WAF xss-stable preconfigurada:

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

El ejemplo anterior es una expresión en el lenguaje de reglas personalizadas. A continuación, se muestra la sintaxis general:

evaluatePreconfiguredExpr(RULE, ['SIGNATURE1', 'SIGNATURE2', 'SIGNATURE3'])

Reglas de ModSecurity preconfiguradas

Inserción de SQL (SQLi)

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 de SQL básico. 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)

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)

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)

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'])

Todas las firmas para RFI 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 RFI


evaluatePreconfiguredExpr('rfi-canary')

Aplicación de métodos

Esta regla se encuentra en vista previa pública.

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id911100-methodenforcement 1 La política no permite el método

Todas las firmas para la aplicación de métodos están por debajo del nivel de sensibilidad 2. La siguiente configuración funciona para otros niveles de sensibilidad:

Niveles 2, 3 y 4 de sensibilidad de aplicación de métodos


evaluatePreconfiguredExpr('methodenforcement-canary')

Detección de escáner

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id913100-scannerdetection 1 Se encontró un usuario-agente asociado con el análisis de seguridad
owasp-crs-v030001-id913110-scannerdetection 1 Se encontró un encabezado de solicitud asociado con el análisis de seguridad
owasp-crs-v030001-id913120-scannerdetection 1 Se encontró un nombre de archivo o argumento asociado con el análisis de seguridad
owasp-crs-v030001-id913101-scannerdetection 2 Se encontró un usuario-agente asociado con la secuencia de comandos o el cliente HTTP genérico
owasp-crs-v030001-id913102-scannerdetection 2 Se encontró un usuario-agente asociado con el bot o el rastreador web

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 detección de análisis


evaluatePreconfiguredExpr('scannerdetection-stable',
  ['owasp-crs-v030001-id913101-scannerdetection',
  'owasp-crs-v030001-id913102-scannerdetection']
)
          
Nivel 2 de sensibilidad de detección de análisis


evaluatePreconfiguredExpr('scannerdetection-stable')
          

Ataque de protocolo

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id921100-protocolattack 1 Ataque de respuesta a solicitud de HTTP
owasp-crs-v030001-id921110-protocolattack 1 Ataque de respuesta a solicitud de HTTP
owasp-crs-v030001-id921120-protocolattack 1 Ataque de división de respuesta HTTP
owasp-crs-v030001-id921130-protocolattack 1 Ataque de división de respuesta HTTP
owasp-crs-v030001-id921140-protocolattack 1 Ataque de inserción de encabezados HTTP mediante encabezados
owasp-crs-v030001-id921150-protocolattack 1 Ataque de inserción de encabezados HTTP mediante carga útil (detectado CR/LF)
owasp-crs-v030001-id921160-protocolattack 1 Ataque de inserción de encabezados HTTP mediante carga útil (se detectaron nombres de CR/LF y de encabezado)
owasp-crs-v030001-id921151-protocolattack 2 Ataque de inserción de encabezados HTTP mediante carga útil (detectado CR/LF)
owasp-crs-v030001-id921170-protocolattack 3 Contaminación de parámetros HTTP

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 del ataque de protocolo


evaluatePreconfiguredExpr('protocolattack-stable',
  ['owasp-crs-v030001-id921151-protocolattack',
  'owasp-crs-v030001-id921170-protocolattack']
)
          
Nivel 2 de sensibilidad del ataque de protocolo


evaluatePreconfiguredExpr('protocolattack-stable',
  ['owasp-crs-v030001-id921170-protocolattack']
)
          
Nivel 3 de sensibilidad del ataque de protocolo


evaluatePreconfiguredExpr('protocolattack-stable')
          

PHP

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id933100-php 1 Ataque de inserción de PHP: se encontró la etiqueta PHP Open
owasp-crs-v030001-id933110-php 1 Ataque de inserción de PHP: se encontró una carga de archivo de secuencia de comandos de PHP
owasp-crs-v030001-id933120-php 1 Ataque de inserción de PHP: se encontró una directiva de configuración
owasp-crs-v030001-id933130-php 1 Ataque de inserción de PHP: se encontraron variables
owasp-crs-v030001-id933140-php 1 Ataque de inserción de PHP: se encontró una transmisión de E/S
owasp-crs-v030001-id933150-php 1 Ataque de inserción de PHP: nombre de función de PHP de alto riesgo encontrado
owasp-crs-v030001-id933160-php 1 Ataque de inserción de PHP: se encontró una llamada de función de alto riesgo de PHP
owasp-crs-v030001-id933170-php 1 Ataque de inserción de PHP: inserción de objetos en serie
owasp-crs-v030001-id933180-php 1 Ataque de inserción de PHP: se encontró una llamada de función de variable
owasp-crs-v030001-id933151-php 2 Ataque de inserción de PHP: se encontró un nombre de función de PHP de riesgo medio
owasp-crs-v030001-id933131-php 3 Ataque de inserción de PHP: se encontraron variables
owasp-crs-v030001-id933161-php 3 Ataque de inserción de PHP: se encontró una llamada de función de PHP de bajo valor
owasp-crs-v030001-id933111-php 3 Ataque de inserción de PHP: se encontró una carga de archivo de secuencia de comandos de PHP

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 inserción de ataque de PHP


evaluatePreconfiguredExpr('php-stable', ['owasp-crs-v030001-id933151-php',
  'owasp-crs-v030001-id933131-php',
  'owasp-crs-v030001-id933161-php',
  'owasp-crs-v030001-id933111-php']
)
          
Nivel 2 de sensibilidad de inserción de ataque de PHP


evaluatePreconfiguredExpr('php-stable', ['owasp-crs-v030001-id933131-php',
  'owasp-crs-v030001-id933161-php',
  'owasp-crs-v030001-id933111-php']
)
          
Nivel 3 de sensibilidad de inserción de ataque de PHP


evaluatePreconfiguredExpr('php-stable')
          

Corrección de la sesión

ID de firma (ID de regla) Nivel de sensibilidad Descripción
owasp-crs-v030001-id943100-sessionfixation 1 Posible ataque de corrección de sesión: Cómo configurar valores de cookies en HTML
owasp-crs-v030001-id943110-sessionfixation 1 Posible ataque de corrección de sesión: Nombre del parámetro de SessionID con referente fuera del dominio
owasp-crs-v030001-id943120-sessionfixation 1 Posible ataque de corrección de sesión: Nombre del parámetro de SessionID sin referencia

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

Niveles 2, 3 y 4 de sensibilidad de corrección de la sesión


evaluatePreconfiguredExpr('sessionfixation-canary')

¿Qué sigue?