SMOV: protecting programs against buffer overflow in hardware
Carregando...
Arquivos
Data
Autor(es)
Título da Revista
ISSN da Revista
Título de Volume
Editor
Universidade Federal de Minas Gerais
Descrição
Tipo
Dissertação de mestrado
Título alternativo
Primeiro orientador
Membros da banca
Omar Paranaiba Vilela Neto
Antonio Otavio Fernandes
Ricardo Augusto Rabelo Oliveira
Sergio Vale Aguiar Campos
Antonio Otavio Fernandes
Ricardo Augusto Rabelo Oliveira
Sergio Vale Aguiar Campos
Resumo
Estouro de Arranjos (Buffer Overflow BOF) continua a ser uma das principais vulnerabilidades encontradas em software. Ano passado, a comunidade de Segurança da Informação foi surpreendida quando pesquisadores revelaram uma vulnerabilidade de BOF no OpenSSL.Linguagens de programação como C e C++, amplamente usadas para desenvolvimento de sistemas e em uma grande variedade de aplicações, não proveem Verificação de Limites de Arranjos (Array Bound Checks ABCs) nativamente. Existem inúmeras propostas quevisam a proteção de memória para essas linguagens, através de soluções baseadas em software ou hardware. Ainda assim, entretanto, essas técnicas acabam por comprometer o desempenho dos programas, o que não é uma solução ideal para o problema. Este trabalho apresenta uma nova abordagem para alcançar verificação de limites de arranjos e acesso à memória (quando permitido) através de uma única instrução. Nós discutimos como ela pode ser implementada em arquiteturas com tamanho variável de instruções e disponibilizamosuma implementação de referência.
Abstract
A Buffer Overflow (BOF) continues to be among the top causes of software vulnerabilities. Last year the security world was taken by surprise when researches unveiled a BOF in OpenSSL. Languages like C and C++, widely used for systems development and for a large variety of applications, do not provide native Array-Bound Checks (ABC). A myriadof proposals endeavor memory protection for such languages by employing both softwareand hardware-based solutions. Due to numerous reasons, none of them have yet reached the mainstream. In this work, we propose a novel approach to achieve an arrays bound-check and a memory access (when allowed) within a single instruction. We discuss how it can be implemented on variable-length ISAs and provide a reference implementation.
Assunto
Computação, Computadores Medidas de segurança, Redes de computadores Medidas de segurança
Palavras-chave
Buffer-overflow, Security, Computer Architectures