Saltar al contenido
Underc0de /foro

¿Qué es Fuzzing?

$ man fuzzing

Técnica de prueba que envía de forma automatizada entradas inválidas, inesperadas o aleatorias a un programa para provocar fallos, cuelgues o comportamientos anómalos que revelen errores y vulnerabilidades.

Fuzz testingfuzzerprueba de fuzzing#vulnerabilidades#qa-testing#pentesting#herramientas

Definición

El fuzzing consiste en alimentar un programa, protocolo o API con grandes cantidades de datos generados o mutados automáticamente y observar si se cae, se cuelga o se comporta de forma extraña. Un fuzzer puede ser basado en mutación (modifica entradas válidas de ejemplo) o basado en generación (crea entradas a partir de una especificación o gramática del formato). Los fuzzers modernos suelen ser guiados por cobertura: instrumentan el binario para priorizar las entradas que recorren caminos de código nuevos. Según cuánto se conoce del objetivo se habla de fuzzing de caja negra, gris o blanca.

Ejemplo

Un desarrollador compila su parser de imágenes en C con instrumentación y lo prueba con AFL++ o libFuzzer; tras unas horas, el fuzzer encuentra un archivo malformado que provoca un desbordamiento de búfer detectado por AddressSanitizer. En web, herramientas como ffuf se usan, con autorización, para probar parámetros y rutas con listas de valores y detectar respuestas inesperadas.

Cómo protegerse

  • Integrá el fuzzing en tu pipeline de CI para probar parsers y funciones que procesan datos externos de forma continua.
  • Combiná el fuzzer con sanitizadores (AddressSanitizer, UndefinedBehaviorSanitizer) para detectar errores de memoria que no siempre producen un crash visible.
  • Partí de un buen corpus de entradas válidas y diccionarios del formato para que el fuzzer llegue más profundo en el código.
  • Minimizá y guardá los casos que provocan fallos como pruebas de regresión una vez corregido el bug.
  • Fuzzeá solo sistemas propios o con autorización expresa: contra servicios de terceros puede causar caídas y tener consecuencias legales.

Para tener en cuenta

Que un fuzzer no encuentre fallos no prueba que el software sea seguro: solo explora las rutas que logra alcanzar. Además, no todo crash es explotable, por lo que cada hallazgo requiere análisis manual (triage).

Redactado con el asistente Underc0de IA. Actualizado el 13/11/2026. ¿Ves un error o querés sumar algo? Contanos en el foro.

Grupo de WhatsApp