Removal of vulnerabilities in binary code by program model checking and concolic execution

Detalhes bibliográficos
Autor(a) principal: Ferreirinha, Luís Pedro Félix
Data de Publicação: 2024
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Texto Completo: http://hdl.handle.net/10400.5/95544
Resumo: Tese de Mestrado, Informática, 2024, Universidade de Lisboa, Faculdade de Ciências
id RCAP_410873eafe95fcee01a8c465baaeca63
oai_identifier_str oai:repositorio.ulisboa.pt:10400.5/95544
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Removal of vulnerabilities in binary code by program model checking and concolic executionVerificação de ModelosVulnerabilidades de Overflow na PilhaCódigo BinárioExecução ConcólicaAnálise EstáticaTeses de mestrado - 2024Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaTese de Mestrado, Informática, 2024, Universidade de Lisboa, Faculdade de CiênciasThe C programming language, prevalent in Cyber-Physical systems, is crucial for system control where reliability is critical. However, it is also commonly susceptible to vulnerabilities, particularly buffer overflows, which are ranked among the most dangerous due to their potential for catastrophic consequences. Traditional vulnerability discovery techniques such as static and dynamic analysis, often struggle with scalability and precision when applied directly to the binary code of C. This dissertation introduces a novel approach designed to overcome these limitations by leveraging model checking and concolic execution techniques to verify security properties, defined in Linear Temporal Logic, of a program’s stack memory in binary code, and trampoline techniques to fix the identified security issues. The developed tool, BASICS: Binary Analysis and Stack Integrity Checker with Patching, constructs a memory state space from a program’s control flow graph and simulates function calls and loop constructs using concolic execution. Security properties defined in LTL model the behavior of buffer overflows, and BASICS identifies these vulnerabilities by analyzing counter-example traces generated when a security property is violated. The tool then addresses these vulnerabilities with a trampoline-based patching method. To ensure the effectiveness of the patches, BASICS tests the patched binaries with crash-inducing inputs extracted during concolic execution, confirming the successful removal of vulnerabilities. BASICS was evaluated using a dataset of small programs from NIST SARD and larger open-source applications. The evaluation demonstrated the tool’s effectiveness in detecting and patching buffer overflow vulnerabilities. This dissertation contributes to the field of computer security by introducing a new model checking approach for binary analysis, providing a framework for formal reasoning about stack memory, and delivering a customizable, open-source tool for detecting and patching vulnerabilities.Medeiros, Ibéria Vitória de SousaRepositório da Universidade de LisboaFerreirinha, Luís Pedro Félix2024-11-21T18:47:23Z202420242024-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10400.5/95544enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2025-03-17T16:28:08Zoai:repositorio.ulisboa.pt:10400.5/95544Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-29T04:16:08.902774Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Removal of vulnerabilities in binary code by program model checking and concolic execution
title Removal of vulnerabilities in binary code by program model checking and concolic execution
spellingShingle Removal of vulnerabilities in binary code by program model checking and concolic execution
Ferreirinha, Luís Pedro Félix
Verificação de Modelos
Vulnerabilidades de Overflow na Pilha
Código Binário
Execução Concólica
Análise Estática
Teses de mestrado - 2024
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Removal of vulnerabilities in binary code by program model checking and concolic execution
title_full Removal of vulnerabilities in binary code by program model checking and concolic execution
title_fullStr Removal of vulnerabilities in binary code by program model checking and concolic execution
title_full_unstemmed Removal of vulnerabilities in binary code by program model checking and concolic execution
title_sort Removal of vulnerabilities in binary code by program model checking and concolic execution
author Ferreirinha, Luís Pedro Félix
author_facet Ferreirinha, Luís Pedro Félix
author_role author
dc.contributor.none.fl_str_mv Medeiros, Ibéria Vitória de Sousa
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Ferreirinha, Luís Pedro Félix
dc.subject.por.fl_str_mv Verificação de Modelos
Vulnerabilidades de Overflow na Pilha
Código Binário
Execução Concólica
Análise Estática
Teses de mestrado - 2024
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Verificação de Modelos
Vulnerabilidades de Overflow na Pilha
Código Binário
Execução Concólica
Análise Estática
Teses de mestrado - 2024
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Tese de Mestrado, Informática, 2024, Universidade de Lisboa, Faculdade de Ciências
publishDate 2024
dc.date.none.fl_str_mv 2024-11-21T18:47:23Z
2024
2024
2024-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10400.5/95544
url http://hdl.handle.net/10400.5/95544
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.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:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833601998463696896