Reglas y grupos de reglas de CRS de Firewall de aplicaciones Web

El firewall de aplicaciones web de Application Gateway protege las aplicaciones web de las vulnerabilidades más habituales. Esta operación se realiza con las reglas que se definen en función de los conjuntos de reglas de OWASP Core 3.2, 3.1, 3.0 o 2.2.9. Estas reglas se pueden deshabilitar individualmente. En este artículo se incluyen las reglas y los conjuntos de reglas actuales que se ofrecen. En el caso poco probable de que sea necesario actualizar un conjunto de reglas publicado, se documentará aquí.

Conjuntos de reglas principales

El WAF de Application Gateway está preconfigurado con CRS 3.0 de manera predeterminada. Pero puede elegir usar CRS 3.2, 3.1 o 2.2.9 en su lugar.

CRS 3.2 (versión preliminar pública) ofrece un nuevo motor y nuevos conjuntos de reglas que protegen contra infecciones de Java, un conjunto inicial de comprobaciones de carga de archivos, falsos positivos corregidos y mucho más.

CRS 3.1 ofrece menos falsos positivos en comparación con CRS 3.0 y 2.2.9. También puede personalizar reglas para satisfacer sus necesidades.

Administra reglas

El WAF brinda protección contra las vulnerabilidades web siguientes:

  • Ataques por inyección de código SQL.
  • Ataques por scripts entre sitios.
  • Otros ataques comunes, como la inyección de comandos, el contrabando de solicitudes HTTP, la división de respuestas HTTP y la inclusión de archivos remotos.
  • Infracciones del protocolo HTTP.
  • Anomalías del protocolo HTTP, como la falta de agentes de usuario de host y encabezados de aceptación.
  • Bots, rastreadores y escáneres
  • Errores de configuración comunes de las aplicaciones (por ejemplo, Apache e IIS).

OWASP CRS 3.2 (versión preliminar pública)

CRS 3.2 incluye 13 grupos de reglas, tal como se muestra en la tabla siguiente. Cada grupo contiene varias reglas, las que se pueden deshabilitar.

Nota

CRS 3.2 solo está disponible en la SKU WAF_v2.

Grupo de reglas Descripción
General Grupo general
REQUEST-911-METHOD-ENFORCEMENT Métodos de bloqueo (PUT, PATCH)
REQUEST-913-SCANNER-DETECTION Protección contra los escáneres de puertos y entornos
REQUEST-920-PROTOCOL-ENFORCEMENT Protección contra problemas de protocolo y codificación
REQUEST-921-PROTOCOL-ATTACK Protección contra ataques por inyección de encabezado, contrabando de solicitudes y división de respuestas
REQUEST-930-APPLICATION-ATTACK-LFI Protección contra ataques a archivos y rutas de acceso
REQUEST-931-APPLICATION-ATTACK-RFI Protección contra ataques por inclusión de archivos remotos (RFI)
REQUEST-932-APPLICATION-ATTACK-RCE Protección contra ataques de ejecución de código remoto
REQUEST-933-APPLICATION-ATTACK-PHP Protección contra ataques por inyección de código PHP
REQUEST-941-APPLICATION-ATTACK-XSS Protección contra ataques por scripts entre sitios
REQUEST-942-APPLICATION-ATTACK-SQLI Protección contra ataques por inyección de código SQL
REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION Protección contra ataques por fijación de sesión
REQUEST-944-APPLICATION-ATTACK-SESSION-JAVA Protección contra ataques de JAVA

OWASP CRS 3.1

CRS 3.1 incluye 13 grupos de reglas, tal como se muestra en la tabla siguiente. Cada grupo contiene varias reglas, las que se pueden deshabilitar.

Nota

CRS 3.1 solo está disponible en la SKU WAF_v2.

