Trabajar con condiciones de coincidencia de regex - 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 regex

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 coinciden con un patrón de expresión regular (regex) que aparece en las solicitudes, cree una o más condiciones de coincidencia de regex. Una condición de coincidencia de expresiones regulares es un tipo de condición de coincidencia de cadenas que identifica el patrón 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 para detectar el patrón. Más adelante, cuando cree una ACL web, puede especificar si desea permitir o bloquear las solicitudes que contienen el patrón.

Crear una condición de coincidencia de regex

Al crear condiciones de coincidencia de regex, debe especificar conjuntos de patrones que identifican la cadena (con una expresión regular) que desea buscar. A continuación, añada esos conjuntos de patrones a los filtros que especifican la parte de las solicitudes web que desea que AWS WAF Classic inspeccione en busca de ese conjunto de patrones, como el URI o la cadena de consulta.

Puede añadir varias expresiones regulares a un único conjunto de patrones. Si lo hace, esas expresiones se combinan con un OR. Es decir, una solicitud web coincidirá con el conjunto de patrones si la parte correspondiente de la solicitud coincide con cualquiera de las expresiones que se enumeran.

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

AWS WAF Classic es compatible con la mayoría de las expresiones regulares compatibles con Perl (PCRE) estándar. Sin embargo, no se admiten las siguientes:

  • Referencias a elementos anteriores y subexpresiones de captura

  • Aserciones arbitrarias de ancho cero

  • Referencias de subrutinas y patrones recursivos

  • Patrones condicionales

  • Verbos de control de búsqueda de datos anteriores

  • La directiva \C de byte único

  • La directiva \R de coincidencia de nueva línea

  • El inicio \K de la directiva de restablecimiento de coincidencia

  • Llamadas y código incrustado

  • Cuantificadores atómicos de agrupamiento y posesivos

Para crear una condición de coincidencia de regex
  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 Los valores que especifique al crear o editar las condiciones de RegEx coincidencia.

  5. Elija Create pattern set and add filter (Crear conjunto de patrones y agregar filtro) (si ha creado un nuevo conjunto de patrones) o Add filter (Add filter) si ha utilizado un conjunto de patrones existente.

  6. Seleccione Crear.

Los valores que especifique al crear o editar las condiciones de RegEx coincidencia

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

Nombre

Escriba un nombre para la condición de coincidencia de regex. 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 Regex match.

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 el patrón 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», un patrón que coincida con «boston» o «seattle» en Value to match 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 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 comprobar si coincide con el patrón especificado en el valor. Por ejemplo, en la URL «www.xyz.com? UserName =abc& SalesRegion =seattle», un patrón de Value to match que coincida con el valor de o provoque una coincidencia. UserNameSalesRegion

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

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

Transformación

Una transformación reformatea una solicitud web antes de que AWS WAF Classic la inspeccione. De este modo, se eliminan 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.

Patrón de expresión regular que coincide con la solicitud

Puede elegir un conjunto de patrones existente o crear uno nuevo. Si crea uno nuevo, especifique lo siguiente:

Nombre del nuevo patrón

Introduzca un nombre y, a continuación, especifique el patrón de expresiones regulares que desea que busque AWS WAF Classic.

Si añade varias expresiones regulares a un conjunto de patrones, esas expresiones se combinan con un OR. Es decir, una solicitud web coincidirá con el conjunto de patrones si la parte correspondiente de la solicitud coincide con cualquiera de las expresiones que se enumeran.

La longitud máxima de Value to match (Valor que debe coincidir) es 70 caracteres.

Editar una condición de coincidencia de regex

Puede realizar los siguientes cambios en una condición de coincidencia de regex existente:

  • Eliminar un patrón de un conjunto de patrones existentes

  • Añadir un patrón a un conjunto de patrones existentes

  • Eliminar un filtro para una condición de coincidencia de regex existente

  • Agregue un filtro a una condición de coincidencia de regex existente (solo puede tener un filtro en una condición de coincidencia de expresiones regulares; por tanto, para agregar un filtro, debe eliminar primero el filtro existente).

  • Eliminar una condición de coincidencia de regex existente

nota

No puede añadir ni eliminar un conjunto de patrones de un filtro existente. Debe editar el conjunto de patrones, o eliminar el filtro y crear un nuevo filtro con un nuevo conjunto de patrones.

Para eliminar un patrón de un conjunto de patrones existentes
  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 View regex pattern sets.

  4. Elija el nombre del conjunto de patrones que desea editar.

  5. Elija Editar.

  6. Elija la X situada al lado del patrón que desea eliminar.

  7. Seleccione Save (Guardar).

Para añadir un patrón a un conjunto de patrones existentes
  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 View regex pattern sets.

  4. Elija el nombre del conjunto de patrones que desea editar.

  5. Elija Edit (Editar).

  6. Escriba un nuevo patrón regex.

  7. Elija el signo + situado junto al nuevo patrón.

  8. Seleccione Guardar.

Para eliminar un filtro de una condición de coincidencia de regex existente
  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 el nombre de la condición que tiene el filtro que desea eliminar.

  4. Elija la casilla situada junto al filtro que desea eliminar.

  5. Elija Delete filter (Eliminar filtro).

Para eliminar una condición de coincidencia de regex
  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. Elimine el filtro de la condición regex. Consulte Para eliminar un filtro de una condición de coincidencia de regex existente para obtener instrucciones al respecto).

  3. Quite la condición de coincidencia de regex 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 regex 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 regex que desea eliminar.

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

  5. Seleccione el botón situado al lado de la condición que desea eliminar.

  6. Elija Eliminar.

Para añadir o cambiar un filtro para una condición de coincidencia de regex existente

Solo puede haber un filtro en una condición de coincidencia de regex. Si desea añadir o cambiar el filtro, debe eliminar primero el filtro existente.

  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. Elimine el filtro de la condición regex que desea cambiar. Consulte Para eliminar un filtro de una condición de coincidencia de regex existente para obtener instrucciones al respecto).

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

  4. Elija el nombre de la condición que desea cambiar.

  5. Elija Add filter (Agregar filtro).

  6. Introduzca los valores adecuados para el nuevo filtro y elija Add (Agregar).