Trabajar con condiciones de coincidencia de scripting entre sitios - 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 scripting entre sitios

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.

Los atacantes a veces insertan scripts en solicitudes web para aprovechar las vulnerabilidades de las aplicaciones web. Puede crear una o más condiciones de coincidencia de secuencias de comandos entre sitios para identificar las partes de las solicitudes web, como el URI o la cadena de consulta, que desea que AWS WAF Classic inspeccione para detectar posibles secuencias de comandos maliciosas. Más adelante, cuando cree una ACL web, puede especificar si desea permitir o bloquear las solicitudes que parecen contener scripts maliciosos.

Crear condiciones de coincidencia de scripting entre sitios

Cuando se crean condiciones de coincidencia de scripting entre sitios, se especifican filtros. Los filtros indican la parte de las solicitudes web que desea que AWS WAF Classic inspeccione para detectar scripts maliciosos, como el URI o la cadena de consulta. Puede añadir más de un filtro a una condición de coincidencia de scripting entre sitios o bien puede crear una condición independiente para cada filtro. Así es como afecta cada configuración al comportamiento de la AWS WAF versión clásica:

  • Más de un filtro por condición de coincidencia de secuencias de comandos entre sitios (recomendado): cuando se agrega una condición de coincidencia de secuencias de comandos entre sitios que contiene varios filtros a una regla y se agrega la regla a una ACL web, una solicitud web debe coincidir solo con uno de los filtros de la condición de coincidencia de secuencias de comandos entre sitios para que AWS WAF Classic permita o bloquee la solicitud en función de esa condición.

    Por ejemplo, suponga que crea una condición de coincidencia de scripting entre sitios y la condición contiene dos filtros. Un filtro indica a AWS WAF Classic que inspeccione el URI en busca de scripts maliciosos y el otro indica a AWS WAF Classic que inspeccione la cadena de consulta. AWS WAF Classic permite o bloquea las solicitudes si parecen contener scripts maliciosos en el URI o en la cadena de consulta.

  • Un filtro por condición de coincidencia de secuencias de comandos entre sitios: al añadir las distintas condiciones de coincidencia de secuencias de comandos entre sitios a una regla y añadir la regla a una ACL web, las solicitudes web deben cumplir todas las condiciones para que la AWS WAF versión clásica permita o bloquee las solicitudes en función de esas condiciones.

    Supongamos que crea dos condiciones y que cada condición contiene uno de los dos filtros del ejemplo anterior. Al añadir ambas condiciones a la misma regla y añadir la regla a una ACL web, AWS WAF Classic solo permite o bloquea las solicitudes cuando tanto el URI como la cadena de consulta parecen contener scripts maliciosos.

nota

Al añadir una condición de coincidencia de secuencias de comandos entre sitios a una regla, también puede configurar la AWS WAF versión clásica para que permita o bloquee las solicitudes web que no parezcan contener scripts maliciosos.

Para crear una condición de coincidencia de scripting entre sitios
  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, seleccione Cross-site scripting.

  3. Elija Create condition.

  4. Especifique la configuración de filtro aplicable. Para obtener más información, consulte Valores que se especifican al crear o editar condiciones de coincidencia de scripting entre sitios.

  5. Elija Add another filter.

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

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

Valores que se especifican al crear o editar condiciones de coincidencia de scripting entre sitios

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

Nombre

Es el nombre de la condición de coincidencia de scripting entre sitios.

El nombre solo puede contener los caracteres A-Z, a-z, 0-9 y los caracteres especiales: _-!"#`+*},./ . No se puede cambiar el nombre de una condición después de crearla.

Parte de la solicitud para filtrar en

Elige la parte de cada solicitud web que quieres que AWS WAF Classic inspeccione para detectar scripts maliciosos:

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.

nota

En situaciones de coincidencia de secuencias de comandos entre sitios, recomendamos elegir All query parameters (values only) (Todos los parámetros de consulta [solo valores]) en vez de Query string (Cadena de consulta) para Part of the request to filter on (Parte de la consulta que se va a filtrar).

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

Al igual que con el parámetro de consulta único (solo valores), pero en lugar de inspeccionar los valores de un solo parámetro, AWS WAF Classic inspecciona todos los valores de los parámetros de la cadena de consulta para detectar posibles scripts maliciosos. 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 o contiene posibles scripts maliciosos. UserNameSalesRegion

Encabezado

Si selecciona Encabezado como parte de la solicitud por la que desea filtrar, elija un encabezado de la lista de encabezados más comunes o introduzca el nombre del encabezado que desee que Classic inspeccione para detectar scripts maliciosos. AWS WAF

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

Para las solicitudes que contienen los comandos de línea de comandos del sistema operativo, 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.

Agregar y eliminar filtros en una condición de coincidencia de scripting entre sitios

Puede añadir o eliminar filtros en una condición de coincidencia de scripting entre sitios. 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 scripting entre sitios
  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, seleccione Cross-site scripting.

  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 especifican al crear o editar condiciones de coincidencia de scripting entre sitios.

    3. Elija Add (Agregar).

  5. Para eliminar filtros, siga los siguientes pasos:

    1. Seleccione el filtro que desea eliminar.

    2. Elija Delete filter (Eliminar filtro).

Eliminar condiciones de coincidencia de scripting entre sitios

Si desea eliminar una condición de coincidencia de scripting entre sitios, 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 scripting entre sitios
  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, seleccione Cross-site scripting.

  3. En el panel Cross-site scripting match conditions (Condiciones de coincidencia de scripting entre sitios), elija la condición de coincidencia de scripting entre sitios que desea eliminar.

  4. En el panel de la derecha, elija la pestaña Associated rules (Reglas asociadas).

    Si la lista de reglas que utilizan esta condición de coincidencia de scripting entre sitios está vacía, vaya al paso 6. Si la lista contiene alguna regla, anótela y continúe con el paso 5.

  5. Para eliminar la condición de coincidencia de scripting entre sitios de las reglas que la utilizan, siga los siguientes pasos:

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

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

    3. En el panel de la derecha, seleccione la condición de coincidencia de scripting entre sitios que desea eliminar de la regla y elija Remove selected condition (Eliminar condición seleccionada).

    4. Repita los pasos b y c para todas las demás reglas que utilizan la condición de coincidencia de scripting entre sitios que desea eliminar.

    5. En el panel de navegación, seleccione Cross-site scripting.

    6. En el panel Cross-site scripting match conditions (Condiciones de coincidencia de scripting entre sitios), elija la condición de coincidencia de scripting entre sitios que desea eliminar.

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