Fuzzing multiplataforma guiado con ejecución concólica

Autores
Aznarez Rojo, Gastón
Año de publicación
2023
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión publicada
Colaborador/a o director/a de tesis
Wolovick, Nicolás
Curetti, Maria
Gutson, Daniel
Descripción
Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2023.
Fil: Aznarez Rojo, Gastón. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
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.
Fuzzing, or Fuzz testing, is the process of finding security vulnerabilities in programs by providing invalid, unexpected, or random data as input. Since this process is highly dependent on the input interface and the execution en- vironment of the subject under analysis, performing Fuzzing on programs with complex interfaces and/or inflexible execution environments becomes more com- plicated and almost unfeasible. In this work, we will develop and analyze a tool to perform guided Fuzzing tests on binaries compiled for foreign platforms and dependent on the execution environment. The process is carried out by capturing the program under analysis, emula- ting it, and using dynamic symbolic execution to generate test cases, aiming to achieve greater program coverage with the fewest attempts. Additionally, the challenges imposed by the nature of the problem, the tools used, and the fuzzer architecture will be presented. Finally, the tool was tested with a case study on a specific platform to find a previously introduced bug and to exploit the program.
Fil: Aznarez Rojo, Gastón. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Materia
Seguridad y privacidad
Métodos formales y teoría de seguridad
Lógica y verificación
Emulación
Pruebas de Fuzz
Ejecución simbólica
Security and privacy
Formal methods and theory of security
Logic and verification
Testing
Fuzzing
Fuzz testing
Nivel de accesibilidad
acceso abierto
Condiciones de uso
Repositorio
Repositorio Digital Universitario (UNC)
Institución
Universidad Nacional de Córdoba
OAI Identificador
oai:rdu.unc.edu.ar:11086/552169

id RDUUNC_04eafeb0511778af8a0d310b8ae0b857
oai_identifier_str oai:rdu.unc.edu.ar:11086/552169
network_acronym_str RDUUNC
repository_id_str 2572
network_name_str Repositorio Digital Universitario (UNC)
spelling Fuzzing multiplataforma guiado con ejecución concólicaAznarez Rojo, GastónSeguridad y privacidadMétodos formales y teoría de seguridadLógica y verificaciónEmulaciónPruebas de FuzzEjecución simbólicaSecurity and privacyFormal methods and theory of securityLogic and verificationTestingFuzzingFuzz testingTesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2023.Fil: Aznarez Rojo, Gastón. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.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.Fuzzing, or Fuzz testing, is the process of finding security vulnerabilities in programs by providing invalid, unexpected, or random data as input. Since this process is highly dependent on the input interface and the execution en- vironment of the subject under analysis, performing Fuzzing on programs with complex interfaces and/or inflexible execution environments becomes more com- plicated and almost unfeasible. In this work, we will develop and analyze a tool to perform guided Fuzzing tests on binaries compiled for foreign platforms and dependent on the execution environment. The process is carried out by capturing the program under analysis, emula- ting it, and using dynamic symbolic execution to generate test cases, aiming to achieve greater program coverage with the fewest attempts. Additionally, the challenges imposed by the nature of the problem, the tools used, and the fuzzer architecture will be presented. Finally, the tool was tested with a case study on a specific platform to find a previously introduced bug and to exploit the program.Fil: Aznarez Rojo, Gastón. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Wolovick, NicolásCuretti, MariaGutson, Daniel2023info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttp://hdl.handle.net/11086/552169spainfo:eu-repo/semantics/openAccessreponame:Repositorio Digital Universitario (UNC)instname:Universidad Nacional de Córdobainstacron:UNC2025-10-16T09:28:01Zoai:rdu.unc.edu.ar:11086/552169Institucionalhttps://rdu.unc.edu.ar/Universidad públicaNo correspondehttp://rdu.unc.edu.ar/oai/snrdoca.unc@gmail.comArgentinaNo correspondeNo correspondeNo correspondeopendoar:25722025-10-16 09:28:01.804Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdobafalse
dc.title.none.fl_str_mv Fuzzing multiplataforma guiado con ejecución concólica
title Fuzzing multiplataforma guiado con ejecución concólica
spellingShingle Fuzzing multiplataforma guiado con ejecución concólica
Aznarez Rojo, Gastón
Seguridad y privacidad
Métodos formales y teoría de seguridad
Lógica y verificación
Emulación
Pruebas de Fuzz
Ejecución simbólica
Security and privacy
Formal methods and theory of security
Logic and verification
Testing
Fuzzing
Fuzz testing
title_short Fuzzing multiplataforma guiado con ejecución concólica
title_full Fuzzing multiplataforma guiado con ejecución concólica
title_fullStr Fuzzing multiplataforma guiado con ejecución concólica
title_full_unstemmed Fuzzing multiplataforma guiado con ejecución concólica
title_sort Fuzzing multiplataforma guiado con ejecución concólica
dc.creator.none.fl_str_mv Aznarez Rojo, Gastón
author Aznarez Rojo, Gastón
author_facet Aznarez Rojo, Gastón
author_role author
dc.contributor.none.fl_str_mv Wolovick, Nicolás
Curetti, Maria
Gutson, Daniel
dc.subject.none.fl_str_mv Seguridad y privacidad
Métodos formales y teoría de seguridad
Lógica y verificación
Emulación
Pruebas de Fuzz
Ejecución simbólica
Security and privacy
Formal methods and theory of security
Logic and verification
Testing
Fuzzing
Fuzz testing
topic Seguridad y privacidad
Métodos formales y teoría de seguridad
Lógica y verificación
Emulación
Pruebas de Fuzz
Ejecución simbólica
Security and privacy
Formal methods and theory of security
Logic and verification
Testing
Fuzzing
Fuzz testing
dc.description.none.fl_txt_mv Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2023.
Fil: Aznarez Rojo, Gastón. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
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.
Fuzzing, or Fuzz testing, is the process of finding security vulnerabilities in programs by providing invalid, unexpected, or random data as input. Since this process is highly dependent on the input interface and the execution en- vironment of the subject under analysis, performing Fuzzing on programs with complex interfaces and/or inflexible execution environments becomes more com- plicated and almost unfeasible. In this work, we will develop and analyze a tool to perform guided Fuzzing tests on binaries compiled for foreign platforms and dependent on the execution environment. The process is carried out by capturing the program under analysis, emula- ting it, and using dynamic symbolic execution to generate test cases, aiming to achieve greater program coverage with the fewest attempts. Additionally, the challenges imposed by the nature of the problem, the tools used, and the fuzzer architecture will be presented. Finally, the tool was tested with a case study on a specific platform to find a previously introduced bug and to exploit the program.
Fil: Aznarez Rojo, Gastón. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
description Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2023.
publishDate 2023
dc.date.none.fl_str_mv 2023
dc.type.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_7a1f
info:ar-repo/semantics/tesisDeGrado
format bachelorThesis
status_str publishedVersion
dc.identifier.none.fl_str_mv http://hdl.handle.net/11086/552169
url http://hdl.handle.net/11086/552169
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositorio Digital Universitario (UNC)
instname:Universidad Nacional de Córdoba
instacron:UNC
reponame_str Repositorio Digital Universitario (UNC)
collection Repositorio Digital Universitario (UNC)
instname_str Universidad Nacional de Córdoba
instacron_str UNC
institution UNC
repository.name.fl_str_mv Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdoba
repository.mail.fl_str_mv oca.unc@gmail.com
_version_ 1846143319070998528
score 12.712165