View a markdown version of this page

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

Presentamos una nueva experiencia de consola para AWS WAF

Ahora puedes usar la experiencia actualizada para acceder a las AWS WAF funciones desde cualquier parte de la consola. Para obtener más información, consulta Cómo trabajar con la consola.

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.

Uso de transformaciones de texto en AWS WAF

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

En las instrucciones que buscan patrones o establecen restricciones, puedes proporcionar transformaciones para AWS WAF aplicarlas 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 AWS WAF consola y la API también proporciona orientación sobre 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 API: TextTransformations

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 Base64-encoded cadena.

Base64 decode extension – BASE64_DECODE_EXT

AWS WAF decodifica una Base64-encoded cadena, pero usa una implementación indulgente 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

Command line Unix – CMD_LINE_UNIX

Esta opción mitiga las situaciones en las que los atacantes podrían estar inyectando un comando de línea de comandos del sistema operativo Unix o Linux y utilizando un formato inusual para disfrazar una parte o la totalidad del comando.

Utilice esta opción para realizar las siguientes transformaciones:

  • Eliminar los siguientes caracteres: \ " '

  • Sustituya los siguientes caracteres por un espacio: tab \t (ASCII 9), newline (ASCII 10), \n carriage return (ASCII 13), vertical tab \r (ASCII 11) y formfeed \v (ASCII 12) \f

  • Sustituir varios espacios por un espacio

  • Elimine los espacios iniciales y finales

  • Convertir letras mayúsculas, A-Z, a minúsculas, a-z

Command line Windows – CMD_LINE_WIN

Esta opción mitiga las situaciones en las que los atacantes pueden estar inyectando una línea de comandos o un PowerShell comando del sistema operativo Windows y utilizan un formato inusual para disfrazar una parte o la totalidad del comando.

Utilice esta opción para realizar las siguientes transformaciones:

  • Eliminar los siguientes caracteres: " ' ^ `

  • Elimine las secuencias de continuación de líneas de intercalación, un signo de intercalación seguido de una nueva línea \n o un carruaje de retorno y línea nueva, como una sola unidad \r\n

  • Sustituya los siguientes caracteres por un espacio: tab \t (ASCII 9), newline (ASCII 10), \n carriage return (ASCII 13), vertical tab \r (ASCII 11) y formfeed \v (ASCII 12) \f

  • Sustituir varios espacios por un espacio

  • Elimine los espacios iniciales y finales

  • Convertir letras mayúsculas, A-Z, a minúsculas, a-z

  • Sustituya las barras invertidas consecutivas por una barra invertida única. Las barras invertidas simples se conservan, por lo que las rutas de Windows, como c:\windows\system32\cmd.exe las rutas UNC, permanecen intactas.

Compress whitespace – COMPRESS_WHITE_SPACE

AWS WAF comprime los espacios en blanco sustituyendo varios espacios por un espacio y sustituyendo 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)

  • Non-breaking espacio (ASCII 160)

CSS decode – CSS_DECODE

AWS WAF decodifica los caracteres codificados mediante 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 en un binario.

HTML entity decode – HTML_ENTITY_DECODE

AWS WAF reemplaza los caracteres que se representan en formato hexadecimal &#xhhhh; o decimal por &#nnnn; los caracteres correspondientes.

AWS WAF reemplaza los siguientes HTML-encoded caracteres por caracteres no codificados. 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.

HTML-encoded personaje

sustituido por…

"

"

&

&

<

<

&gt;

>

&nbsp; o &NonBreakingSpace;

espacio de no separación, 160 decimales

&NewLine;

\n, decimal 10

&Tab;

\t, decimal 9

&lcub; o &lbrace;

{

&verbar;, &vert; o &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 JavaScript escape. 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.

JS decode extended – JS_DECODE_EXT

AWS WAF decodifica las secuencias de JavaScript escape de forma similarJS_DECODE, pero utiliza una implementación indulgente para que las rutas de los archivos de Microsoft Windows no se alteren. JS_DECODE_EXTdifiere de la siguiente JS_DECODE manera:

  • Decodifique los escapes\\, \/\', y \" eliminando la barra invertida y manteniendo el carácter siguiente.

  • Conserve los escapes de un solo carácter\a,,\b, \f \n \r\t, y \v conservando tanto la barra invertida como el carácter siguiente.

  • Conserve cualquier otra secuencia de \C escape no reconocida (por ejemplo, \d o\w) conservando tanto la barra invertida como el carácter subsiguiente, de modo que las rutas de los archivos de Windows, como «y», no se alteren. \default \windows

Lowercase – LOWERCASE

AWS WAF convierte las letras mayúsculas () en minúsculas (A-Za-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 recibe, sin ninguna transformación de texto.

Normalize path – NORMALIZE_PATH

AWS WAF normaliza la cadena de entrada eliminando 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 inclinadas y, a continuación, procesa la cadena resultante mediante la transformación. NORMALIZE_PATH

Remove comments characters – REMOVE_COMMENTS_CHAR

AWS WAF elimina los caracteres de comentario comunes de la entrada: /*, */, -- y #.

Remove nulls – REMOVE_NULLS

AWS WAF elimina todos los NULL bytes de la entrada.

Remove whitespace – REMOVE_WHITESPACE

AWS WAF elimina todos los espacios en blanco de la entrada.

Replace comments – REPLACE_COMMENTS

AWS WAF reemplaza cada aparición de un C-style comentario (/*... */) por 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 reemplaza cada NULL byte de la entrada por el carácter de espacio (ASCII 0x20).

SHA256 – SHA256

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

SQL hex decode – SQL_HEX_DECODE

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

Trim – TRIM

AWS WAF elimina los espacios en blanco de los lados izquierdo y derecho de la entrada.

Trim left – TRIM_LEFT

AWS WAF elimina los espacios en blanco del lado izquierdo de la entrada.

Trim right – TRIM_RIGHT

AWS WAF elimina los espacios en blanco del lado derecho de la entrada.

Uppercase – UPPERCASE

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

URL decode – URL_DECODE

AWS WAF URL-encoded decodifica un valor.

URL decode Unicode – URL_DECODE_UNI

IgualURL_DECODE, pero con soporte para la Microsoft-specific %u codificación. 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 UTF-8 caracteres a Unicode. Esto ayuda a normalizar las entradas y a minimizar los falsos positivos y negativos de los idiomas distintos al inglés.