Fuzz testing
¿Qué es Fuzz testing?
Fuzz testingTécnica de pruebas automatizadas que bombardea un programa con grandes cantidades de entrada malformada, aleatoria o inesperada para descubrir caídas, corrupción de memoria y vulnerabilidades.
El fuzz testing (o fuzzing) somete a un objetivo —una función, un parser, un protocolo o una aplicación completa— a entradas mutadas o generadas, mientras se observan caídas, bloqueos, asserts o reportes de sanitizers. El objetivo es encontrar entradas que rompan propiedades de seguridad: accesos fuera de límites, use-after-free, bucles infinitos, excepciones no manejadas o fallos lógicos. Fuzzers modernos como AFL++, libFuzzer, Jazzer y Atheris usan retroalimentación de cobertura para evolucionar entradas que alcancen nuevos caminos del código, siendo muy eficaces en parsers, decoders y código criptográfico. Forma parte de los SSDLC de Google (OSS-Fuzz) o Microsoft y ha descubierto muchas CVEs de alto impacto.
● Ejemplos
- 01
OSS-Fuzz ejecutando libFuzzer de forma continua contra el parser de OpenSSL para detectar corrupciones de memoria.
- 02
Jazzer fuzzeando un parser JSON en Java para encontrar DoS por entrada profundamente anidada.
● Preguntas frecuentes
¿Qué es Fuzz testing?
Técnica de pruebas automatizadas que bombardea un programa con grandes cantidades de entrada malformada, aleatoria o inesperada para descubrir caídas, corrupción de memoria y vulnerabilidades. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa Fuzz testing?
Técnica de pruebas automatizadas que bombardea un programa con grandes cantidades de entrada malformada, aleatoria o inesperada para descubrir caídas, corrupción de memoria y vulnerabilidades.
¿Cómo defenderse de Fuzz testing?
Las defensas contra Fuzz testing combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Fuzz testing?
Nombres alternativos comunes: Fuzzing.