Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis

Detalhes bibliográficos
Autor(a) principal: Ferreira, Diogo Tomás
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/58214
Resumo: Tese de Mestrado, Segurança Informática, 2022, Universidade de Lisboa, Faculdade de Ciências
id RCAP_7da106874f16f8ce3d16b69b4609f297
oai_identifier_str oai:repositorio.ul.pt:10451/58214
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysisVulnerabilidades de Stack OverflowCorreção de Código BinárioEngenharia ReversaAnálise DinâmicaSegurança de SoftwareTeses de mestrado - 2022Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaTese de Mestrado, Segurança Informática, 2022, Universidade de Lisboa, Faculdade de CiênciasThe C programming language is widely used in embedded systems, kernel and hardware programming, making it one of the most commonly used programming languages. However, C lacks of boundary verification of variables, making it one of the most vulnerable languages. Because of this and associated with its high usability, it is also the language with most reported vulnerabilities in the past ten years, being the memory corruption the most common type of vulnerabilities, specifically buffer overflows. These vulnerabilities when exploited can produce critical consequences, being thus extremely important not only to correctly identify these vulnerabilities but also to properly fix them. This work aims to study buffer overflow vulnerabilities in C binary programs by identifying possible malicious inputs that can trigger such vulnerabilities and finding their root cause in order to mitigate the vulnerabilities by rewriting the binary assembly code and thus generating a new binary without the original flaw. The main focus of this thesis is the use of binary patching to automatically fix stack overflow vulnerabilities and validate its effectiveness while ensuring that these do not add new vulnerabilities. Working with the binary code of applications and without accessing their source code is a challenge because any required change to its binary code (i.e, assembly) needs to take into consideration that new instructions must be allocated, and this typically means that existing instructions will need to be moved to create room for new ones and recover the control flow information, otherwise the application would be compromised. The approach we propose to address this problem was successfully implemented in a tool and evaluated with a set of test cases and real applications. The evaluation results showed that the tool was effective in finding vulnerabilities, as well as in patching them.Medeiros, Ibéria Vitória de SousaRepositório da Universidade de LisboaFerreira, Diogo Tomás2023-06-14T15:21:26Z202220222022-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/58214enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T17:06:58Zoai:repositorio.ul.pt:10451/58214Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T22:08:31.567402Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
title Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
spellingShingle Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
Ferreira, Diogo Tomás
Vulnerabilidades de Stack Overflow
Correção de Código Binário
Engenharia Reversa
Análise Dinâmica
Segurança de Software
Teses de mestrado - 2022
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
title_full Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
title_fullStr Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
title_full_unstemmed Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
title_sort Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
author Ferreira, Diogo Tomás
author_facet Ferreira, Diogo Tomás
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 Ferreira, Diogo Tomás
dc.subject.por.fl_str_mv Vulnerabilidades de Stack Overflow
Correção de Código Binário
Engenharia Reversa
Análise Dinâmica
Segurança de Software
Teses de mestrado - 2022
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Vulnerabilidades de Stack Overflow
Correção de Código Binário
Engenharia Reversa
Análise Dinâmica
Segurança de Software
Teses de mestrado - 2022
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Tese de Mestrado, Segurança Informática, 2022, Universidade de Lisboa, Faculdade de Ciências
publishDate 2022
dc.date.none.fl_str_mv 2022
2022
2022-01-01T00:00:00Z
2023-06-14T15:21:26Z
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/10451/58214
url http://hdl.handle.net/10451/58214
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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134639617474560