Fuzzing Multiplataforma Guiado con Ejecución Concólica | Defensa de Trabajo Especial de la Licenciatura en Ciencias de la Computación

5 Mayo 2023 - Aula Magna - FAMAF Estudiantes

Estudiante: Gastón AZNAREZ ROJO Director: Nicolás WOLOVICK

Día: 5 de mayo

Hora: 11:00 h

Resumen: Fuzzing o pruebas de Fuzz, es el proceso de encontrar vulnerabilidades de seguridad en programas, dándole como entrada datos inválidos, inesperados o aleatorios. Como este proceso es altamente dependiente de la interfaz de entrada y del entorno de ejecución del sujeto bajo análisis, realizar Fuzzing sobre programas con interfaces complejas y/o entornos de ejecución poco flexibles, se vuelve más complicado y casi inviable. En este trabajo desarrollaremos y analizaremos una herramienta para realizar pruebas de Fuzzing guiado sobre binarios compilados para plataformas foráneas y dependientes del entorno de ejecución. El proceso se lleva a cabo capturando el programa bajo análisis, emulando el mismo y utilizando ejecución simbólica dinámica para generar casos de prueba, con el objetivo de conseguir una mayor cobertura del programa con la menor cantidad de intentos. A su vez, se mostrarán los desafíos impuestos por la naturaleza del problema, las herramientas utilizadas y la arquitectura del fuzzer. Por último, se puso a prueba la herramienta con un caso de estudio sobre una plataforma específica, para encontrar un error introducido previamente y con el objeto de vulnerar el programa.