Se llama fuzzing a las diferentes técnicas de testeo de software capaces de generar y enviar datos secuenciales o aleatorios a una o varias áreas o puntos de una aplicación, con el objeto de detectar defectos o vulnerabilidades existentes en el software auditado. Es utilizado como complemento a las prácticas habituales de chequeo de software, ya que proporcionan cobertura a fallos de datos y regiones de código no testados, gracias a la combinación del poder de la aleatoriedad y ataques heurísticos entre otros."
Cada vez son más populares las técnicas de fuzzing a la hora de descubrir nuevas vulnerabilidades en cualquier tipo de software, de hecho varias de las vulnerabilidades descubiertas por el equipo técnico de S21sec fueron descubiertas de esta manera (como por ejemplo la vulnerabilidad en el manejo de SSL de IIS de Microsoft, y su exploit sslbomb).
Durante los últimos meses, José Miguel Esparza ha estado desarrollando un fuzzer de red multiprotocolo, llamado Malybuzz con el que ha podido descubrir varias vulnerabilidades, en programas tan diversos como servidores de FTP o clientes de VoIP.
Fruto de la investigación durante estos meses, José Miguel ha escrito un artículo comentando diversos aspectos del fuzzing, así como una aplicación práctica de una de las técnicas expuestas en él.
Con este artículo se pretende dar las nociones básicas para el acercamiento del lector a una de las técnicas más utilizadas actualmente a la hora de descubrir vulnerabilidades en aplicaciones, el fuzzing. Más información en: Fuzzing y Seguridad.