Uso de transformaciones de texto en AWS WAF - AWS WAF, AWS Firewall Manager, AWS Shield Advanced y director de seguridad de red AWS Shield

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.

Uso de transformaciones de texto en AWS WAF

En esta sección, se explica cómo proporcionar transformaciones para que AWS WAF las aplique antes de inspeccionar la solicitud.

En instrucciones que buscan restricciones de conjuntos o patrones, puede proporcionar transformaciones para que AWS WAF las aplique antes de inspeccionar la solicitud. Una transformación reformatea una solicitud web para eliminar parte del formato inusual que los atacantes utilizan con el objetivo de eludir AWS WAF.

Si lo utiliza con la selección de componentes de la solicitud del cuerpo JSON, AWS WAF aplica las transformaciones después de analizar y extraer los elementos de la JSON para inspeccionarlos. Para obtener más información, consulte Cuerpo JSON.

Si proporciona más de una transformación, también establece la orden para que AWS WAF las aplique.

Unidad de capacidad de escritura (WCU): cada transformación de texto equivale a 10 WCU.

La documentación de la API y la consola de AWS WAF también proporcionan instrucciones para estas configuraciones en las siguientes ubicaciones:

  • Generador de reglas en la consola: Transformación de texto. Esta opción está disponible cuando se utilizan componentes de solicitud.

  • Contenido de la instrucción de APITextTransformations

Opciones para transformaciones de texto

Cada lista de transformaciones muestra las especificaciones de la consola y la API seguidas de la descripción.

Base64 decode – BASE64_DECODE

AWS WAF decodifica una cadena codificada en Base64.

Base64 decode extension – BASE64_DECODE_EXT

AWS WAF decodifica una cadena codificada en Base64, pero usa una implementación tolerante que ignora los caracteres que no son válidos.

Command line – CMD_LINE

Esta opción mitiga situaciones en las que los atacantes podrían inyectar un comando de línea de comandos del sistema operativo y utilizar un formato inusual para ocultar parte o la totalidad del 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 letras mayúsculas, A-Z, a minúsculas, a-z

Compress whitespace – COMPRESS_WHITE_SPACE

AWS WAF comprime los espacios en blanco al sustituir varios espacios por uno solo y los siguientes caracteres por un carácter de espacio (ASCII 32):

  • Avance de página (ASCII 12)

  • Pestaña (ASCII 9)

  • Nueva línea (ASCII 10)

  • Retorno de carro (ASCII 13)

  • Pestaña vertical (ASCII 11)

  • Espacio duro (ASCII 160)

CSS decode – CSS_DECODE

AWS WAF decodifica caracteres que se codificaron con las reglas de escape de CSS 2.x syndata.html#characters. Esta función utiliza hasta dos bytes en el proceso de decodificación, por lo que puede ayudar a descubrir caracteres ASCII que se codificaron en CSS y que normalmente no se codificarían. También es útil para contrarrestar la evasión, que es una combinación de una barra invertida y caracteres no hexadecimales. Por ejemplo, ja\vascript para javascript.

Escape sequences decode – ESCAPE_SEQ_DECODE

AWS WAF decodifica las siguientes secuencias de escape ANSI C: \a, \b, \f, \n, \r, \t, \v, \\, \?, \', \", \xHH (hexadecimal), \0OOO (octal). Las codificaciones que no son válidas permanecen en la salida.

Hex decode – HEX_DECODE

AWS WAF decodifica una cadena de caracteres hexadecimales a un formato binario.

HTML entity decode – HTML_ENTITY_DECODE

AWS WAF sustituye los caracteres representados en formato hexadecimal &#xhhhh; o decimal &#nnnn; por los caracteres correspondientes.

AWS WAF sustituye los siguientes caracteres codificados en HTML por caracteres sin codificar. Esta lista utiliza la codificación HTML en minúsculas, pero no distingue entre mayúsculas y minúsculas; por ejemplo, &QuOt; y " reciben el mismo tratamiento.

Carácter codificado en HTML

sustituido por…

"

"

&

&

<

<

&gt;

>

&nbsp; or &NonBreakingSpace;

espacio de no separación, 160 decimales

&NewLine;

\n, decimal 10

&Tab;

\t, decimal 9

&lcub; or &lbrace;

{

&verbar;, &vert;, o bien &VerticalLine;

|

&rcub; o &rbrace;

}

&excl;

!

&num;

#

&dollar;

$

&percent; o &percnt;

%

&apos;

\

&lpar;

(

&rpar;

)

&ast; o &midast;

*

&plus;

+

&comma;

,

&period;

.

&sol;

/

&colon;

:

&semi;

;

&equals;

=

&quest;

?

&tilde; o &DiacriticalTilde;

~

&minus;

-

&lsqb; o &lbrack;

[

&bsol;

\\

&rsqb; o &rbrack;

]

&hat;

^

&lowbar; o &underbar;

_

&grave; o &DiacriticalGrave;

`

JS decode – JS_DECODE

AWS WAF decodifica secuencias de escape de JavaScript. Si un código \uHHHH está en el rango del código ASCII de ancho completo de FF01-FF5E, el byte superior se utiliza para detectar y ajustar el byte inferior. Si no, solo se utiliza el byte inferior y el byte superior se pone en cero, lo que provoca una posible pérdida de información.

Lowercase – LOWERCASE

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

MD5 – MD5

AWS WAF calcula un hash MD5 a partir de los datos de la entrada. El hash calculado está en forma binaria sin procesar.

None – NONE

AWS WAF inspecciona la solicitud web tal como se recibió, sin ninguna transformación de texto.

Normalize path – NORMALIZE_PATH

AWS WAF normaliza la cadena de entrada al eliminar varias barras, autorreferencias de directorios y referencias inversas de directorios que no estén al principio de la entrada.

Normalize path Windows – NORMALIZE_PATH_WIN

AWS WAF convierte los caracteres de barra invertida en barras diagonales y, a continuación, procesa la cadena resultante mediante la transformación NORMALIZE_PATH.

Remove nulls – REMOVE_NULLS

AWS WAF elimina todos los bytes NULL de la entrada.

Replace comments – REPLACE_COMMENTS

AWS WAF sustituye cada aparición de un comentario de estilo C (/* …*/) con un solo espacio. No comprime varias repeticiones consecutivas. Sustituye los comentarios no finalizados terminados por un espacio (ASCII 0x20). No cambia la finalización independiente de un comentario (*/).

Replace nulls – REPLACE_NULLS

AWS WAF sustituye cada byte NULL en la entrada por el carácter de espacio (ASCII 0x20).

SQL hex decode – SQL_HEX_DECODE

AWS WAF decodifica datos hexadecimales de SQL. Por ejemplo, AWS WAF decodifica (0x414243) en (ABC).

URL decode – URL_DECODE

AWS WAF decodifica un valor codificado en URL.

URL decode Unicode – URL_DECODE_UNI

Como URL_DECODE, pero compatible con la codificación de %u específica de Microsoft. Si el código está en el rango FF01-FF5E del código ASCII de ancho completo, el byte superior se utiliza para detectar y ajustar el byte inferior. De lo contrario, solo se utiliza el byte inferior y el byte superior se pone en cero.

UTF8 to Unicode – UTF8_TO_UNICODE

AWS WAF convierte todas las secuencias de caracteres UTF-8 a Unicode. Esto ayuda a normalizar las entradas y a minimizar los falsos positivos y negativos de los idiomas distintos al inglés.