# Explicador de técnicas de evasão do AWAF

> Digite o nome de uma subviolação ou "evasions" para as oito subviolações de evasão do F5 explicadas, cada uma com seu padrão e o truque de codificação que ela detecta, ou cole o bloco evasions de uma política declarativa de WAF para ler cada uma como habilitada ou desabilitada, com a contagem de passes do Multiple decoding. Baseado no F5 K7929; roda inteiramente no seu navegador.

- Tool: https://ronutz.com/pt-BR/tools/f5-awaf-evasion-explainer
- Family: Segurança e WAF

---

## O que faz

O F5 AWAF - Advanced WAF (antigo BIG-IP ASM - Application Security Manager) detecta toda uma classe de ataques que se escondem atrás de codificação, em que um payload é escapado ou codificado para que uma assinatura de ataque nunca veja os caracteres reais, e o servidor web o decodifica de volta no ataque só depois que o firewall já olhou. O F5 agrupa as defesas sob uma única violação, "Evasion technique detected" (`VIOL_EVASION`), dividida em oito subviolações. Esta ferramenta é o lado de decodificação dessa violação: digite o nome de uma subviolação (ou a palavra `evasions`) para as oito explicadas, ou cole o bloco `evasions` de uma política declarativa para ler cada uma como habilitada ou desabilitada. É baseada literalmente no próprio K7929 do F5 e no capítulo atual de violações do BIG-IP ASM, e roda inteiramente no seu navegador.

## Dois modos, uma entrada

Digite `evasions` e a ferramenta lista as oito subviolações do F5, cada uma com seu estado padrão (as oito vêm habilitadas), uma descrição em linguagem clara do que ela normaliza ou detecta, e o truque de codificação que um atacante usa para que ela detecte. Digite um único nome, como `Multiple decoding` ou `Bad unescape`, e você recebe apenas aquele card. A busca é tolerante quanto a espaços, maiúsculas e sinais de porcentagem, então `multiple decoding` e `Multiple decoding` ambos resolvem.

Cole JSON em vez disso, um array `evasions` isolado, o objeto `blocking-settings`, ou um wrapper `{ "policy": { ... } }` inteiro, e a ferramenta muda para o modo de leitura: reporta cada uma das oito subviolações como habilitada, desabilitada, ou não definida, em que "não definida" significa que a política herda o padrão do seu template em vez de desligar a verificação. Uma subviolação desabilitada é destacada como aviso, porque desligar uma significa que aquela normalização é pulada e a evasão que ela detectava pode chegar à aplicação sem ser resolvida.

## As oito subviolações