Grupo de reglas Descripción
General Grupo general
REQUEST-911-METHOD-ENFORCEMENT Métodos de bloqueo (PUT, PATCH)
REQUEST-913-SCANNER-DETECTION Protección contra los escáneres de puertos y entornos
REQUEST-920-PROTOCOL-ENFORCEMENT Protección contra problemas de protocolo y codificación
REQUEST-921-PROTOCOL-ATTACK Protección contra ataques por inyección de encabezado, contrabando de solicitudes y división de respuestas
REQUEST-930-APPLICATION-ATTACK-LFI Protección contra ataques a archivos y rutas de acceso
REQUEST-931-APPLICATION-ATTACK-RFI Protección contra ataques por inclusión de archivos remotos (RFI)
REQUEST-932-APPLICATION-ATTACK-RCE Protección contra ataques de ejecución de código remoto
REQUEST-933-APPLICATION-ATTACK-PHP Protección contra ataques por inyección de código PHP
REQUEST-941-APPLICATION-ATTACK-XSS Protección contra ataques por scripts entre sitios
REQUEST-942-APPLICATION-ATTACK-SQLI Protección contra ataques por inyección de código SQL
REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION Protección contra ataques por fijación de sesión
REQUEST-944-APPLICATION-ATTACK-SESSION-JAVA Protección contra ataques de JAVA

OWASP CRS 3.0

CRS 3.0 incluye 12 grupos de reglas, tal como se muestra en la tabla siguiente. Cada grupo contiene varias reglas, las que se pueden deshabilitar.

Grupo de reglas Descripción
General Grupo general
REQUEST-911-METHOD-ENFORCEMENT Métodos de bloqueo (PUT, PATCH)
REQUEST-913-SCANNER-DETECTION Protección contra los escáneres de puertos y entornos
REQUEST-920-PROTOCOL-ENFORCEMENT Protección contra problemas de protocolo y codificación
REQUEST-921-PROTOCOL-ATTACK Protección contra ataques por inyección de encabezado, contrabando de solicitudes y división de respuestas
REQUEST-930-APPLICATION-ATTACK-LFI Protección contra ataques a archivos y rutas de acceso
REQUEST-931-APPLICATION-ATTACK-RFI Protección contra ataques por inclusión de archivos remotos (RFI)
REQUEST-932-APPLICATION-ATTACK-RCE Protección contra ataques de ejecución de código remoto
REQUEST-933-APPLICATION-ATTACK-PHP Protección contra ataques por inyección de código PHP
REQUEST-941-APPLICATION-ATTACK-XSS Protección contra ataques por scripts entre sitios
REQUEST-942-APPLICATION-ATTACK-SQLI Protección contra ataques por inyección de código SQL
REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION Protección contra ataques por fijación de sesión

OWASP CRS 2.2.9

CRS 2.2.9 incluye 10 grupos de reglas, tal como se muestra en la tabla siguiente. Cada grupo contiene varias reglas, las que se pueden deshabilitar.

Grupo de reglas Descripción
crs_20_protocol_violations Protección contra infracciones de protocolo (como caracteres no válidos o GET con un cuerpo de solicitud)
crs_21_protocol_anomalies Protección contra información de encabezados incorrecta
crs_23_request_limits Protección contra argumentos o archivos que superan las limitaciones
crs_30_http_policy Protección contra métodos, encabezados y tipos de archivo restringidos
crs_35_bad_robots Protección contra escáneres y rastreadores web
crs_40_generic_attacks Protección contra ataques genéricos (como fijación de sesión, inclusión de archivos remotos e inyección de código PHP)
crs_41_sql_injection_attacks Protección contra ataques por inyección de código SQL
crs_41_xss_attacks Protección contra ataques por scripts entre sitios
crs_42_tight_security Protección contra ataques punto punto barra
crs_45_trojans Protección contra troyanos de puerta trasera

Los siguientes grupos de reglas y reglas están disponibles cuando se usa el Firewall de aplicaciones web en Application Gateway.

Conjuntos de reglas de la versión 3.2

General

Identificador de regla Descripción
200004 Posible límite sin coincidencia con varias partes.

REQUEST-911-METHOD-ENFORCEMENT

Identificador de regla Descripción
911100 Método no permitido por la directiva

REQUEST-913-SCANNER-DETECTION

Identificador de regla Descripción
913100 Se ha encontrado un agente de usuario asociado a un examen de seguridad.
913101 Se ha encontrado un agente de usuario asociado al cliente HTTP genérico o de scripts.
913102 Se ha encontrado un agente de usuario asociado a un robot o agente de búsqueda.
913110 Se ha encontrado un encabezado de solicitud asociado a un examen de seguridad.
913120 Se ha encontrado un argumento o nombre de archivo de solicitud asociado a un examen de seguridad.

REQUEST-920-PROTOCOL-ENFORCEMENT

