Presentamos una nueva experiencia de consola para AWS WAF
Ahora puede usar la experiencia actualizada para acceder a las funciones de AWS WAF desde cualquier parte de la consola. Para obtener más información, consulta Trabajo con la experiencia de consola actualizada.
Componentes de la solicitud en AWS WAF
En esta sección, se describen los componentes de la solicitud web que puede especificar para su inspección. Especifique el componente solicitado para las instrucciones de regla estándar que buscan patrones en la solicitud web. Estos tipos de sentencias incluyen la coincidencia de cadenas, la coincidencia regex, la restricción de tamaño y las sentencias de ataque por inyección de código SQL. Para obtener información sobre cómo usar esta configuración de los componentes de la solicitud, consulte las instrucciones de reglas individuales en Uso de instrucciones de reglas de coincidencia en AWS WAF.
A menos que se indique lo contrario, si una solicitud web no tiene el componente de solicitud especificado en la instrucción de la regla, AWS WAF considerará que la solicitud no cumple con los criterios de la regla.
nota
Especifique un único componente de solicitud para cada instrucción de regla que lo requiera. Para inspeccionar más de un componente de una solicitud, cree una instrucción de regla para cada componente.
La documentación de la API y la consola de AWS WAF proporcionan instrucciones para la configuración del componente solicitado en las siguientes ubicaciones:
-
Generador de reglas en la consola: en la configuración de Instrucción para un tipo de regla normal, elija el componente que desee inspeccionar en el cuadro de diálogo Inspeccionar de la sección Solicitar componentes.
-
Contenido de la instrucción de API –
FieldToMatch
En el resto de esta sección, se describen las opciones de la parte de la solicitud web que hay que inspeccionar.
Temas
Método HTTP
Comprueba el método HTTP en la solicitud. El método HTTP indica el tipo de operación que la solicitud web pide que realice su recurso protegido, como por ejemplo POST o GET.
Encabezado único
Inspecciona un encabezado con un solo nombre en la solicitud.
Para esta opción, especifique el nombre del encabezado, por ejemplo, User-Agent o Referer. La cadena que coincide con el nombre no distingue entre mayúsculas y minúsculas.
Todos los encabezados
Inspecciona todos los encabezados de las solicitudes, incluidas las cookies. Puede aplicar un filtro para inspeccionar un subconjunto de todos los encabezados.
Para esta opción, debe proporcionar las siguientes especificaciones:
-
Patrones de coincidencia: el filtro que se utilizará para obtener un subconjunto de encabezados para su inspección. AWS WAF busca estos patrones en las claves de encabezados.
La configuración de los patrones de coincidencia puede ser una de las siguientes:
-
Todos: haga coincidir todas las claves. Evalúe los criterios de inspección de las reglas para todos los encabezados.
-
Encabezados excluidos Inspeccione solo los encabezados cuyas claves no coincidan con ninguna de las cadenas que ha especificado aquí. La cadena que coincide con la clave no distingue entre mayúsculas y minúsculas.
-
Encabezados incluidos Inspeccione solo los encabezados que tengan una clave que coincida con una de las cadenas que ha especificado aquí. La cadena que coincide con la clave no distingue entre mayúsculas y minúsculas.
-
-
Alcance de coincidencia: las partes de los encabezados que AWS WAF debería inspeccionar con los criterios de inspección de reglas. Puede especificar Claves, Valores o Todos para inspeccionar tanto las claves como los valores para ver si coinciden.
Todos no precisa una coincidencia en las claves y una coincidencia en los valores. Es necesario encontrar una coincidencia en las claves, en los valores o en ambos. Para exigir una coincidencia en las claves y los valores, utilice una instrucción lógica
ANDpara combinar dos reglas de coincidencia, una que inspeccione las claves y otra que inspeccione los valores. -
Manejo de sobredimensionamiento: ¿Cómo AWS WAF debe gestionar las solicitudes que tienen datos de encabezado más grandes de lo que AWS WAF puede inspeccionar? AWS WAF puede inspeccionar, como máximo, los primeros 8 KB (8192 bytes) de los encabezados de las solicitudes y, como máximo, los primeros 200 encabezados. El contenido está disponible para su inspección por AWS WAF hasta que se alcance el primer límite. Puede elegir continuar con la inspección u omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte Componentes de solicitudes web con tamaño excesivo en AWS WAF.
Orden de encabezados
Inspecciona una cadena que contenga la lista de los nombres de los encabezados de la solicitud, ordenados tal como aparecen en la solicitud web que AWS WAF recibe para su inspección. AWS WAF genera la cadena y, a continuación, la usa como campo para hacer coincidir el componente en su inspección. AWS WAF separa los nombres de los encabezados de la cadena con dos puntos y sin agregar espacios, por ejemplo host:user-agent:accept:authorization:referer.
Para esta opción, debe proporcionar las siguientes especificaciones:
-
Manejo de sobredimensionamiento: ¿Cómo AWS WAF debe gestionar las solicitudes que tienen datos de encabezado más grandes de lo que AWS WAF puede inspeccionar? AWS WAF puede inspeccionar, como máximo, los primeros 8 KB (8192 bytes) de los encabezados de las solicitudes y, como máximo, los primeros 200 encabezados. El contenido está disponible para su inspección por AWS WAF hasta que se alcance el primer límite. Puede elegir continuar con la inspección de los encabezados que estén disponibles, o bien omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte Componentes de solicitudes web con tamaño excesivo en AWS WAF.
Cookies
Inspecciona todas las cookies de solicitud. Puede aplicar un filtro para inspeccionar un subconjunto de todas las cookies.
Para esta opción, debe proporcionar las siguientes especificaciones:
-
Patrones de coincidencia: el filtro que se utilizará para obtener un subconjunto de cookies para su inspección. AWS WAF busca estos patrones en las claves de las cookies.
La configuración de los patrones de coincidencia puede ser una de las siguientes:
-
Todos: haga coincidir todas las claves. Evalúe los criterios de inspección de las reglas para todas las cookies.
-
Cookies excluidas: inspeccione solo las cookies cuyas claves no coincidan con ninguna de las cadenas que ha especificado aquí. La coincidencia de cadena con una clave distingue entre mayúsculas y minúsculas, y debe ser exacta.
-
Encabezados incluidos: inspeccione solo las cookies que tengan una clave que coincida con una de las cadenas que ha especificado aquí. La coincidencia de cadena con una clave distingue entre mayúsculas y minúsculas, y debe ser exacta.
-
-
Alcance de la coincidencia: las partes de las cookies que AWS WAF debe inspeccionar con los criterios de inspección de la regla. Puede especificar Claves, Valores o Todos tanto para las claves como para los valores.
Todos no precisa una coincidencia en las claves y una coincidencia en los valores. Es necesario encontrar una coincidencia en las claves, en los valores o en ambos. Para exigir una coincidencia en las claves y los valores, utilice una instrucción lógica
ANDpara combinar dos reglas de coincidencia, una que inspeccione las claves y otra que inspeccione los valores. -
Manejo de sobredimensionamiento: ¿Cómo AWS WAF debe gestionar las solicitudes que tienen datos de cookies más grandes de lo que AWS WAF puede inspeccionar? AWS WAF puede inspeccionar, como máximo, los primeros 8 KB (8192 bytes) de las cookies de las solicitudes y, como máximo, las primeras 200 cookies. El contenido está disponible para su inspección por AWS WAF hasta que se alcance el primer límite. Puede elegir continuar con la inspección u omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte Componentes de solicitudes web con tamaño excesivo en AWS WAF.
Fragmento de URI
nota
La inspección de fragmentos de URI solo está disponible para las distribuciones de Amazon CloudFront y los equilibradores de carga de aplicación.
Inspecciona la parte de una URL que sigue al símbolo «#» y proporciona información adicional sobre el recurso, por ejemplo, #section2. Para obtener información, consulte Identificador uniforme de recursos (URI): sintaxis genérica
Si no utiliza ninguna transformación de texto con esta opción, AWS WAF no normaliza el fragmento de URI y lo inspecciona exactamente como se recibe del cliente en la solicitud. Para obtener información sobre transformaciones de texto, consulte Uso de transformaciones de texto en AWS WAF.
Requisitos de las instrucciones de reglas
Debe proporcionar un comportamiento alternativo para esta instrucción de regla. El comportamiento alternativo es el estado de coincidencia que desea que AWS WAF asigne a la solicitud web si falta el fragmento de URI o si el servicio asociado no es el Equilibrador de carga de aplicación o CloudFront. Si opta por hacer coincidir, AWS WAF trata la solicitud web como coincidente con la instrucción de regla y aplica la acción de la regla a la solicitud. Si selecciona que no sea coincidente, AWS WAF trata la solicitud como no coincidente con la instrucción de regla.
Ruta de URI
Inspecciona la parte de una URL que identifica un recurso, por ejemplo, /images/daily-ad.jpg. Para obtener información, consulte Identificador uniforme de recursos (URI): sintaxis genérica
Si no utiliza ninguna transformación de texto con esta opción, AWS WAF no normaliza la URI y la inspecciona exactamente como se recibe del cliente en la solicitud. Para obtener información sobre transformaciones de texto, consulte Uso de transformaciones de texto en AWS WAF.
Huella digital JA3
Inspecciona la huella digital JA3 de la solicitud.
nota
La inspección de huellas digitales JA3 solo está disponible para las distribuciones de Amazon CloudFront y los equilibradores de carga de aplicación.
La huella digital JA3 es un hash de 32 caracteres derivado del saludo del cliente TLS de una solicitud entrante. Esta huella digital sirve como identificador único para la configuración de TLS del cliente. AWS WAF calcula y registra esta huella digital para cada solicitud que contenga suficiente información de saludo del cliente TLS para el cálculo. Casi todas las solicitudes web incluyen esta información.
Cómo obtener la huella digital JA3 para un cliente
Puede obtener la huella digital JA3 para las solicitudes de un cliente en los registros del paquete de protección (ACL web). Si AWS WAF es capaz de calcular la huella digital, la incluye en los registros. Para obtener información acerca de los campos de registro, consulte Campos de registro para el tráfico del paquete de protección (ACL web).
Requisitos de las instrucciones de reglas
Puede inspeccionar la huella digital JA3 solo dentro de una instrucción de coincidencia de cadena que esté configurada para que coincida exactamente con la cadena que proporcione. Proporcione la cadena de huella digital JA3 de los registros de la especificación de la instrucción de coincidencia de cadena para que coincida con cualquier solicitud futura que tenga la misma configuración de TLS. Para obtener más información acerca de las instrucciones de reglas de coincidencia de cadena, consulte Instrucción de regla de coincidencia de cadenas.
Debe proporcionar un comportamiento alternativo para esta instrucción de regla. El comportamiento alternativo es el estado de coincidencia que desea que AWS WAF asigne a la solicitud web si AWS WAF no puede calcular la huella digital JA3. Si opta por hacer coincidir, AWS WAF trata la solicitud web como coincidente con la instrucción de regla y aplica la acción de la regla a la solicitud. Si selecciona que no sea coincidente, AWS WAF trata la solicitud como no coincidente con la instrucción de regla.
Para usar esta opción de coincidencia, debe registrar el tráfico del paquete de protección (ACL web). Para obtener más información, consulte Registro del tráfico de paquetes de protección (ACL web) de AWS WAF.
Huella digital JA4
Inspecciona la huella digital JA4 de la solicitud.
nota
La inspección de huellas digitales JA4 solo está disponible para las distribuciones de Amazon CloudFront y los equilibradores de carga de aplicación.
La huella digital JA4 es un hash de 36 caracteres derivado del saludo del cliente TLS de una solicitud entrante. Esta huella digital sirve como identificador único para la configuración de TLS del cliente. La huella digital JA4 es una extensión de la huella digital JA3 que puede dar como resultado un menor número de huellas digitales únicas en algunos navegadores. AWS WAF calcula y registra esta huella digital para cada solicitud que contenga suficiente información de saludo del cliente TLS para el cálculo. Casi todas las solicitudes web incluyen esta información.
Cómo obtener la huella digital JA4 para un cliente
Puede obtener la huella digital JA4 para las solicitudes de un cliente en los registros del paquete de protección (ACL web). Si AWS WAF es capaz de calcular la huella digital, la incluye en los registros. Para obtener información acerca de los campos de registro, consulte Campos de registro para el tráfico del paquete de protección (ACL web).
Requisitos de las instrucciones de reglas
Puede inspeccionar la huella digital JA4 solo dentro de una instrucción de coincidencia de cadena que esté configurada para que coincida exactamente con la cadena que proporcione. Proporcione la cadena de huella digital JA4 de los registros de la especificación de la instrucción de coincidencia de cadena para que coincida con cualquier solicitud futura que tenga la misma configuración de TLS. Para obtener más información acerca de las instrucciones de reglas de coincidencia de cadena, consulte Instrucción de regla de coincidencia de cadenas.
Debe proporcionar un comportamiento alternativo para esta instrucción de regla. El comportamiento alternativo es el estado de coincidencia que desea que AWS WAF asigne a la solicitud web si AWS WAF no puede calcular la huella digital JA4. Si opta por hacer coincidir, AWS WAF trata la solicitud web como coincidente con la instrucción de regla y aplica la acción de la regla a la solicitud. Si selecciona que no sea coincidente, AWS WAF trata la solicitud como no coincidente con la instrucción de regla.
Para usar esta opción de coincidencia, debe registrar el tráfico del paquete de protección (ACL web). Para obtener más información, consulte Registro del tráfico de paquetes de protección (ACL web) de AWS WAF.
Cadena de consulta
Inspecciona la parte de la URL que aparece después de un carácter ?, si hay alguno.
nota
En instrucciones de coincidencia de scripting entre sitios, recomendamos elegir Todos los parámetros de consulta en vez de Cadena de consulta. Si selecciona Todos los parámetros de la consulta, se añaden 10 WCU al coste base.
Parámetro de consulta único
Inspecciona el parametró de consulta único que haya definido como parte de la cadena de consulta. AWS WAF inspecciona el valor del parámetro que especifique.
Para esta opción, también se especifica un Argumento de consulta. Si la dirección URL es www.xyz.com?UserName=abc&SalesRegion=seattle, puede especificar UserName o SalesRegion como argumento de la consulta. La longitud máxima del nombre del argumento es de 30 caracteres. El nombre no distingue entre mayúsculas y minúsculas, por lo que si especifica UserName, AWS WAF busca coincidencias con todas las variantes de UserName, como username y UsERName.
Si la cadena de consulta contiene más de una instancia del argumento de consulta especificado, AWS WAF inspecciona todos los valores para buscar una coincidencia con la lógica de OR. Por ejemplo, en la dirección URL www.xyz.com?SalesRegion=boston&SalesRegion=seattle, AWS WAF evalúa el nombre que ha especificado con boston y seattle. Si alguna de las dos es una coincidencia, la inspección es una coincidencia.
Todos los parámetros de consulta
Inspecciona todos los parámetros de consulta de la solicitud. Esto es igual que la opción del componente “Parámetro de consulta único”, pero AWS WAF inspecciona los valores de todos los argumentos de la cadena de consulta. Por ejemplo, si la dirección URL es www.xyz.com?UserName=abc&SalesRegion=seattle, AWS WAF activa una coincidencia si el valor de UserName o SalesRegion coincide con los criterios de inspección.
Al elegir esta opción, se añaden 10 WCU al coste base.
Cuerpo
Inspecciona el cuerpo de la solicitud evaluada como texto sin formato. También puede evaluar el cuerpo como JSON utilizando el tipo de contenido JSON.
El cuerpo de la solicitud es la parte de la solicitud que sigue inmediatamente a los encabezados de solicitudes. Contiene los datos adicionales necesarios para la solicitud web, como los datos de un formulario.
-
En la consola, seleccione Cuerpo en la opción Solicitud y, a continuación, Texto sin formato en Tipo de contenido.
-
En la API, en la especificación
FieldToMatchde la regla, especifiqueBodypara inspeccionar el cuerpo de la solicitud como texto sin formato.
En el caso de los equilibradores de carga de aplicación y AWS AppSync, AWS WAF puede inspeccionar los primeros 8 KB del cuerpo de una solicitud. Para CloudFront, API Gateway, Amazon Cognito, App Runner y Verified Access, de forma predeterminada, AWS WAF puede inspeccionar los primeros 16 KB y puede aumentar el límite hasta 64 KB en la configuración del paquete de protección (ACL web). Para obtener más información, consulte Consideraciones para gestionar la inspección corporal en AWS WAF.
Debe especificar la gestión del sobredimensionamiento para este tipo de componente. La gestión del sobredimensionamiento define cómo AWS WAF gestiona las solicitudes que contienen datos del cuerpo que son más grandes de lo que AWS WAF puede inspeccionar. Puede elegir continuar con la inspección u omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte Componentes de solicitudes web con tamaño excesivo en AWS WAF.
También puede evaluar el cuerpo como JSON analizado. Para obtener información sobre esto, consulte la sección siguiente.
Cuerpo JSON
Inspecciona el cuerpo de la solicitud, evaluado como JSON. También puede evaluar el cuerpo como texto sin formato.
El cuerpo de la solicitud es la parte de la solicitud que sigue inmediatamente a los encabezados de solicitudes. Contiene los datos adicionales necesarios para la solicitud web, como los datos de un formulario.
-
En la consola, se selecciona en la Opción de solicitud Cuerpo, seleccionando la opción Tipo de contenido JSON.
-
En la API, en la especificación
FieldToMatchde la regla, especifiqueJsonBody.
En el caso de los equilibradores de carga de aplicación y AWS AppSync, AWS WAF puede inspeccionar los primeros 8 KB del cuerpo de una solicitud. Para CloudFront, API Gateway, Amazon Cognito, App Runner y Verified Access, de forma predeterminada, AWS WAF puede inspeccionar los primeros 16 KB y puede aumentar el límite hasta 64 KB en la configuración del paquete de protección (ACL web). Para obtener más información, consulte Consideraciones para gestionar la inspección corporal en AWS WAF.
Debe especificar la gestión del sobredimensionamiento para este tipo de componente. La gestión del sobredimensionamiento define cómo AWS WAF gestiona las solicitudes que contienen datos del cuerpo que son más grandes de lo que AWS WAF puede inspeccionar. Puede elegir continuar con la inspección u omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte Componentes de solicitudes web con tamaño excesivo en AWS WAF.
Al elegir esta opción, se duplica el coste base de las WCU de la instrucción de coincidencia. Por ejemplo, si el coste base de la instrucción de coincidencia es de 5 WCU sin análisis de JSON, el uso del análisis de JSON duplica el coste hasta 10 WCU.
Para esta opción, debe proporcionar especificaciones adicionales como se describe en la siguiente sección.
Cómo AWS WAF gestiona la inspección de cuerpo JSON
Cuando AWS WAF inspecciona el cuerpo de la solicitud web como JSON, realiza los pasos necesarios para analizarlo y extraer los elementos JSON para la inspección. AWS WAF lleva a cabo estos pasos en función de las opciones de configuración.
A continuación, se enumeran los pasos que AWS WAF lleva a cabo.
-
Análisis del contenido del cuerpo: AWS WAF analiza el contenido del cuerpo de la solicitud web para extraer los elementos JSON que se inspeccionarán. AWS WAF hace todo lo posible para analizar todo el contenido del cuerpo, pero el análisis puede fallar debido a una variedad de estados de error en el contenido. Los ejemplos incluyen caracteres no válidos, claves duplicadas, truncamiento y contenido cuyo nodo raíz no es un objeto o una matriz.
La opción Comportamiento alternativo de análisis de cuerpo determina qué debe hacer AWS WAF si no se analiza completamente el cuerpo JSON.
-
Ninguno (comportamiento predeterminado): AWS WAF evalúa el contenido solo hasta el punto en que se ha detectado un error de análisis.
-
Evaluar como cadena: inspeccione el cuerpo como texto no cifrado. AWS WAF aplica las transformaciones de texto y los criterios de inspección definidos para la inspección de JSON a la cadena de texto principal.
-
Match: trate la solicitud web como coincidente con la instrucción de regla. AWS WAF aplica la acción de la regla a la solicitud.
-
Sin coincidencia: trate la solicitud web como no coincidente con la instrucción de regla.
nota
Este comportamiento alternativo solo se activa cuando AWS WAF encuentra un error durante el análisis de la cadena JSON.
El análisis no valida completamente el JSON.
El análisis de AWS WAF no valida completamente la cadena JSON de entrada, por lo que el análisis puede realizarse de manera correcta incluso en el caso de que un JSON no sea válido.
Por ejemplo, AWS WAF analiza el siguiente JSON no válido sin errores:
-
Falta de coma:
{"key1":"value1""key2":"value2"} -
Falta de dos puntos:
{"key1":"value1","key2""value2"} -
Dos puntos adicionales:
{"key1"::"value1","key2""value2"}
En casos como estos, en los que el análisis se realiza correctamente pero el resultado no es un JSON completamente válido, el resultado de los pasos siguientes de la evaluación puede variar. Es posible que la extracción omita algunos elementos o que la evaluación de la regla arroje resultados inesperados. Recomendamos validar el JSON que recibe en su aplicación y administrar el JSON no válido según sea necesario.
-
-
Extracción de los elementos JSON: AWS WAF identifica el subconjunto de elementos JSON que desea inspeccionar en función de la configuración:
-
La opción Alcance de coincidencia de JSON especifica los tipos de elementos JSON que AWS WAF debe inspeccionar.
Puede especificar Claves, Valores o Todos tanto para las claves como para los valores.
Todos no precisa una coincidencia en las claves y una coincidencia en los valores. Es necesario encontrar una coincidencia en las claves, en los valores o en ambos. Para exigir una coincidencia en las claves y los valores, utilice una instrucción lógica
ANDpara combinar dos reglas de coincidencia, una que inspeccione las claves y otra que inspeccione los valores. -
La opción Contenido a inspeccionar especifica cómo filtrar el conjunto de elementos en el subconjunto que desea que AWS WAF inspeccione.
Debe especificar uno de los siguientes:
-
Contenido JSON completo: se evalúan todos los elementos.
-
Solo elementos incluidos: se evalúan solo los elementos cuyas rutas coinciden con los criterios del puntero JSON que usted proporciona. No utilice esta opción para indicar todas las rutas de JSON. En su lugar, utilice Contenido JSON completo.
Para obtener información acerca de la sintaxis del puntero JSON, consulte la documentación del grupo de trabajo de ingeniería de Internet (IETF) sobre el Puntero JavaScript Object Notation (JSON)
. Por ejemplo, en la consola, puede proporcionar lo siguiente:
/dogs/0/name /dogs/1/nameEn la API o la CLI, puede proporcionar lo siguiente:
"IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
-
Por ejemplo, supongamos que la configuración del Contenido a inspeccionar es Solo elementos incluidos, y la configuración de los elementos incluidos es
/a/b.En el siguiente ejemplo de cuerpo JSON:
{ "a":{ "c":"d", "b":{ "e":{ "f":"g" } } } }A continuación, se enumeran los conjuntos de elementos que AWS WAF inspeccionaría para cada ajuste de configuración del alcance de coincidencia de JSON. Tenga en cuenta que la clave
b, que forma parte de la ruta de los elementos incluidos, no se evalúa.-
Todos:
e,f,yg. -
Claves:
eyf. -
Valores:
g.
-
-
Inspección del conjunto de elementos JSON: AWS WAF aplica las transformaciones de texto que haya especificado a los elementos JSON extraídos y luego, compara el conjunto de elementos resultante con los criterios de coincidencia de la instrucción de regla. Este es el mismo comportamiento de transformación y evaluación que se aplica para otros componentes de solicitudes web. Si alguno de los elementos JSON extraídos coincide, la solicitud web coincide con la regla.