View a markdown version of this page

Usando transformações de texto em AWS WAF - AWS WAF, AWS Firewall Manager, AWS Shield Advanced e AWS Shield diretor de segurança de rede

Apresentando uma nova experiência de console para AWS WAF

Agora você pode usar a experiência atualizada para acessar a AWS WAF funcionalidade em qualquer lugar do console. Para obter mais detalhes, consulte Trabalhando com o console.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando transformações de texto em AWS WAF

Esta seção explica como fornecer transformações para AWS WAF serem aplicadas antes de inspecionar a solicitação.

Em declarações que buscam padrões ou definem restrições, você pode fornecer transformações para AWS WAF serem aplicadas antes de inspecionar a solicitação. A transformação reformata uma solicitação da Web para eliminar algumas das formatações incomuns que os invasores usam em uma tentativa de contornar o AWS WAF.

Quando você usa isso com a seleção do componente de solicitação de corpo JSON, o AWS WAF aplica suas transformações após analisar e extrair os elementos a serem inspecionados do JSON. Para saber mais, consulte Corpo JSON.

Se você fornecer mais de uma transformação, também definirá a ordem em que o AWS WAF deve aplicá-las.

WCUs: cada transformação de texto é de 10 WCUs.

A documentação do AWS WAF console e da API também fornece orientação para essas configurações nos seguintes locais:

  • Criador de regras no console: Transformação de texto. Essa opção está disponível quando você usa componentes de solicitação.

  • Conteúdo da instrução da API: TextTransformations

Opções para transformações de texto

Cada listagem de transformação mostra as especificações do console e da API seguidas pela descrição.

Base64 decode – BASE64_DECODE

AWS WAF decodifica uma Base64-encoded string.

Base64 decode extension – BASE64_DECODE_EXT

AWS WAF decodifica uma Base64-encoded string, mas usa uma implementação tolerante que ignora caracteres que não são válidos.

Command line – CMD_LINE

Esta opção mitiga situações em que os atacantes podem estar injetando um comando de linha de comando do sistema operacional e estão usando formatação incomum para disfarçar todo o comando ou parte dele.