Identificador de regla Descripción
920100 Línea de solicitud HTTP no válida
920120 Intento de omisión multiparte/datos de formulario
920121 Intento de omisión multiparte/datos de formulario
920160 El encabezado Content-Length HTTP no es numérico.
920170 Solicitud GET o HEAD con contenido del cuerpo
920171 GET o solicitud HEAD con codificación de transferencia.
920180 Falta el encabezado Content-Length en la solicitud POST.
920190 Intervalo: último valor de bytes no válido.
920200 Intervalo: demasiados campos (6 o más).
920201 Intervalo: Demasiados campos para solicitud PDF (35 o más)
920202 Intervalo: Demasiados campos para solicitud PDF (6 o más)
920210 Se han encontrado múltiples datos de encabezado de conexión en conflicto.
920220 Intento de ataque de abuso de codificación de direcciones URL
920230 Varias codificaciones de direcciones URL detectadas
920240 Intento de ataque de abuso de codificación de direcciones URL
920250 Intento de ataque de abuso de codificación UTF8
920260 Intento de ataque de abuso de caracteres de ancho medio y ancho completo Unicode
920270 Carácter no válido en la solicitud (carácter nulo)
920271 Carácter no válido en la solicitud (caracteres no imprimibles)
920272 Carácter no válido en la solicitud (fuera de los caracteres imprimibles, por debajo de ASCII 127)
920273 Carácter no válido en la solicitud (fuera de conjunto muy estricto)
920274 Carácter no válido en encabezados de solicitud (fuera de conjunto muy estricto)
920280 Falta un encabezado host en la solicitud.
920290 Encabezado host vacío
920310 La solicitud tiene un encabezado de aceptación (Accept) vacío.
920311 La solicitud tiene un encabezado de aceptación (Accept) vacío.
920320 Falta el encabezado de agente de usuario.
920330 Encabezado de agente de usuario vacío
920340 La solicitud tiene contenido, pero falta el encabezado Content-Type.
920341 La solicitud que tiene contenido requiere encabezado Content-Type
920350 El encabezado host es una dirección IP numérica.
920420 Tipo de contenido de solicitud no permitido por una directiva
920430 Versión del protocolo HTTP no permitida por una directiva
920440 Extensión de archivo URL restringida por una directiva
920450 Encabezado HTTP restringido por una directiva (%{MATCHED_VAR})
920460 Caracteres de escape anómalos
920470 Encabezado de tipo de contenido no válido
920480 Restricción del parámetro del juego de caracteres con el encabezado Content-Type

REQUEST-921-PROTOCOL-ATTACK

Identificador de regla Descripción
921110 Ataque de contrabando de solicitudes HTTP
921120 Ataque de división de respuestas HTTP
921130 Ataque de división de respuestas HTTP
921140 Ataque por inyección de encabezado HTTP a través de encabezados
921150 Ataque por inyección de encabezado HTTP a través de la carga (Retorno de carro / Avance de línea detectado)
921151 Ataque por inyección de encabezado HTTP a través de la carga (Retorno de carro / Avance de línea detectado)
921160 Ataque por inyección de encabezado HTTP a través de la carga (Retorno de carro/Avance de línea y header-name detectados)
921170 Polución de parámetros HTTP
921180 Polución de parámetros HTTP (%{TX.1})

REQUEST-930-APPLICATION-ATTACK-LFI

Identificador de regla Descripción
930100 Ataque punto punto barra (/.. /)
930110 Ataque punto punto barra (/.. /)
930120 Intento de acceso a archivo del sistema operativo
930130 Intento de acceso a archivo restringido

REQUEST-931-APPLICATION-ATTACK-RFI

Identificador de regla Descripción
931100 Posible ataque remoto de inclusión de archivos (RFI): el parámetro de dirección URL utiliza una dirección IP
931110 Posible ataque remoto de inclusión de archivos (RFI): nombre de parámetro vulnerable de RFI común utilizado con carga de dirección URL
931120 Posible ataque remoto de inclusión de archivos (RFI): carga de dirección URL utilizada con carácter de interrogación de cierre (?)
931130 Posible ataque remoto de inclusión de archivos (RFI): referencia o vínculo fuera del dominio

REQUEST-932-APPLICATION-ATTACK-RCE

