- Que es?
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 practicas 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.
El fuzzing es usado por compañías de software y proyectos opensource
para mejorar la calidad del software, por investigadores de seguridad para
descubrir y publicar vulnerabilidades, por auditores informáticos para analizar sistemas, y, en ultima instancia, por delincuentes para encontrar agujeros en sistemas y explotarlos de forma secreta.
Como se ha comentado, las herramientas semiautomáticas que utilizan
esta técnica se llaman fuzzers. Son semiautomáticas porque pese a ser un
proceso automatizado de envío de datos, se necesita de una persona que
analice los resultados y verifique las posibles vulnerabilidades encontradas.
En general, la mayoría de los fuzzers intentan encontrar vulnerabilidades del tipo buffer overflow, integer overflow, format string o condiciones de
carrera, aunque también pueden abarcar otros tipos de errores, como inyecciones sql, por ejemplo.
El funcionamiento de los fuzzers suele componerse de las siguientes etapas:
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 practicas 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.
El fuzzing es usado por compañías de software y proyectos opensource
para mejorar la calidad del software, por investigadores de seguridad para
descubrir y publicar vulnerabilidades, por auditores informáticos para analizar sistemas, y, en ultima instancia, por delincuentes para encontrar agujeros en sistemas y explotarlos de forma secreta.
Como se ha comentado, las herramientas semiautomáticas que utilizan
esta técnica se llaman fuzzers. Son semiautomáticas porque pese a ser un
proceso automatizado de envío de datos, se necesita de una persona que
analice los resultados y verifique las posibles vulnerabilidades encontradas.
En general, la mayoría de los fuzzers intentan encontrar vulnerabilidades del tipo buffer overflow, integer overflow, format string o condiciones de
carrera, aunque también pueden abarcar otros tipos de errores, como inyecciones sql, por ejemplo.
El funcionamiento de los fuzzers suele componerse de las siguientes etapas: