Fuzzing In-Vivo Mediante Amplificación de Ejecuciones
Uno de los mayores cuellos de botella al aplicar fuzz testing sobre librerías es la necesidad de contar con fuzz drivers. Estos son programas que hacen las veces de intermediarios entre el fuzzer y la librería siendo testeada. El hecho de que vulnerabilidades críticas sigan siendo encontradas en lib...
Autor principal: | |
---|---|
Otros Autores: | |
Formato: | Tesis de grado publishedVersion |
Lenguaje: | Español |
Publicado: |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
2024
|
Materias: | |
Acceso en línea: | https://hdl.handle.net/20.500.12110/seminario_nCOM000503_Galland https://repositoriouba.sisbi.uba.ar/gsdl/cgi-bin/library.cgi?a=d&c=aextesisg&d=seminario_nCOM000503_Galland_oai |
Aporte de: |
id |
I28-R145-seminario_nCOM000503_Galland_oai |
---|---|
record_format |
dspace |
spelling |
I28-R145-seminario_nCOM000503_Galland_oai2024-12-17 Galeotti, Juan Pablo Böhme, Marcel Galland, Octavio Adolfo 2024-01-29 Uno de los mayores cuellos de botella al aplicar fuzz testing sobre librerías es la necesidad de contar con fuzz drivers. Estos son programas que hacen las veces de intermediarios entre el fuzzer y la librería siendo testeada. El hecho de que vulnerabilidades críticas sigan siendo encontradas en librerías que son continuamente sometidas a fuzzing delata la insuficiencia de estos drivers en la práctica. En este trabajo, proponemos un enfoque alternativo al fuzzing de librerías, que haga uso de una ejecución válida de un programa que utilice la librería (el host), y amplifique su ejecución. Más concretamente, ejecutamos el host hasta que una determinada función de una lista de funciones objetivo sea ejecutada, y luego procedemos a aplicar fuzzing guiado por cobertura sobre la misma. Una vez agotado el presupuesto de tiempo asignado a este objetivo, avanzamos al siguiente objetivo de la lista. De esta manera no solo reducimos la cantidad de esfuerzo manual requerido para incorporar fuzzing al ciclo de desarrollo de una librería, sino que también permitimos llevar a cabo el testing de la misma en un contexto que refleje el uso que se le daría en un contexto productivo. A major bottleneck that remains when fuzzing software libraries is the need for fuzz drivers, i.e., the glue code between the fuzzer and the library. Despite years of fuzzing, critical security flaws are still found, for instance by manual auditing, because the fuzz drivers do not cover the complex interactions between the library and the real-world programs using it. In this work we propose an alternative approach to library fuzzing, which leverages a valid execution context set up by a given program using the library (the host), and amplify its execution. More specifically, we execute the host until a designated function from a list of target functions has been reached, and then perform coverage-guided function-level fuzzing on it. Once the fuzzing quota is exhausted, we move on to fuzzing the next target from the list. In this way we not only reduce the amount of manual work needed by a developer to incorporate fuzz testing into their workflow, but we also allow the fuzzer to explore parts of the library as they are used in real-world programs that may otherwise not have been tested due to the simplicity of most fuzz drivers. Fil: Galland, Octavio Adolfo. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. application/pdf https://hdl.handle.net/20.500.12110/seminario_nCOM000503_Galland spa Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar FUZZING TESTING AUTOMATIZADO SEGURIDAD DE SOFTWARE DETECCION DE VULNERABILIDADES EXPLORACION DE CAMINOS FUZZING AUTOMATED TESTING SOFTWARE SECURITY VULNERABILITY DETECTION PATH EXPLORATION Fuzzing In-Vivo Mediante Amplificación de Ejecuciones Iin-vivo fuzzing by amplifying actual executions info:eu-repo/semantics/bachelorThesis info:ar-repo/semantics/tesis de grado info:eu-repo/semantics/publishedVersion https://repositoriouba.sisbi.uba.ar/gsdl/cgi-bin/library.cgi?a=d&c=aextesisg&d=seminario_nCOM000503_Galland_oai |
institution |
Universidad de Buenos Aires |
institution_str |
I-28 |
repository_str |
R-145 |
collection |
Repositorio Digital de la Universidad de Buenos Aires (UBA) |
language |
Español |
orig_language_str_mv |
spa |
topic |
FUZZING TESTING AUTOMATIZADO SEGURIDAD DE SOFTWARE DETECCION DE VULNERABILIDADES EXPLORACION DE CAMINOS FUZZING AUTOMATED TESTING SOFTWARE SECURITY VULNERABILITY DETECTION PATH EXPLORATION |
spellingShingle |
FUZZING TESTING AUTOMATIZADO SEGURIDAD DE SOFTWARE DETECCION DE VULNERABILIDADES EXPLORACION DE CAMINOS FUZZING AUTOMATED TESTING SOFTWARE SECURITY VULNERABILITY DETECTION PATH EXPLORATION Galland, Octavio Adolfo Fuzzing In-Vivo Mediante Amplificación de Ejecuciones |
topic_facet |
FUZZING TESTING AUTOMATIZADO SEGURIDAD DE SOFTWARE DETECCION DE VULNERABILIDADES EXPLORACION DE CAMINOS FUZZING AUTOMATED TESTING SOFTWARE SECURITY VULNERABILITY DETECTION PATH EXPLORATION |
description |
Uno de los mayores cuellos de botella al aplicar fuzz testing sobre librerías es la necesidad de contar con fuzz drivers. Estos son programas que hacen las veces de intermediarios entre el fuzzer y la librería siendo testeada. El hecho de que vulnerabilidades críticas sigan siendo encontradas en librerías que son continuamente sometidas a fuzzing delata la insuficiencia de estos drivers en la práctica. En este trabajo, proponemos un enfoque alternativo al fuzzing de librerías, que haga uso de una ejecución válida de un programa que utilice la librería (el host), y amplifique su ejecución. Más concretamente, ejecutamos el host hasta que una determinada función de una lista de funciones objetivo sea ejecutada, y luego procedemos a aplicar fuzzing guiado por cobertura sobre la misma. Una vez agotado el presupuesto de tiempo asignado a este objetivo, avanzamos al siguiente objetivo de la lista. De esta manera no solo reducimos la cantidad de esfuerzo manual requerido para incorporar fuzzing al ciclo de desarrollo de una librería, sino que también permitimos llevar a cabo el testing de la misma en un contexto que refleje el uso que se le daría en un contexto productivo. |
author2 |
Galeotti, Juan Pablo |
author_facet |
Galeotti, Juan Pablo Galland, Octavio Adolfo |
format |
Tesis de grado Tesis de grado publishedVersion |
author |
Galland, Octavio Adolfo |
author_sort |
Galland, Octavio Adolfo |
title |
Fuzzing In-Vivo Mediante Amplificación de Ejecuciones |
title_short |
Fuzzing In-Vivo Mediante Amplificación de Ejecuciones |
title_full |
Fuzzing In-Vivo Mediante Amplificación de Ejecuciones |
title_fullStr |
Fuzzing In-Vivo Mediante Amplificación de Ejecuciones |
title_full_unstemmed |
Fuzzing In-Vivo Mediante Amplificación de Ejecuciones |
title_sort |
fuzzing in-vivo mediante amplificación de ejecuciones |
publisher |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
publishDate |
2024 |
url |
https://hdl.handle.net/20.500.12110/seminario_nCOM000503_Galland https://repositoriouba.sisbi.uba.ar/gsdl/cgi-bin/library.cgi?a=d&c=aextesisg&d=seminario_nCOM000503_Galland_oai |
work_keys_str_mv |
AT gallandoctavioadolfo fuzzinginvivomedianteamplificaciondeejecuciones AT gallandoctavioadolfo iinvivofuzzingbyamplifyingactualexecutions |
_version_ |
1824952584426749952 |