Identificador de regla Descripción
932100 Ejecución de comandos remotos: Inyección de comandos Unix
932105 Ejecución de comandos remotos: Inyección de comandos Unix
932106 Ejecución de comandos remotos: Inyección de comandos Unix
932110 Ejecución de comandos remotos: Inyección de comando de Windows
932115 Ejecución de comandos remotos: Inyección de comando de Windows
932120 Ejecución de comandos remotos: comando de Windows PowerShell encontrado
932130 Ejecución de comandos remotos: expresión de shell de Unix encontrada
932140 Ejecución de comandos remotos: comando FOR/IF de Windows encontrado
932150 Ejecución de comandos remotos: Ejecución directa de comandos de Unix
932160 Ejecución de comandos remotos: código de shell de Unix encontrado
932170 Ejecución de comandos remotos: Shellshock (CVE-2014-6271)
932171 Ejecución de comandos remotos: Shellshock (CVE-2014-6271)
932180 Intento de acceso a archivo restringido
932190 Ejecución de comandos remotos: Intento de la técnica de carácter comodín

REQUEST-933-APPLICATION-ATTACK-PHP

Identificador de regla Descripción
933100 Ataque por inyección en PHP: etiqueta de apertura o cierre encontrada
933110 Ataque por inyección en PHP: Carga de archivos de script PHP encontrada
933111 Ataque por inyección en PHP: Carga de archivos de script PHP encontrada
933120 Ataque por inyección en PHP: directiva de configuración encontrada
933130 Ataque por inyección en PHP: Variables encontradas
933131 Ataque por inyección en PHP: Variables encontradas
933140 Ataque por inyección en PHP: Flujo de E/S encontrado
933150 Ataque por inyección en PHP: nombre de función de PHP de alto riesgo encontrado
933151 Ataque por inyección en PHP: Se encontró un nombre de función PHP de riesgo medio
933160 Ataque por inyección en PHP: llamada de función de PHP de alto riesgo encontrada
933161 Ataque por inyección en PHP: Se encontró una llamada de función de PHP de valor bajo
933170 Ataque por inyección en PHP: Inyección de objetos serializados
933180 Ataque por inyección en PHP: se ha encontrado llamada de función de variable
933190 Ataque por inyección en PHP: Se encontró una etiqueta de cierre PHP
933200 Ataque por inyección de PHP: esquema contenedor
933210 Ataque por inyección en PHP: llamada de función de variable encontrada

REQUEST-941-APPLICATION-ATTACK-XSS

Identificador de regla Descripción
941100 Ataque XSS detectado mediante libinjection
941101 Ataque XSS detectado mediante libinjection
941110 Filtro XSS - Categoría 1: vector de etiqueta de script
941120 Filtro XSS - Categoría 2: vector del controlador de eventos
941130 Filtro XSS - Categoría 3: vector de atributo
941140 Filtro XSS - Categoría 4: vector URI de JavaScript
941150 Filtro XSS - Categoría 5: atributos HTML no permitidos
941160 NoScript XSS InjectionChecker: Inyección HTML
941170 NoScript XSS InjectionChecker: Inyección de atributo
941180 Palabras clave de lista negra de node-validator
941190 XSS mediante hojas de estilos
941200 XSS mediante fotogramas VML
941210 XSS mediante JavaScript ofuscado
941220 XSS mediante VBScript ofuscado
941230 XSS mediante etiqueta "embed"
941240 XSS mediante el atributo "import" o "implementación"
941250 Filtros XSS de IE: ataque detectado
941260 XSS mediante la etiqueta "meta"
941270 XSS mediante href "link"
941280 XSS mediante la etiqueta "base"
941290 XSS mediante la etiqueta "applet"
941300 XSS mediante la etiqueta "object"
941310 Filtro XSS de codificación mal formulada US-ASCII: ataque detectado
941320 Posible ataque XSS detectado: controlador de etiquetas HTML
941330 Filtros XSS de IE: ataque detectado
941340 Filtros XSS de IE: ataque detectado
941350 XSS de IE con codificación UTF-7: ataque detectado
941360 Ofuscación de JavaScript detectada

REQUEST-942-APPLICATION-ATTACK-SQLI

