Como usar transformações de texto no AWS WAF
Esta seção explica como fornecer transformações para o AWS WAF aplicar antes de inspecionar a solicitação.
Em instruções que busquem padrões ou definam restrições, você pode fornecer transformações para o AWS WAF aplicar 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 ter mais informações, 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 console e da API do AWS WAF também fornece orientações 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
-
O AWS WAF decodifica uma string codificada em Base64.
- Base64 decode extension –
BASE64_DECODE_EXT
-
AWS WAF decodifica uma string codificada em Base64, 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
-
- Compress whitespace –
COMPRESS_WHITE_SPACE
-
O 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)
-
Espaço rígido (ASCII 160)
-
- CSS decode –
CSS_DECODE
-
AWS WAF decodifica caracteres que foram codificados utilizando regras de escape 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
parajavascript
. - 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),\0OOO
(octal). As codificações que não são válidas permanecem na saída. - Hex decode –
HEX_DECODE
-
AWS WAF decodifica uma string de caracteres hexadecimais em um binário.
- HTML entity decode –
HTML_ENTITY_DECODE
-
O AWS WAF substitui caracteres representados em formato hexadecimal
&#xhhhh;
ou formato decimal&#nnnn;
pelos caracteres correspondentes.O AWS WAF substitui os caracteres codificados em HTML a seguir 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.Caractere codificado em HTML
substituído por…
"
"
&
&
<
<
>
>
ou 
espaço incondicional, decimal 160


\n
, decimal 10	
\t
, decimal 9{
ou{
{
|
,|
ou|
|
}
ou}
}
!
!
#
#
$
$
&percent;
ou%
%
'
\
(
(
)
)
*
ou*
*
+
+
,
,
.
.
/
/
:
:
;
;
=
=
?
?
˜
ou˜
~
−
-
[
ou[
[
\
\\
]
ou]
]
&hat;
^
_
ou&underbar;
_
`
ou`
`
- JS decode –
JS_DECODE
-
O AWS WAF decodifica sequências de escape em JavaScript. Se um código
\uHHHH
estiver no intervalo de código ASCII de largura total deFF01-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. - Lowercase –
LOWERCASE
-
O AWS WAF converte letras maiúsculas (A-Z) em minúsculas (a-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
-
O AWS WAF inspeciona a solicitação da web conforme recebida, sem nenhuma transformação de texto.
- Normalize path –
NORMALIZE_PATH
-
O AWS WAF normaliza a string de entrada ao remover várias barras, autorreferências de diretório e referências anteriores de diretórios que não estão no início da entrada.
- Normalize path Windows –
NORMALIZE_PATH_WIN
-
O AWS WAF converte caracteres de barra invertida em barras progressivas e, em seguida, processa a string resultante usando a transformação
NORMALIZE_PATH
. - Remove nulls –
REMOVE_NULLS
-
O AWS WAF remove todos os bytes
NULL
da entrada. - Replace comments –
REPLACE_COMMENTS
-
AWS WAF substitui cada ocorrência de um comentário no estilo C (/* ... */) 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
-
O AWS WAF substitui cada byte
NULL
na entrada por caracteres de espaço (ASCII 0x20). - SQL hex decode –
SQL_HEX_DECODE
-
O AWS WAF decodifica dados hexadecimais de SQL. Por exemplo, o AWS WAF decodifica (
0x414243
) para (ABC
). - URL decode –
URL_DECODE
-
O AWS WAF decodifica um valor codificado por URL.
- URL decode Unicode –
URL_DECODE_UNI
-
Como
URL_DECODE
, mas com suporte para codificação%u
específica da Microsoft. Se o código estiver no intervalo de código ASCII de largura total deFF01-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 caracteres UTF-8 em Unicode. Isso ajuda a normalizar a entrada e a minimizar falsos positivos e falso-negativos para idiomas diferentes do inglês.