Please use this identifier to cite or link to this item: http://hdl.handle.net/10400.5/95544
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorMedeiros, Ibéria Vitória de Sousa-
dc.contributor.authorFerreirinha, Luís Pedro Félix-
dc.date.accessioned2024-11-21T18:47:23Z-
dc.date.available2024-11-21T18:47:23Z-
dc.date.issued2024-
dc.date.submitted2024-
dc.identifier.urihttp://hdl.handle.net/10400.5/95544-
dc.descriptionTese de Mestrado, Informática, 2024, Universidade de Lisboa, Faculdade de Ciênciaspt_PT
dc.description.abstractThe 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.pt_PT
dc.language.isoengpt_PT
dc.relationUIDB/00408/2020pt_PT
dc.rightsopenAccesspt_PT
dc.subjectVerificação de Modelospt_PT
dc.subjectVulnerabilidades de Overflow na Pilhapt_PT
dc.subjectCódigo Bináriopt_PT
dc.subjectExecução Concólicapt_PT
dc.subjectAnálise Estáticapt_PT
dc.subjectTeses de mestrado - 2024pt_PT
dc.titleRemoval of vulnerabilities in binary code by program model checking and concolic executionpt_PT
dc.typemasterThesispt_PT
thesis.degree.nameMestrado em Informáticapt_PT
dc.identifier.tid203741420-
dc.subject.fosDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informáticapt_PT
Appears in Collections:FC - Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
TM_Luís_Ferreirinha.pdf843,5 kBAdobe PDFView/Open


FacebookTwitterDeliciousLinkedInDiggGoogle BookmarksMySpace
Formato BibTex MendeleyEndnote 

Items in Repository are protected by copyright, with all rights reserved, unless otherwise indicated.