Bsfuzz: Fuzzing híbrido guiado por estado de rama
Autores: Hu, Qi; Chen, Weijia; Wang, Zhi; Lu, Shuaibing; Nie, Yuanping; Li, Xiang; Kuang, Xiaohui
Idioma: Inglés
Editor: MDPI
Año: 2023
Acceso abierto
Artículo científico
2023
Bsfuzz: Fuzzing híbrido guiado por estado de rama
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Híbrido fuzzing
Enfoque de pruebas de software
Ejecutor concolico
Optimizaciones de rendimiento
BSFuzz
Cobertura de ramas
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 46
Citaciones: Sin citaciones
La hibridación del fuzzing es un enfoque automatizado de pruebas de software que sincroniza los casos de prueba entre el fuzzing y el ejecutor concolic para mejorar el rendimiento. El ejecutor concolic resuelve las restricciones de camino para dirigir al fuzzing a explorar el camino no cubierto. A pesar de muchas optimizaciones de rendimiento para la hibridación del fuzzing, observamos que el ejecutor concolic a menudo realiza repetidamente la resolución de restricciones en ramas con restricciones no resolubles y ramas cubiertas por múltiples casos de prueba. Esto puede causar redundancias computacionales significativas. Para ser eficiente, proponemos BSFuzz, que mantiene el seguimiento del estado de cobertura y del estado de resolución en un mapa de estado de rama ligero. BSFuzz sincroniza el estado de cobertura actual de todos los casos de prueba de la cola del fuzzing con el ejecutor concolic de manera oportuna para reducir la resolución de restricciones para las ramas de alta frecuencia. También registra el estado de resolución de la rama durante la ejecución concolic para reducir la resolución repetida de ramas no resolubles. Guiado por el estado de cobertura y el estado de resolución histórico, BSFuzz puede descubrir y resolver de manera eficiente más ramas. Los resultados experimentales con programas del mundo real demuestran que BSFuzz puede aumentar efectivamente la velocidad del ejecutor concolic y mejorar la cobertura de ramas.
Descripción
La hibridación del fuzzing es un enfoque automatizado de pruebas de software que sincroniza los casos de prueba entre el fuzzing y el ejecutor concolic para mejorar el rendimiento. El ejecutor concolic resuelve las restricciones de camino para dirigir al fuzzing a explorar el camino no cubierto. A pesar de muchas optimizaciones de rendimiento para la hibridación del fuzzing, observamos que el ejecutor concolic a menudo realiza repetidamente la resolución de restricciones en ramas con restricciones no resolubles y ramas cubiertas por múltiples casos de prueba. Esto puede causar redundancias computacionales significativas. Para ser eficiente, proponemos BSFuzz, que mantiene el seguimiento del estado de cobertura y del estado de resolución en un mapa de estado de rama ligero. BSFuzz sincroniza el estado de cobertura actual de todos los casos de prueba de la cola del fuzzing con el ejecutor concolic de manera oportuna para reducir la resolución de restricciones para las ramas de alta frecuencia. También registra el estado de resolución de la rama durante la ejecución concolic para reducir la resolución repetida de ramas no resolubles. Guiado por el estado de cobertura y el estado de resolución histórico, BSFuzz puede descubrir y resolver de manera eficiente más ramas. Los resultados experimentales con programas del mundo real demuestran que BSFuzz puede aumentar efectivamente la velocidad del ejecutor concolic y mejorar la cobertura de ramas.