Trabajar con condiciones de coincidencia de cadena - AWS WAF, AWS Firewall Manager, y AWS Shield Advanced

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Trabajar con condiciones de coincidencia de cadena

nota

Esta es la documentación de AWS WAF Classic. Solo debe usar esta versión si creó AWS WAF recursos, como reglas y ACL web, AWS WAF antes de noviembre de 2019 y aún no los ha migrado a la última versión. Para migrar los recursos, consulte Migración de sus recursos AWS WAF clásicos a AWS WAF.

Para obtener la versión más reciente de AWS WAF, consulteAWS WAF.

Si desea permitir o bloquear las solicitudes web en función de las cadenas que aparecen en las solicitudes, cree una o más condiciones de coincidencia de cadena. Una condición de coincidencia de cadenas identifica la cadena que desea buscar y la parte de las solicitudes web, como un encabezado específico o la cadena de consulta, que desea que AWS WAF Classic inspeccione en busca de la cadena. Más adelante, cuando cree una ACL web, puede especificar si desea permitir o bloquear las solicitudes que contienen la cadena.

Crear una condición de coincidencia de cadena

Al crear condiciones de coincidencia de cadenas, se especifican filtros que identifican la cadena que se quiere buscar y la parte de las solicitudes web que se desea que AWS WAF Classic inspeccione en busca de esa cadena, como el URI o la cadena de consulta. Puede añadir más de un filtro a una condición de coincidencia de cadena o bien puede crear una condición de coincidencia de cadena independiente para cada filtro. Así es como cada configuración afecta al comportamiento de la AWS WAF versión clásica:

  • Condición de coincidencia de un filtro por cadena: al añadir las condiciones de coincidencia de cadenas independientes a una regla y añadir la regla a una ACL web, las solicitudes web deben cumplir todas las condiciones para que AWS WAF Classic permita o bloquee las solicitudes en función de esas condiciones.

    Por ejemplo, suponga que crea dos condiciones. Una coincide con las solicitudes web que contienen el valor BadBot en el encabezado User-Agent. La otra coincide con las solicitudes web que contienen el valor BadParameter en cadenas de consulta. Al añadir ambas condiciones a la misma regla y añadir la regla a una ACL web, la AWS WAF versión clásica solo permite o bloquea las solicitudes cuando contienen ambos valores.

  • Más de un filtro por condición de coincidencia de cadenas: cuando se agrega una condición de coincidencia de cadenas que contiene varios filtros a una regla y se agrega la regla a una ACL web, una solicitud web solo necesita coincidir con uno de los filtros de la condición de coincidencia de cadenas para que la AWS WAF versión clásica permita o bloquee la solicitud en función de una condición.

    Supongamos que crea una condición en lugar de dos y que la única condición contiene los mismos dos filtros que en el ejemplo anterior. AWS WAF Classic permite o bloquea las solicitudes si están contenidas BadBot en el User-Agent encabezado o BadParameter en la cadena de consulta.

nota

Al añadir una condición de coincidencia de cadenas a una regla, también puede configurar la AWS WAF versión clásica para permitir o bloquear las solicitudes web que no coincidan con los valores de la condición.

Para crear una condición de coincidencia de cadena
  1. Inicie sesión en la AWS WAF consola AWS Management Console y ábrala en https://console.aws.amazon.com/wafv2/.

    Si ve Cambiar a la AWS WAF versión clásica en el panel de navegación, selecciónela.

  2. En el panel de navegación, elija String and regex matching (Coincidencia de cadenas y regex).

  3. Elija Create condition.

  4. Especifique la configuración de filtro aplicable. Para obtener más información, consulte Valores que se pueden especificar al crear o editar condiciones de coincidencia de cadena.

  5. Elija Add filter (Agregar filtro).

  6. Si desea añadir otro filtro, repita los pasos 4 y 5.

  7. Cuando haya terminado de añadir filtros, seleccione Create.

