CyberGlossary

Segurança de aplicações

Fuzz testing

Também conhecido como: Fuzzing

Definição

Técnica de testes automatizados que submete um programa a grandes volumes de entradas malformadas, aleatórias ou inesperadas para revelar crashes, corrupção de memória e vulnerabilidades.

O fuzz testing (ou fuzzing) bombardeia um alvo — função, parser, protocolo ou aplicação inteira — com entradas mutadas ou geradas, monitorando crashes, travamentos, asserts e relatórios de sanitizers. O objetivo é encontrar entradas que violem propriedades de segurança: acesso fora de limites, use-after-free, loops infinitos, exceções não tratadas ou erros lógicos. Fuzzers modernos como AFL++, libFuzzer, Jazzer e Atheris usam feedback de cobertura para evoluir as entradas em direção a novos caminhos de código, sendo muito eficazes em parsers, decoders e código criptográfico. O fuzzing já é parte central dos SSDLCs de Google (OSS-Fuzz) e Microsoft e revelou muitas CVEs de alto impacto.

Exemplos

  • OSS-Fuzz executando libFuzzer continuamente contra o parser do OpenSSL para encontrar corrupções de memória.
  • Jazzer fazendo fuzz em um parser JSON Java para encontrar DoS via entrada profundamente aninhada.

Termos relacionados