¿Qué es la prueba de fuzz?

Fuzz Testing se considera el tipo de prueba en el que se requieren técnicas de prueba automatizadas o semiautomáticas para descubrir errores en la codificación, así como las lagunas en seguridad en el software o los sistemas operativos al proporcionar la entrada de datos aleatorios al sistema Estos datos aleatorios se llaman FUZZ. Después de todo, esto tiene lugar, el sistema se verifica para detectar diferentes tipos de excepciones, ya sea que el sistema se bloquee o incluso que el código incorporado falle y mucho más. Esto fue desarrollado originalmente por alguien llamado Barton Miller, quien era de la Universidad de Wisconsin. También se llama fuzzing se considera el tipo de prueba de seguridad.

¿Por qué necesitamos pruebas de fuzz?

  • A menudo, las pruebas de Fuzz tienen la capacidad de descubrir las fallas de seguridad más graves en el sistema.
  • Proporciona resultados mucho más efectivos cuando lo usamos junto con Black Box Testing, Beta Testing o diferentes métodos de depuración.
  • También es necesario para verificar la vulnerabilidad del software. También es una técnica de prueba realmente rentable.
  • Se considera una técnica de prueba de caja negra. También es uno de los hackers de métodos más utilizados que encuentra la vulnerabilidad del sistema.

¿Cómo se realiza la prueba difusa?

Los pasos para la prueba difusa incluyen los pasos básicos de la prueba:

Paso 1 : Reconocimiento del sistema de destino.

Paso 2 : Reconocimiento de las entradas.

Paso 3 : generación de datos difusos.

Paso 4 : Ejecución de prueba usando datos difusos.

Paso 5 : Monitoreo del comportamiento del sistema.

Paso 6 : Registro de defectos.

Ejemplos de fuzzers

Hay muchos fuzzers como a continuación:

  • Fuzzers basados ​​en mutaciones: estos fuzzers cambian las muestras de datos que existen para crear nuevos datos de prueba. Esto es bastante fácil, así como el método directo, comienza junto con un protocolo razonable y sigue mezclándose cada byte o incluso como un archivo.
  • Fuzzers basados ​​en la generación: definen datos nuevos según la entrada del modelo. Comienza la generación de entrada desde cero dependiendo de la especificación.
  • Fuzzer basado en protocolo: se considera el fuzzer más exitoso que tiene un conocimiento bastante explicado sobre el formato de protocolo que debe probarse. Esta comprensión depende de la especificación. Incluye la escritura de una serie de especificaciones dentro de la herramienta y luego utiliza la técnica basada en el modelo. También se conoce como prueba de sintaxis o prueba de gramática o prueba de solidez.

Tenemos dos limitaciones de este fuzzing basado en el protocolo que se detalla a continuación:

  1. No podemos continuar con las pruebas hasta y a menos que la especificación sea bastante madura.
  2. Existen muchos protocolos que son una extensión de los protocolos publicados. En caso de que las pruebas fuzz se basen en estas especificaciones que se publican, la cobertura de pruebas para estos nuevos protocolos sería limitada.

Existe la forma más simple de prueba difusa que consiste en enviar la entrada aleatoria al software en forma de paquetes de protocolo o incluso en forma de evento. Esta forma particular de pasar la entrada aleatoria se considera bastante poderosa para localizar errores en diversas aplicaciones y servicios. Existen otras técnicas que también están disponibles y que son bastante fáciles de implementar.

Tipos de errores detectados por pruebas de fuzz

  • Fugas de memoria y fallas de afirmación: este método se usa ampliamente en aplicaciones amplias en las que los errores afectan la seguridad de la memoria, que se considera una vulnerabilidad grave.
  • Entrada no válida : se necesitan fuzzers para generar la entrada no válida que se requiere para probar las rutinas de manejo de errores en las pruebas fuzz. Además, es bastante necesario para el software que no controla la entrada. Fuzzing se considera una forma de automatizar las pruebas negativas.
  • La corrección de errores: se necesita Fuzzing para detectar algunos tipos de errores de "corrección" como una base de datos corrupta o los malos resultados de búsqueda y mucho más.

Herramientas de prueba de fuzz

Las herramientas que son bastante útiles en la seguridad web también se pueden usar en gran medida en pruebas fuzzy o fuzzy. Por ejemplo, Peach Fuzzer, Burp Suite, etc.

1. Melocotón Fuzzer

Esta herramienta ofrece una cobertura de seguridad mucho más robusta, en comparación con el escáner. Si hablamos de otras herramientas de prueba, sin embargo, tienen la capacidad de buscar solo las amenazas conocidas. Pero Peach Fuzzer hace que los usuarios descubran amenazas conocidas y desconocidas.

2. Proxy Spike

Spike se considera la herramienta de nivel profesional que busca vulnerabilidades a nivel de aplicación en varias aplicaciones web. SPIKE Proxy considera solo los conceptos básicos como la inyección SQL o la secuencia de comandos entre sitios. Sin embargo, es una infraestructura totalmente abierta de Python. SPIKE Proxy está presente para Linux y Windows.

Ventajas

  • Los errores que se descubren en las pruebas de fuzz a menudo se consideran graves y los piratas informáticos lo usan principalmente, que consisten en bloqueos, pérdida de memoria o una excepción no controlada y mucho más.
  • Si los probadores no logran descubrir ningún error o error debido a la limitación de tiempo y de recursos, esos errores se pueden descubrir en las pruebas Fuzz.

Desventajas

  • Por sí solo, las pruebas de fuzz por sí solas no tienen la capacidad de dar el escenario general de todas las amenazas de seguridad.
  • Además, se considera que las pruebas fuzz no son realmente efectivas cuando se trata de errores de seguridad que no causan fallas del programa como virus, gusanos, etc.
  • Tiene la capacidad de detectar solo amenazas simples.
  • Para dar un rendimiento efectivo, se requiere un tiempo considerable.

Conclusión

Por lo tanto, podemos concluir que en la ingeniería de software esta prueba, es decir, la prueba Fuzz demuestra la presencia de errores en cualquier aplicación. Esta prueba no garantiza la detección de errores de manera completa en ninguna de las aplicaciones. Sin embargo, si utilizamos esta técnica Fuzz, garantiza que la aplicación sea bastante robusta y segura, ya que las pruebas fuzz ayudan a exponer muchas vulnerabilidades comunes.

Artículos recomendados

Esta es una guía para Fuzz Testing. Aquí discutimos qué es la prueba de fuzz? herramientas de prueba, ventajas y desventajas respectivamente. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Prueba de referencia
  2. Tipos de pruebas de software
  3. ¿Qué son las pruebas de usabilidad?
  4. Prueba estática