Valores que se pueden especificar al crear o editar condiciones de coincidencia de cadena

Al crear o actualizar una condición de coincidencia de cadena, debe especificar los siguientes valores:

Nombre

Escriba un nombre para la condición de coincidencia de cadena. El nombre solo puede contener caracteres alfanuméricos (A-Z, a-z, 0-9) o los siguientes caracteres especiales: _-!"#`+*},./. No se puede cambiar el nombre de una condición después de crearla.

Tipo

Elija Coincidencia de cadena.

Parte de la solicitud para filtrar en

Elija la parte de cada solicitud web que desee que AWS WAF Classic inspeccione para ver si coincide con la cadena que especificó en Value:

Encabezado

Un encabezado de solicitud específico, por ejemplo, el encabezado User-Agent o Referer. Si elige Header, indique el nombre del encabezado en el campo Header.

Método HTTP

El método HTTP indica el tipo de operación que la solicitud pide al origen que lleve a cabo. CloudFront admite los siguientes métodos: DELETEGET,HEAD, OPTIONSPATCH,POST, yPUT.

Cadena de consulta

Es la parte de una URL que aparece después de un carácter ?, si hay alguno.

URI

La ruta del URI de la solicitud, que identifica el recurso, por ejemplo, /images/daily-ad.jpg. Esto no incluye la cadena de consulta ni los componentes del fragmento del URI. Para obtener información, consulte Identificador uniforme de recursos (URI): sintaxis genérica.

A menos que se especifique una transformación, el URI no se normaliza y se inspecciona tal y como lo AWS recibe del cliente como parte de la solicitud. Una transformación reformateará el URI según se especifique.

Cuerpo

Es la parte de una solicitud que contiene los datos adicionales que desea enviar a su servidor web como cuerpo de la solicitud HTTP, por ejemplo, los datos de un formulario.

nota

Si, por el contrario, elige Cuerpo para el valor de Parte de la consulta que se va a filtrar, AWS WAF Classic solo inspeccionará los primeros 8192 bytes (8 KB). Para permitir o bloquear solicitudes cuyo cuerpo tenga más de 8192 bytes, puede crear una condición de restricción de tamaño. (AWS WAF Classic obtiene la longitud del cuerpo de los encabezados de las solicitudes). Para obtener más información, consulte Trabajar con condiciones de restricción de tamaño.

Parámetro de consulta único (solo valor)

Cualquier parámetro que haya definido como parte de la cadena de consulta. Por ejemplo, si la URL es «www.xyz.com? UserName =abc& SalesRegion =seattle», puede añadir un filtro al parámetro o. UserNameSalesRegion

Si hay parámetros duplicados en la cadena de consulta, los valores se evalúan como "OR". Es decir, ambos valores activarán una coincidencia. Por ejemplo, en la URL «www.xyz.com? SalesRegion =boston& SalesRegion =seattle», si aparece «boston» o «seattle» en Value to match, se activará una coincidencia.

Si elige Single query parameter (value only) (Parámetro de consulta único [solo valor]), también debe especificar un Query parameter name (Nombre de parámetro de consulta). Este es el parámetro de la cadena de consulta que va a inspeccionar, como o. UserNameSalesRegion La longitud máxima del Query parameter name (Nombre de parámetro de consulta) es de 30 caracteres. Query parameter name (Nombre de parámetro de consulta) no distingue entre mayúsculas y minúsculas. Por ejemplo, si lo especificas UserNamecomo nombre del parámetro de consulta, coincidirá con todas las variantes UserName, como username y userName.

Todos los parámetros de consulta (solo valores)

Similar al parámetro de consulta único (solo valor), pero en lugar de inspeccionar el valor de un solo parámetro, AWS WAF Classic inspecciona el valor de todos los parámetros de la cadena de consulta para ver si el valor coincide. Por ejemplo, si la URL es «www.xyz.com? UserName =abc& SalesRegion =seattle» y selecciona Todos los parámetros de la consulta (solo valores), AWS WAF Classic activará una coincidencia si el valor de alguno UserNamede ellos se especifica como el valor que debe coincidir. SalesRegion

Encabezado (solo cuando "Parte de la solicitud para filtrar en" es "Encabezado")

Si seleccionó Encabezado de la parte de la lista de solicitudes que desea filtrar, elija un encabezado de la lista de encabezados comunes o introduzca el nombre del encabezado que desee que Classic inspeccione. AWS WAF

Tipo de coincidencia

En la parte de la solicitud que desee que inspeccione AWS WAF Classic, elija dónde debe aparecer la cadena Value con la que desea que coincida con este filtro:

Contiene

La cadena aparece en cualquier lugar de la parte especificada de la solicitud.

Contiene palabra

La parte especificada de la solicitud web debe incluir Value to match (Valor que debe coincidir) y Value to match debe contener únicamente caracteres alfanuméricos o guion bajo (A-Z, a-z, 0-9 o _). Además, Value to match debe ser una palabra, lo que significa una de las siguientes opciones:

  • Value to match (Valor que debe coincidir) coincide exactamente con el valor de la parte especificada de la solicitud web, como, por ejemplo, el valor de un encabezado.

  • Value to match (Valor que debe coincidir) está al principio de la parte especificada de la solicitud web y le sigue un carácter que no es alfanumérico ni guion bajo (_), por ejemplo, BadBot;.

  • Value to match (Valor que debe coincidir) está al final de la parte especificada de la solicitud web y le precede un carácter que no es alfanumérico ni guion bajo (_), por ejemplo, ;BadBot.

  • Value to match (Valor que debe coincidir) está en la mitad de la parte especificada de la solicitud web y va precedida y seguida de caracteres que no son alfanuméricos ni guion bajo (_), por ejemplo, -BadBot;.

Coincidencia exacta

La cadena y el valor de la parte especificada de la solicitud son idénticas.

Empieza por

La cadena aparece al principio de la parte especificada de la solicitud.

Acaba con

La cadena aparece al final de la parte especificada de la solicitud.

Transformación

Una transformación reformatea una solicitud web antes de que AWS WAF Classic la inspeccione. Esto elimina algunos de los formatos poco habituales que los atacantes utilizan en las solicitudes web para evitar AWS WAF la versión clásica.

Solo puede especificar un único tipo de transformación de texto.

Las transformaciones pueden realizar las siguientes operaciones:

Ninguna

AWS WAF Classic no realiza ninguna transformación de texto en la solicitud web antes de inspeccionarla para comprobar si coincide con la cadena de Value.

Cambiar a minúsculas

AWS WAF Classic convierte las letras mayúsculas (A-Z) en minúsculas (a-z).

Descodificar en HTML

AWS WAF La versión clásica reemplaza los caracteres codificados en HTML por caracteres no codificados:

  • Sustituye " por &

  • Sustituye   por un espacio de no separación

  • Sustituye &lt; por <

  • Sustituye &gt; por >

  • Sustituye los caracteres representados con formato hexadecimal, &#xhhhh;, por los caracteres correspondientes

  • Sustituye los caracteres representados con formato decimal, &#nnnn;, por los caracteres correspondientes

Normalizar espacios en blanco

AWS WAF La versión clásica reemplaza los siguientes caracteres por un carácter de espacio (32 decimales):

  • \f, salto de página, 12 decimales

  • \t, pestaña, 9 decimales

  • \n, línea nueva, 10 decimales

  • \r, salto de línea, 13 decimales

  • \v, pestaña vertical, 11 decimales

  • espacio de no separación, 160 decimales

Además, esta opción sustituye varios espacios por un espacio.

Simplificar la línea de comandos

