Automatic binary patching for flaws repairing using static rewriting and reverse dataflow analysis
Autor(a) principal: | |
---|---|
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 |