A ferramenta cobre exatamente as oito do F5, na ordem em que o manual as lista: `%u decoding` (escapes Unicode `%u` da Microsoft), `Apache whitespace` (os bytes de controle ASCII 9, 11, 12, 13), `Bad unescape` (hex ilegal como `%RR`), `Bare byte decoding` (bytes brutos acima de 127), `Directory traversals` (padrões `../`), `IIS backslashes` (dobrar `\` em `/`), `IIS Unicode codepoints` (mapeamentos `%u` específicos do IIS a partir da Windows-1252) e `Multiple decoding` (decodificação repetida de codificações aninhadas). Cada nome, padrão e descrição vem diretamente da documentação do F5.

## Multiple decoding e a contagem de passes

Multiple decoding é a única subviolação com um valor de ajuste. No schema declarativo ela carrega `maxDecodingPasses`, que o schema limita entre 2 e 5 com um padrão documentado de 3. A ferramenta mostra a contagem de passes quando uma política a define, sinaliza como nota um valor elevado acima do padrão, e sinaliza como aviso um valor fora do intervalo de 2 a 5, porque o sistema o rejeitaria ou limitaria. Quando a contagem não é definida, a ferramenta informa o padrão que se aplica em vez de adivinhar.

## A ponte para as ferramentas de codificação

Várias dessas subviolações são exatamente as mesmas operações de decodificação que a caixa de ferramentas já realiza. Os escapes `%u`, os bare bytes, e o percent-encoding `%XX` que o Bad unescape fiscaliza são território do codec Base64/Percent, e Multiple decoding é simplesmente percent-decoding rodado mais de uma vez. Cada card de referência nomeia a ferramenta relacionada, para que você possa pegar uma string codificada e ver a decodificação acontecer à mão, o que é o jeito mais rápido de construir intuição sobre o que o WAF está normalizando.

## Uma regra do schema

A ferramenta também lê o flag de learn da violação-pai quando um array `blocking-settings.violations` completo está presente. Conforme o schema, estas subviolações só são *aprendidas* quando o aprendizado está habilitado em `VIOL_EVASION`; se o learn estiver desligado lá, uma requisição que dispara ainda é detectada e pode ser alarmada ou bloqueada, mas nenhuma sugestão de aprendizado é gerada. A ferramenta mostra esse estado para que uma política que nunca aprenderá suas evasões não te surpreenda.

## Fundamentação e precisão

Cada nome, padrão e descrição de subviolação é baseado no K7929 do F5 e no capítulo atual "Working with Violations" do BIG-IP ASM 17.5 (a tabela Evasion Techniques Sub-Violations); os nomes de campo, o booleano `enabled`, o `maxDecodingPasses` e o limite de 2 a 5 vêm do schema de política declarativa de WAF do F5. É uma ferramenta somente de decodificação: lê o que você cola e nunca busca, nunca valida contra um BIG-IP ativo, e nunca avalia tráfego. Nada que você cola é enviado ou sai da página; para uma decisão de produção, confirme qualquer leitura na documentação da sua versão do BIG-IP.

## Standards and references

- [F5 K7929: Working with evasion technique detected violations](https://my.f5.com/manage/s/article/K7929)
- [F5 BIG-IP ASM 17.5: Working with Violations (Evasion Techniques Sub-Violations table)](https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/working-with-violations.html)
- [F5 BIG-IP Declarative WAF v17.1 Schema (blocking-settings.evasions: description, enabled, maxDecodingPasses 2..5)](https://clouddocs.f5.com/products/waf-declarative-policy/schema_v17_1.html)

## Related reading

- [Aprendizado automático em produção: como um atacante envenena uma política de WAF](https://ronutz.com/pt-BR/learn/awaf-automatic-learning-poisoning.md): Deixado em modo de aprendizado Automatic sobre tráfego não confiável, o Policy Builder do BIG-IP Advanced WAF aceita e aplica uma sugestão assim que seu learning score chega a 100%, e algumas sugestões desabilitam violações ou ampliam entidades. Um atacante que inunda tráfego de aparência legítima a partir de fontes suficientes consegue levar um afrouxamento a 100% e abrir um buraco. O design do F5 resiste a isso com limites de fontes, sessões e tempo, mas a postura segura é aprendizado Manual por padrão e construir apenas a partir de tráfego confiável.
- [Lidando com falsos positivos no Advanced WAF: triagem por rating, depois ajuste com escopo](https://ronutz.com/pt-BR/learn/awaf-false-positives.md): Um falso positivo é tráfego legítimo que dispara uma política de segurança. No F5 AWAF - Advanced WAF (antigo BIG-IP ASM - Application Security Manager) o violation rating é o sinal de triagem: ratings 1 e 2 são provavelmente falsos positivos que você pode aceitar, rating 3 precisa de investigação, e ratings 4 e 5 bloqueiam mesmo com os Block flags desligados e devem ser limpos em vez de relaxados. A correção é sempre com escopo na URL ou parâmetro específico, nunca um disable para toda a política, e a regra que rege tudo é relaxar apenas onde um falso positivo de fato ocorreu.
- [Técnicas de evasão: como o Advanced WAF normaliza a codificação do atacante](https://ronutz.com/pt-BR/learn/awaf-evasion-techniques.md): Atacantes escondem payloads dentro de codificações incomuns para que uma assinatura nunca veja os caracteres reais. O BIG-IP Advanced WAF responde com oito subviolações de evasão sob a única violação 'Evasion technique detected', cada uma normalizando ou detectando um truque: %u decoding, Apache whitespace, Bad unescape, Bare byte decoding, Directory traversals, IIS backslashes, IIS Unicode codepoints e Multiple decoding. As oito são habilitadas por padrão.
