CyberGlossary

Seguridad de aplicaciones

Fuzzing guiado por cobertura

También conocido como: Fuzzing greybox, Fuzzing guiado por retroalimentación

Definición

Técnica de fuzzing que instrumenta el objetivo para medir cobertura de código y evoluciona entradas que exploran caminos nuevos, mejorando enormemente la eficacia.

Los fuzzers guiados por cobertura instrumentan el objetivo en tiempo de compilación o mediante traducción binaria dinámica y ejecutan los candidatos recolectando cobertura por aristas o bloques básicos. Las entradas que aportan nueva cobertura se guardan y se mutan más con un algoritmo evolutivo, de forma que el corpus deriva hacia código más difícil de alcanzar. Este bucle de retroalimentación, popularizado por AFL y refinado por AFL++, libFuzzer y Honggfuzz, es órdenes de magnitud más eficaz que el fuzzing aleatorio ciego. Es la base de proyectos como OSS-Fuzz de Google, que ha encontrado decenas de miles de bugs en software open source ejecutando estos fuzzers de forma continua.

Ejemplos

  • Compilar un parser en C con instrumentación de AFL++ y usar afl-fuzz para hacer crecer un corpus guiado por cobertura.
  • libFuzzer usando SanitizerCoverage para evolucionar entradas en un crate de Rust.

Términos relacionados