Compatibilização de binários legados com a proteção de rastreamento de desvios indiretos
| dc.contributor.advisor-co1 | Ferreira, Mateus Felipe Tymburibá | |
| dc.contributor.advisor-co1Lattes | http://lattes.cnpq.br/5863316017246857 | eng |
| dc.contributor.advisor-co1orcid | https://orcid.org/0000-0002-6626-1786 | eng |
| dc.contributor.advisor1 | Souto, Eduardo James Pereira | |
| dc.contributor.advisor1Lattes | http://lattes.cnpq.br/3875301617975895 | eng |
| dc.contributor.advisor1orcid | https://orcid.org/0000-0003-0003-908X | eng |
| dc.contributor.referee2 | Moreira, João Batista Correa Gomes | |
| dc.contributor.referee2Lattes | http://lattes.cnpq.br/6120040174866328 | eng |
| dc.contributor.referee3 | Martins, Gilbert Breves | |
| dc.contributor.referee3Lattes | http://lattes.cnpq.br/4932200790121123 | eng |
| dc.contributor.referee3orcid | https://orcid.org/0009-0004-8844-2651 | eng |
| dc.creator | Ribeiro, Bruno Rocha | |
| dc.creator.Lattes | http://lattes.cnpq.br/2736528926891271 | eng |
| dc.creator.orcid | https://orcid.org/0009-0007-6687-3698 | eng |
| dc.date.issued | 2026-07-28 | |
| dc.description.abstract | The increasing sophistication of code-reuse attacks, such as Return-Oriented Programming (ROP) and Jump-Oriented Programming (JOP), has motivated the adoption of stronger mechanisms for protecting control-flow integrity. Among these protections, Intel's Control-flow Enforcement Technology (CET) stands out, consisting primarily of Indirect Branch Tracking (IBT) and Shadow Stack. Although modern compilers can generate CET-compatible binaries, much legacy software remains unprotected because it cannot be recompiled, either due to unavailable source code, maintenance constraints, or dependence on older environments. This work proposes BIN2CET, an automated static binary rewriting system that makes legacy ELF binaries compatible with Intel CET's IBT mechanism without requiring source code or complete control-flow graph recovery. The approach combines three complementary strategies: inserting endbr64 instructions at recovered indirect-branch targets, preserving overwritten instructions through relocation-aware trampolines, and conservatively using notrack when safe target rewriting is not possible. The system uses LIEF for ELF-level manipulation and an extended version of E9Patch to materialize trampolines, redirect control flow, and preserve the semantics of position-sensitive instructions, such as RIP-relative references. The experimental evaluation was conducted on the 102 programs of the Coreutils suite, compiled as PIE (Position-Independent Executable) binaries under the -O0, -O2, and -O3 optimization levels. The results indicate complete coverage of recovered function-entry targets in the unoptimized scenario and coverage above 80% in optimized layouts. Performance measurements show execution overhead between approximately 22% and 42% for the main Linux perf timing counters, while binary size increases remain consistent with the insertion of markers, redirections, and trampolines. In addition, the attack surface analysis with ROPgadget indicates that the effective surface of policy-valid indirect transfers is reduced to less than 1% of the syntactic gadget space identified. These results show that automated static binary rewriting is a viable path for making legacy software compatible with IBT requirements, while preserving executable functionality and supporting future binary-hardening extensions. | eng |
| dc.description.resumo | A crescente sofisticação dos ataques por reutilização de código, como Return-Oriented Programming (ROP) e Jump-Oriented Programming (JOP), tem motivado a adoção de mecanismos mais robustos de proteção da integridade do fluxo de controle. Entre essas proteções, destaca-se a Control-flow Enforcement Technology (CET) da Intel, composta principalmente pelos mecanismos Indirect Branch Tracking (IBT) e Shadow Stack. Embora compiladores modernos já sejam capazes de gerar binários compatíveis com CET, uma parcela significativa de softwares legados permanece desprotegida por não poder ser recompilada, seja pela indisponibilidade do código-fonte, por restrições de manutenção ou por dependência de ambientes antigos. Este trabalho propõe o BIN2CET, um sistema automatizado de reescrita binária estática para compatibilizar binários ELF legados com o mecanismo IBT da Intel CET, sem exigir acesso ao código-fonte nem recuperação completa do grafo de fluxo de controle. A abordagem combina três estratégias complementares: inserção de instruções endbr64 em alvos recuperados de desvios indiretos, preservação de instruções sobrescritas por meio de trampolins cientes de realocação e uso conservador de notrack quando a reescrita segura do alvo não é possível. O sistema utiliza a biblioteca LIEF para manipulação em nível de ELF e uma versão estendida do E9Patch para materialização de trampolins, redirecionamento de fluxo e preservação semântica de instruções sensíveis à posição, como referências relativas a RIP. A avaliação experimental foi conduzida sobre os 102 programas da suíte Coreutils, compilados como binários PIE (Position-Independent Executable) sob os níveis de otimização -O0, -O2 e -O3. Os resultados indicam cobertura completa dos alvos recuperados de entrada de função no cenário não otimizado e cobertura superior a 80% nos layouts otimizados. As medições de desempenho apontam overhead de execução entre aproximadamente 22% e 42% para os principais contadores de tempo do Linux perf, enquanto a análise de tamanho binário mostra crescimento estrutural compatível com a inserção de marcadores, redirecionamentos e trampolins. Além disso, a análise da superfície de ataque, conduzida com ROPgadget, indica que a superfície efetiva de transferências indiretas válida pela política é reduzida para menos de 1% do espaço sintático de gadgets identificados. Esses resultados indicam que a reescrita binária estática automatizada constitui um caminho viável para compatibilizar softwares legados com os requisitos do IBT, preservando funcionalidade dos executáveis e oferecendo uma base técnica para extensões futuras de endurecimento binário. | eng |
| dc.format | application/pdf | * |
| dc.identifier.citation | RIBEIRO, Bruno Rocha. Compatibilização de binários legados com a proteção de rastreamento de desvios indiretos. 2026. 125 f. Dissertação (Mestrado em Informática) - Universidade Federal do Amazonas, Manaus (AM), 2026. | eng |
| dc.identifier.uri | https://tede.ufam.edu.br/handle/tede/11995 | |
| dc.language | por | eng |
| dc.publisher | Universidade Federal do Amazonas | eng |
| dc.publisher.country | Brasil | eng |
| dc.publisher.department | Instituto de Ciências Exatas | eng |
| dc.publisher.initials | UFAM | eng |
| dc.publisher.program | Programa de Pós-graduação em Informática | eng |
| dc.rights | Acesso Aberto | |
| dc.rights.uri | https://creativecommons.org/licenses/by-nc-nd/4.0/ | por |
| dc.subject | Reescrita binária estática | por |
| dc.subject | Intel CET - Control-flow Enforcement Technology | eng |
| dc.subject | IBT - Indirect Branch Tracking | eng |
| dc.subject | Binários Legados | por |
| dc.subject | Integridade de Fluxo de Controle | por |
| dc.subject | Endbr64 | por |
| dc.subject | Notrack | por |
| dc.subject.cnpq | CIENCIAS EXATAS E DA TERRA: CIENCIA DA COMPUTACAO: METODOLOGIA E TECNICAS DA COMPUTACAO: ENGENHARIA DE SOFTWARE | eng |
| dc.subject.cnpq | CIENCIAS EXATAS E DA TERRA: CIENCIA DA COMPUTACAO: SISTEMAS DE COMPUTACAO: SOFTWARE BASICO | eng |
| dc.thumbnail.url | https://tede.ufam.edu.br/retrieve/98252/DISS_BrunoRibeiro_PPGI.pdf.jpg | * |
| dc.title | Compatibilização de binários legados com a proteção de rastreamento de desvios indiretos | eng |
| dc.type | Dissertação | eng |
Arquivos
Pacote original
1 - 4 de 4
Carregando...
- Nome:
- DISS_BrunoRibeiro_PPGI.pdf
- Tamanho:
- 2,33 MB
- Formato:
- Adobe Portable Document Format
- Descrição:
Carregando...
- Nome:
- Ata de Defesa_Bruno Rocha Ribeiro.pdf
- Tamanho:
- 109,44 KB
- Formato:
- Documentos internos
- Descrição:
- Ata de defesa
Carregando...
- Nome:
- Folha de Aprovação_Bruno Rocha Ribeiro.pdf
- Tamanho:
- 96,01 KB
- Formato:
- Documentos internos
- Descrição:
- Folha de aprovação
Carregando...
- Nome:
- Carta de Autorização de Encaminhamento.pdf
- Tamanho:
- 167,57 KB
- Formato:
- Documentos internos
- Descrição:
- Autorização de encaminhamento
Pacote de licença
1 - 1 de 1
Carregando...
- Nome:
- license.txt
- Tamanho:
- 2,32 KB
- Formato:
- Item-specific license agreed upon to submission
- Descrição:
