SpotFuzz: Fuzzing basado en puntos calientes del programa
Autores: Pang, Haibo; Jian, Jie; Zhuang, Yan; Ye, Yingyun; Li, Zhanbo
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
SpotFuzz: Fuzzing basado en puntos calientes del programa
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Ampliamente utilizado
AFL
Fuzzer guiado por cobertura
Semillas de energía
Puntos calientes
Bordes que consumen tiempo.
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 41
Citaciones: Sin citaciones
AFL es el fuzzer guiado por cobertura más utilizado, que se basa en información de ejecución aproximada para asignar energía a las semillas, lo que puede llevar a desperdicio. Seguimos el programa ejecutado por AFL y descubrimos que los recuentos de impacto de cada borde pueden variar considerablemente al usar diferentes semillas como entradas. Algunas semillas, que reciben continuamente demasiada energía, experimentan recuentos de impacto muy altos de varios bordes sin nuevos fallos o bordes explorados, lo que resulta en una ejecución inválida y desperdicio de rendimiento. También definimos bordes que consumen tiempo y descubrimos que solo ocupan una pequeña parte del programa. En este documento, definimos los bordes de ejecución inválidos y los bordes que consumen tiempo como puntos calientes y proponemos una solución de fuzzing SpotFuzz para resolver el desperdicio de energía causado por el fenómeno de los puntos calientes mencionado anteriormente. Asigna semillas con más puntos calientes durante la ejecución y utiliza menos energía para reducir el desperdicio de energía. Además, selecciona preferentemente semillas con bordes menos consumidores de tiempo como casos de prueba, lo que permite explorar más bordes en un tiempo limitado. Implementamos un prototipo de SpotFuzz basado en AFL y lo probamos en varios programas reales durante 600 días de CPU. Los resultados experimentales muestran que minimizar la ejecución inválida y consumidora de tiempo de los bordes puede mejorar la eficiencia del fuzzing. En promedio, SpotFuzz pudo encontrar un 42.96% más de fallos únicos y un 14.25% más de bordes que AFL en GNU Binutils y tcpdump.
Descripción
AFL es el fuzzer guiado por cobertura más utilizado, que se basa en información de ejecución aproximada para asignar energía a las semillas, lo que puede llevar a desperdicio. Seguimos el programa ejecutado por AFL y descubrimos que los recuentos de impacto de cada borde pueden variar considerablemente al usar diferentes semillas como entradas. Algunas semillas, que reciben continuamente demasiada energía, experimentan recuentos de impacto muy altos de varios bordes sin nuevos fallos o bordes explorados, lo que resulta en una ejecución inválida y desperdicio de rendimiento. También definimos bordes que consumen tiempo y descubrimos que solo ocupan una pequeña parte del programa. En este documento, definimos los bordes de ejecución inválidos y los bordes que consumen tiempo como puntos calientes y proponemos una solución de fuzzing SpotFuzz para resolver el desperdicio de energía causado por el fenómeno de los puntos calientes mencionado anteriormente. Asigna semillas con más puntos calientes durante la ejecución y utiliza menos energía para reducir el desperdicio de energía. Además, selecciona preferentemente semillas con bordes menos consumidores de tiempo como casos de prueba, lo que permite explorar más bordes en un tiempo limitado. Implementamos un prototipo de SpotFuzz basado en AFL y lo probamos en varios programas reales durante 600 días de CPU. Los resultados experimentales muestran que minimizar la ejecución inválida y consumidora de tiempo de los bordes puede mejorar la eficiencia del fuzzing. En promedio, SpotFuzz pudo encontrar un 42.96% más de fallos únicos y un 14.25% más de bordes que AFL en GNU Binutils y tcpdump.