Una herramienta de fuzzing basada en la detección automática de gramática
Autores: Song, Jia; Alves-Foss, Jim
Idioma: Inglés
Editor: MDPI
Año: 2024
Acceso abierto
Artículo científico
2024
Una herramienta de fuzzing basada en la detección automática de gramática
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Pruebas de software
Fuzzing
JIMA-Fuzzing
Gramática
Vulnerabilidades
Seguridad
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 27
Citaciones: Sin citaciones
La prueba de software es un paso importante en el ciclo de vida del desarrollo de software para garantizar la calidad y seguridad del software. El fuzzing es una técnica de prueba de seguridad que encuentra vulnerabilidades automáticamente sin acceder al código fuente. Construimos un fuzzer, llamado JIMA-Fuzzing, que es una herramienta de fuzzing efectiva que utiliza la gramática detectada a partir de entradas de muestra. Basado en la gramática detectada, JIMA-Fuzzing selecciona una porción de la entrada de usuario válida y la somete a fuzzing. Por ejemplo, la herramienta puede aumentar considerablemente el tamaño de la entrada, truncar la entrada, reemplazar valores numéricos por nuevos valores, reemplazar palabras por números, etc. Este documento discute cómo funciona JIMA-Fuzzing y muestra los resultados de la evaluación después de probar contra el conjunto de datos del Desafío Cibernético de DARPA (CGC). JIMA-Fuzzing es capaz de extraer gramática de archivos de entrada de muestra, lo que significa que no requiere acceso al código fuente para generar archivos de fuzzing efectivos. Esta característica le permite trabajar con programas propietarios o no de código abierto y reduce significativamente el esfuerzo necesario por parte de los testers humanos. Además, en comparación con herramientas de fuzzing guiadas por ejecución simbólica o análisis de taint, JIMA-Fuzzing requiere mucho menos poder de cómputo y tiempo para analizar la entrada de muestra y generar archivos de fuzzing. Sin embargo, la limitación es que JIMA-Fuzzing depende de buenas entradas de muestra y funciona principalmente en programas que requieren interacción/entrada del usuario.
Descripción
La prueba de software es un paso importante en el ciclo de vida del desarrollo de software para garantizar la calidad y seguridad del software. El fuzzing es una técnica de prueba de seguridad que encuentra vulnerabilidades automáticamente sin acceder al código fuente. Construimos un fuzzer, llamado JIMA-Fuzzing, que es una herramienta de fuzzing efectiva que utiliza la gramática detectada a partir de entradas de muestra. Basado en la gramática detectada, JIMA-Fuzzing selecciona una porción de la entrada de usuario válida y la somete a fuzzing. Por ejemplo, la herramienta puede aumentar considerablemente el tamaño de la entrada, truncar la entrada, reemplazar valores numéricos por nuevos valores, reemplazar palabras por números, etc. Este documento discute cómo funciona JIMA-Fuzzing y muestra los resultados de la evaluación después de probar contra el conjunto de datos del Desafío Cibernético de DARPA (CGC). JIMA-Fuzzing es capaz de extraer gramática de archivos de entrada de muestra, lo que significa que no requiere acceso al código fuente para generar archivos de fuzzing efectivos. Esta característica le permite trabajar con programas propietarios o no de código abierto y reduce significativamente el esfuerzo necesario por parte de los testers humanos. Además, en comparación con herramientas de fuzzing guiadas por ejecución simbólica o análisis de taint, JIMA-Fuzzing requiere mucho menos poder de cómputo y tiempo para analizar la entrada de muestra y generar archivos de fuzzing. Sin embargo, la limitación es que JIMA-Fuzzing depende de buenas entradas de muestra y funciona principalmente en programas que requieren interacción/entrada del usuario.