O Que É Fuzzing?
Fuzzing é uma técnica de teste automatizado que bombardeia um programa com entradas aleatórias, malformadas ou inesperadas para disparar crashes, erros de memória, travamentos ou falhas de segurança. Fuzzers guiados por cobertura mutam entradas e usam feedback de cobertura de código para alcançar caminhos mais profundos ao longo do tempo. Ele se destaca em encontrar bugs em código que faz parsing de dados não confiáveis.
Por que isso importa
Muitas vulnerabilidades sérias se escondem na forma como o código lida com entrada malformada, exatamente os casos para os quais os desenvolvedores não escrevem testes. Fuzzing as descobre automaticamente e é mais eficaz quando rodado continuamente, então a integração com CI e plataformas como o OSS-Fuzz mantêm os fuzzers explorando à medida que o código evolui.
Conceitos relacionados
- Fuzzers guiados por cobertura alcançam caminhos de código mais profundos
- Destaca-se em parsers e no tratamento de entrada não confiável
- O teste baseado em propriedades é um parente estruturado