Identificador de regla Descripción
942100 Ataque por inyección de código SQL detectado mediante libinjection
942110 Ataque por inyección de código SQL: Pruebas de inyección de código detectadas
942120 Ataque por inyección de código SQL: Se detectó un operador SQL
942130 Ataque por inyección de código SQL: Tautología de SQL detectada.
942140 Ataque por inyección de código SQL: nombres de base de datos comunes detectados
942150 Ataque por inyección de código SQL
942160 Detección de pruebas de inyección de código SQL a ciegas mediante sleep() o benchmark()
942170 Detección de intentos de inyección con las funciones benchmark y sleep que incluyen consultas condicionales
942180 Detecta intentos básicos de omisión de la autenticación SQL 1/3
942190 Detecta la ejecución de código MSSQL y los intentos de recopilación de información
942200 Detecta inyecciones de código MySQL cuyo espacio o comentarios resultan confusos y terminaciones con el carácter de acento grave
942210 Detecta los intentos de inyección de SQL encadenado 1/2
942220 En busca de ataques de desbordamiento de enteros; estos se toman de skipfish, excepto 3.0.00738585072007e-308, que es el bloqueo de "número mágico".
942230 Detección de intentos de inyección de código SQL condicionales
942240 Detecta el modificador de los juegos de caracteres de MySQL y los intentos de DoS MSSQL
942250 Detecta la coincidencia, la combinación y la ejecución de inyecciones inmediatas
942251 Detección de inyecciones HAVING
942260 Detecta intentos básicos de omisión de la autenticación SQL (2/3)
942270 Búsqueda de inyección de código SQL básico Cadena de ataque común para mySQL, Oracle y otros.
942280 Detecta la inyección de pg_sleep de Postgres, los ataques de retraso de WAITFOR y los intentos de cierre de base de datos
942290 Búsqueda de intentos de inyección de código SQL MongoDB básico
942300 Detecta comentarios, condiciones e inyecciones de caracteres de MySQL
942310 Detecta los intentos de inyección de SQL encadenado 2/2
942320 Detección de inyecciones de funciones o procedimientos almacenados de MySQL y PostgreSQL
942330 Detecta sondeos clásicos de inyección de código SQL (1/2)
942340 Detecta intentos básicos de omisión de la autenticación SQL (3/3)
942350 Detección de intentos de inyección de UDF MySQL y otras manipulaciones de datos o estructuras
942360 Detecta intentos concatenados de SQLLFI e inyecciones de código SQL básicas
942361 Detecta la inyección de SQL básica basada en la palabra clave alter o union
942370 Detecta sondeos clásicos de inyección de código SQL (2/2)
942380 Ataque por inyección de código SQL
942390 Ataque por inyección de código SQL
942400 Ataque por inyección de código SQL
942410 Ataque por inyección de código SQL
942420 Restringe la detección de anomalías de caracteres de SQL (cookies): número de caracteres especiales que se han excedido (8)
942421 Restringe la detección de anomalías de caracteres de SQL (cookies): número de caracteres especiales que se han excedido (3)
942430 Restringe la detección de anomalías de caracteres de SQL (args): número de caracteres especiales que se han excedido (12)
942431 Restringe la detección de anomalías de caracteres de SQL (args): número de caracteres especiales que se han excedido (6)
942432 Restringe la detección de anomalías de caracteres de SQL (args): número de caracteres especiales que se han excedido (2)
942440 Secuencia de comentario SQL detectada
942450 Codificación hexadecimal de SQL identificada
942460 Alerta de detección de anomalías de metacaracteres: repetición de caracteres que no se usan en las palabras
942470 Ataque por inyección de código SQL
942480 Ataque por inyección de código SQL
942490 Detecta sondeos clásicos de inyección de código SQL 3/3
942500 Comentario en línea de MySQL detectado.

REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION

Identificador de regla Descripción
943100 Posible ataque de fijación de sesión: definición de valores de cookies en HTML
943110 Posible ataque de fijación de sesión: Nombre del parámetro SessionID con origen de referencia fuera del dominio
943120 Posible ataque de fijación de sesión: nombre del parámetro SessionID con origen de referencia fuera del dominio

REQUEST-944-APPLICATION-ATTACK-JAVA

Identificador de regla Descripción
944100 Ejecución remota de comandos: Apache Struts, Oracle WebLogic
944110 Detecta la ejecución de la carga útil potencial.
944120 Ejecución de la carga posible y ejecución de comandos remotos
944130 Clases de Java sospechosas
944200 Aprovechamiento de la deserialización de Java Apache Commons
944210 Posible uso de la serialización de Java
944240 Ejecución remota de comandos: serialización de Java
944250 Ejecución remota de comandos: se detectó un método de Java sospechoso
944300 Una cadena codificada en Base64 coincidió con una palabra clave sospechosa

Pasos siguientes