Si le preocupa que un atacante inyecte un comando de la línea de comandos del sistema operativo y utilice un formato inusual para ocultar parte o todo el comando, utilice esta opción para realizar las siguientes transformaciones:

  • Eliminar los siguientes caracteres: \ " ' ^

  • Eliminar los espacios delante de los siguientes caracteres: / (

  • Sustituir los siguientes caracteres por un espacio: , ;

  • Sustituir varios espacios por un espacio

  • Convertir las mayúsculas (A-Z) en minúsculas (a-z)

Descodificar la URL

Descodifique una solicitud de URL codificada.

El valor se codifica con base64

Si el valor de Value to match (Valor que debe coincidir) tiene codificación base64, seleccione esta casilla de verificación. Utilice la codificación base64 para especificar caracteres no imprimibles, como pestañas y saltos de línea, que los atacantes incluyen en sus solicitudes.

Valor que debe coincidir

Especifique el valor que desea que AWS WAF Classic busque en las solicitudes web. La longitud máxima es de 50 bytes. Si su valor tiene codificación base64, la longitud máxima de 50 bytes se aplica al valor antes de codificarlo.

Agregar y eliminar filtros en una condición de coincidencia de cadena

Puede añadir o eliminar filtros en una condición de coincidencia de cadena. Para cambiar un filtro, añada uno nuevo y elimine el viejo.

Para añadir o eliminar filtros en una condición de coincidencia de cadena
  1. Inicie sesión AWS Management Console y abra la AWS WAF consola en https://console.aws.amazon.com/wafv2/.

    Si ve Cambiar a la AWS WAF versión clásica en el panel de navegación, selecciónela.

  2. En el panel de navegación, elija String and regex matching (Coincidencia de cadenas y regex).

  3. Elija la condición para la que desea añadir o eliminar filtros.

  4. Para añadir filtros, siga los siguientes pasos:

    1. Elija Add filter (Agregar filtro).

    2. Especifique la configuración de filtro aplicable. Para obtener más información, consulte Valores que se pueden especificar al crear o editar condiciones de coincidencia de cadena.

    3. Elija Add (Agregar).

  5. Para eliminar filtros, siga los siguientes pasos:

    1. Seleccione el filtro que desea eliminar.

    2. Elija Eliminar filtro.

Eliminar condiciones de coincidencia de cadena

Si desea eliminar una condición de coincidencia de cadena, primero debe eliminar todos los filtros de la condición y borrar la condición de todas las reglas que la utilizan, tal y como se describe en el siguiente procedimiento.

Para eliminar una condición de coincidencia de cadena
  1. Inicie sesión AWS Management Console y abra la AWS WAF consola en https://console.aws.amazon.com/wafv2/.

    Si ve Cambiar a la AWS WAF versión clásica en el panel de navegación, selecciónela.

  2. Quite la condición de coincidencia de cadena de las reglas que la utilizan:

    1. En el panel de navegación, seleccione Reglas.

    2. Elija el nombre de una regla que utilice la condición de coincidencia de cadena que desea eliminar.

    3. En el panel de la derecha, elija Edit rule (Editar regla).

    4. Elija la X situada al lado de la condición que desea eliminar.

    5. Seleccione Actualizar.

    6. Repita estos pasos para todas las demás reglas que utilizan la condición de coincidencia de cadena que desea eliminar.

  3. Quite los filtros de la condición que desea eliminar:

    1. En el panel de navegación, elija String and regex matching (Coincidencia de cadenas y regex).

    2. Elija el nombre de la condición de coincidencia de cadena que desea eliminar.

    3. En el panel de la derecha, elija la casilla de verificación situada junto a Filter para seleccionar todos los filtros.

    4. Elija Delete filter (Eliminar filtro).

  4. En el panel de navegación, elija String and regex matching (Coincidencia de cadenas y regex).

  5. En el panel String and regex match conditions, elija la condición de coincidencia de cadena que desea eliminar.

  6. Elija Delete (Eliminar) para eliminar la condición seleccionada.