Fuzz testing
O que é Fuzz testing?
Fuzz testingTé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
- 01
OSS-Fuzz executando libFuzzer continuamente contra o parser do OpenSSL para encontrar corrupções de memória.
- 02
Jazzer fazendo fuzz em um parser JSON Java para encontrar DoS via entrada profundamente aninhada.
● Perguntas frequentes
O que é Fuzz testing?
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. Pertence à categoria Segurança de aplicações da cibersegurança.
O que significa Fuzz testing?
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.
Como se defender contra Fuzz testing?
As defesas contra Fuzz testing costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Fuzz testing?
Nomes alternativos comuns: Fuzzing.