Use essa opção para executar as seguintes transformações:

  • Excluir os seguintes caracteres: \ " ' ^

  • Excluir espaços antes os seguintes caracteres: / (

  • Substituir os seguintes caracteres por um espaço: , ;

  • Substituir vários espaços por um espaço

  • Converter as letras maiúsculas, A-Z, em minúsculas, a-z

Command line Unix – CMD_LINE_UNIX

Essa opção atenua situações em que os invasores podem estar injetando um comando de linha de comando do sistema operacional Unix ou Linux e usando uma formatação incomum para disfarçar parte ou todo o comando.

Use essa opção para executar as seguintes transformações:

  • Excluir os seguintes caracteres: \ " '

  • Substitua os seguintes caracteres por um espaço: tab \t (ASCII 9), nova linha \n (ASCII 10), carriage return (ASCII 13), tab vertical \r (ASCII 11) e formfeed \v (ASCII 12) \f

  • Substituir vários espaços por um espaço

  • Remova os espaços à esquerda e à direita

  • Converter as letras maiúsculas, A-Z, em minúsculas, a-z

Command line Windows – CMD_LINE_WIN

Essa opção atenua situações em que os invasores podem estar injetando uma linha de PowerShell comando ou comando do sistema operacional Windows e usando uma formatação incomum para disfarçar parte ou todo o comando.

Use essa opção para executar as seguintes transformações:

  • Excluir os seguintes caracteres: " ' ^ `

  • Exclua sequências de continuação de linha circunflexo, um cursor seguido por uma nova linha \n ou por um retorno de carro e uma nova linha, como uma única unidade \r\n

  • Substitua os seguintes caracteres por um espaço: tab \t (ASCII 9), nova linha \n (ASCII 10), carriage return (ASCII 13), tab vertical \r (ASCII 11) e formfeed \v (ASCII 12) \f

  • Substituir vários espaços por um espaço

  • Remova os espaços à esquerda e à direita

  • Converter as letras maiúsculas, A-Z, em minúsculas, a-z

  • Substitua barras invertidas consecutivas por uma única barra invertida. As barras invertidas únicas são preservadas, de modo que os caminhos do Windows, como caminhos UNC c:\windows\system32\cmd.exe e caminhos UNC, permaneçam intactos.

Compress whitespace – COMPRESS_WHITE_SPACE

AWS WAF comprime o espaço em branco substituindo vários espaços por um espaço e substituindo os seguintes caracteres por um caractere de espaço (ASCII 32):

  • Quebra de página (ASCII 12)

  • Tabulação (ASCII 9)

  • Nova linha (ASCII 10)

  • Retorno de carro (ASCII 13)

  • Tabulação vertical (ASCII 11)

  • Non-breaking espaço (ASCII 160)

CSS decode – CSS_DECODE

AWS WAF decodifica caracteres que foram codificados usando as regras de escape do CSS 2.x. syndata.html#characters Essa função utiliza até dois bytes no processo de decodificação e, portanto, pode ajudar a descobrir caracteres ASCII codificados com CSS que normalmente não seriam codificados. Ela também é útil para combater a evasão, que é uma combinação de barra invertida e caracteres não hexadecimais. Por exemplo, ja\vascript para javascript.

Escape sequences decode – ESCAPE_SEQ_DECODE

AWS WAF decodifica as seguintes sequências de escape ANSI C:\a,,\b,\f,\n,\r,, \t \v \\\?, \xHH (hexadecimal) \'\", (octal). \0OOO As codificações que não são válidas permanecem na saída.

Hex decode – HEX_DECODE

AWS WAF decodifica uma sequência de caracteres hexadecimais em um binário.

HTML entity decode – HTML_ENTITY_DECODE

AWS WAF substitui os caracteres representados em formato hexadecimal &#xhhhh; ou decimal pelos caracteres correspondentes. &#nnnn;

AWS WAF substitui os seguintes HTML-encoded caracteres por caracteres não codificados. Essa lista usa codificação HTML em minúsculas, mas o tratamento não diferencia maiúsculas de minúsculas, por exemplo, &QuOt; e " são tratados da mesma forma.

HTML-encoded personagem

substituído por…

"

"

&

&

<

<

&gt;

>

&nbsp; ou &NonBreakingSpace;

espaço incondicional, decimal 160

&NewLine;

\n, decimal 10

&Tab;

\t, decimal 9

&lcub; ou &lbrace;

{

&verbar;, &vert; ou &VerticalLine;

|

&rcub; ou &rbrace;

}

&excl;

!

&num;

#

&dollar;

$

&percent; ou &percnt;

%

&apos;

\

&lpar;

(

&rpar;

)

&ast; ou &midast;

*

&plus;

+

&comma;

,

&period;

.

&sol;

/

&colon;

:

&semi;

;

&equals;

=

&quest;

?

&tilde; ou &DiacriticalTilde;

~

&minus;

-

&lsqb; ou &lbrack;

[

&bsol;

\\

&rsqb; ou &rbrack;

]

&hat;

^

&lowbar; ou &underbar;

_

&grave; ou &DiacriticalGrave;

`

JS decode – JS_DECODE

AWS WAF decodifica sequências de JavaScript escape. Se um código \uHHHH estiver no intervalo de código ASCII de largura total de FF01-FF5E, o byte maior será utilizado para detectar e ajustar o byte menor. Caso contrário, somente o byte menor será utilizado, e o byte maior será zerado, causando uma possível perda de informações.

JS decode extended – JS_DECODE_EXT

AWS WAF decodifica sequências de JavaScript escape comoJS_DECODE, mas usa uma implementação tolerante para que os caminhos dos arquivos do Microsoft Windows não sejam alterados. JS_DECODE_EXTdifere do JS_DECODE seguinte:

  • Decodifique os escapes\\,, \/\', e \" removendo a barra invertida e mantendo o caractere subsequente.

  • Preserve os escapes de um único caractere \a\b,\f,\n,, \r\t, e \v mantendo a barra invertida e o caractere subsequente.

  • Preserve qualquer outra sequência de \C escape não reconhecida (por exemplo, \d ou\w) mantendo a barra invertida e o caractere subsequente, para que os caminhos de arquivo do Windows, como \default e, \windows não sejam alterados.

Lowercase – LOWERCASE

AWS WAF converte letras maiúsculas () em minúsculas (a-zA-Z).

MD5 – MD5

AWS WAF calcula um hash MD5 a partir dos dados na entrada. O hash calculado está em um formato binário bruto.

None – NONE

AWS WAF inspeciona a solicitação da web conforme recebida, sem nenhuma transformação de texto.

Normalize path – NORMALIZE_PATH

AWS WAF normaliza a string de entrada removendo várias barras, autorreferências de diretório e referências anteriores de diretório que não estão no início da entrada.

Normalize path Windows – NORMALIZE_PATH_WIN

AWS WAF converte caracteres de barra invertida em barras dianteiras e, em seguida, processa a string resultante usando a transformação. NORMALIZE_PATH

Remove comments characters – REMOVE_COMMENTS_CHAR

AWS WAF remove caracteres de comentários comuns da entrada: /*, */, -- e #.

Remove nulls – REMOVE_NULLS

AWS WAF remove todos os NULL bytes da entrada.

Remove whitespace – REMOVE_WHITESPACE

AWS WAF remove todos os caracteres de espaço em branco da entrada.

Replace comments – REPLACE_COMMENTS

AWS WAF substitui cada ocorrência de um C-style comentário (/*... */) por um único espaço. Ele não comprime várias ocorrências consecutivas. Substitui comentários sem término por um espaço (ASCII 0x20). Isso não altera o encerramento independente de um comentário (*/).

Replace nulls – REPLACE_NULLS

AWS WAF substitui cada NULL byte na entrada pelo caractere de espaço (ASCII 0x20).

SHA256 – SHA256

AWS WAF calcula um SHA-256 hash a partir dos dados na entrada. O hash calculado está em um formato binário bruto.

SQL hex decode – SQL_HEX_DECODE

AWS WAF decodifica dados hexadecimais do SQL. Por exemplo, AWS WAF decodifica (0x414243) para (ABC).

Trim – TRIM

AWS WAF remove os espaços em branco dos lados esquerdo e direito da entrada.

Trim left – TRIM_LEFT

AWS WAF remove os espaços em branco do lado esquerdo da entrada.

Trim right – TRIM_RIGHT

AWS WAF remove os espaços em branco do lado direito da entrada.

Uppercase – UPPERCASE

AWS WAF converte todas as letras minúsculas (a-z) em maiúsculas (). A-Z

URL decode – URL_DECODE

AWS WAF decodifica um URL-encoded valor.

URL decode Unicode – URL_DECODE_UNI

TipoURL_DECODE, mas com suporte para Microsoft-specific %u codificação. Se o código estiver no intervalo de código ASCII de largura total de FF01-FF5E, o byte maior será utilizado para detectar e ajustar o byte menor. Caso contrário, somente o byte menor será utilizado, e o byte maior será zerado.

UTF8 to Unicode – UTF8_TO_UNICODE

AWS WAF converte todas as sequências de UTF-8 caracteres em Unicode. Isso ajuda a normalizar a entrada e a minimizar falsos positivos e falso-negativos para idiomas diferentes do inglês.