Return to search

Stack smashing attack detection methodology for secure program execution based on hardware

Submitted by Setor de Tratamento da Informa??o - BC/PUCRS (tede2@pucrs.br) on 2016-12-01T15:53:47Z
No. of bitstreams: 1
DIS_RAPHAEL_SEGABINAZZI_FERREIRA_COMPLETO.pdf: 2073138 bytes, checksum: d5db8a28bdcf83806ed8388083415120 (MD5) / Made available in DSpace on 2016-12-01T15:53:47Z (GMT). No. of bitstreams: 1
DIS_RAPHAEL_SEGABINAZZI_FERREIRA_COMPLETO.pdf: 2073138 bytes, checksum: d5db8a28bdcf83806ed8388083415120 (MD5)
Previous issue date: 2016-08-25 / Coordena??o de Aperfei?oamento de Pessoal de N?vel Superior - CAPES / A necessidade de inclus?o de mecanismos de seguran?a em dispositivos eletr?nicos cresceu consideravelmente com o aumento do uso destes dispositivos no dia a dia das pessoas. ? medida que estes dispositivos foram ficando cada vez mais conectados a rede e uns aos outros, estes mesmos se tornaram vulner?veis a tentativa de ataques e intrus?es remotas. Ataques deste tipo chegam normalmente como dados recebidos por meio de um canal comum de comunica??o, uma vez presente na mem?ria do dispositivo estes dados podem ser capazes de disparar uma falha de software pr?-existente, e, a partir desta falha, desviar o fluxo do programa para o c?digo malicioso inserido. Vulnerabilidades de software foram, nos ?ltimos anos, a principal causa de incidentes relacionados ? quebra de seguran?a em sistemas e computadores. Adicionalmente, estouros de buffer (buffer overflow) s?o as vulnerabilidades mais exploradas em software, chegando a atingir, metade das recomenda??es de seguran?a do grupo norte americano Computer Emergency Readiness Team (CERT). A partir deste cen?rio citado acima, o presente trabalho apresenta um novo m?todo baseado em hardware para detec??o de ataques ocorridos a partir de estouros de buffer chamados de Stack Smashing, prop?e ainda de maneira preliminar, um mecanismo de recupera??o do sistema a partir da detec??o de um ataque ou falha. Comparando com m?todos j? existentes na bibliografia, a t?cnica apresentada por este trabalho n?o necessita de recompila??o de c?digo e, adicionalmente, dispensa o uso de software (como, por exemplo, um Sistema Operacional) para fazer o gerenciamento do uso de mem?ria. Monitorando sinais internos do pipeline de um processador o presente trabalho ? capaz de detectar quando um endere?o de retorno de uma fun??o est? corrompido, e a partir desta detec??o, voltar o sistema para um estado seguro salvo previamente em uma regi?o segura de mem?ria. Para validar este trabalho um programa simples, em linguagem C, foi implementado, este programa for?a uma condi??o de buffer overflow. Esta condi??o deve ser reconhecida pelo sistema implementado neste trabalho e, ainda, recuperada adequadamente. J? para avalia??o do sistema, a fim de verificar como o mesmo se comporta em situa??es reais, programas testes foram implementados em linguagem C com pequenos trechos de c?digos maliciosos. Estes trechos foram obtidos de vulnerabilidades reportadas na base de dados Common Vulnerabilities and Exposures (CVE). Estes pequenos c?digos maliciosos foram adaptados e inseridos nos fontes do programa de teste. Com isso, enquanto estes programas est?o em execu??o o sistema implementado por este trabalho ? avaliado. Durante esta avalia??o s?o observados: (1) a capacidade de detec??o de modifica??o no endere?o de retorno de fun??es e (2) a recupera??o do sistema. Finalmente, ? calculado o overhead de ?rea e de tempo de execu??o.De acordo com resultados e implementa??es preliminares este trabalho conseguiu atingir 100% da detec??o de ataques sobre uma baixa lat?ncia por detec??o de modifica??es de endere?o de retorno de fun??es salva no stack. Foi capaz, tamb?m, de se recuperar nos casos de testes implementados. E, finalmente, resultando em baixo overhead de ?rea sem nenhuma degrada??o de performance na detec??o de modifica??o do endere?o de retorno. / The need to include security mechanisms in electronic devices has dramatically grown with the widespread use of such devices in our daily life. With the increasing interconnectivity among devices, attackers can now launch attacks remotely. Such attacks arrive as data over a regular communication channel and, once resident in the program memory, they trigger a pre-existing software flaw and transfer control to the attacker?s malicious code. Software vulnerabilities have been the main cause of computer security incidents. Among these, buffer overflows are perhaps the most widely exploited type of vulnerability, accounting for approximately half the Computer Emergency Readiness Team (CERT) advisories in recent years. In this scenario, the methodology proposed in this work presents a new hardware-based approach to detect stack smashing buffer overflow attack and recover the system after the attack detection. Compared to existing approaches, the proposed technique does not need application code recompilation or use of any kind of software (e.g., an Operating System - OS) to manage memory usage. By monitoring processor pipeline internal signals, this approach is able to detect when the return address of a function call has been corrupted. At this moment, a rollback-based recovery procedure is triggered, which drives the system into a safe state previously stored in a protected memory area. This approach was validated by implementing a C program that forces a buffer overflow condition, which is promptly recognized by the proposed approach. From this point on, the system is then properly recovered. Having in mind to evaluate the system under more realistic conditions, test programs were implemented with pieces of known vulnerable C codes. These vulnerable pieces of codes were obtained from vulnerabilities reported in the Common Vulnerabilities and Exposures (CVE). These code snippets were adapted and included in the test programs. Then, while running these programs the proposed system was evaluated. This evaluation was done by observing the capability of the proposed approach to: (1) detect an invalid return address and (2) to safely recovery the system from the faulty condition. Finally, the execution time and area overheads were determined. According to preliminary implementations and results this approach guarantees 100% attack detection with negligible detection latency by recognizing return address overwritten within a few processor clock cycles.

Identiferoai:union.ndltd.org:IBICT/oai:tede2.pucrs.br:tede/7073
Date25 August 2016
CreatorsFerreira, Raphael Segabinazzi
ContributorsVargas, Fabian Luis
PublisherPontif?cia Universidade Cat?lica do Rio Grande do Sul, Programa de P?s-Gradua??o em Engenharia El?trica, PUCRS, Brasil, Faculdade de Engenharia
Source SetsIBICT Brazilian ETDs
LanguageEnglish
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Formatapplication/pdf
Sourcereponame:Biblioteca Digital de Teses e Dissertações da PUC_RS, instname:Pontifícia Universidade Católica do Rio Grande do Sul, instacron:PUC_RS
Rightsinfo:eu-repo/semantics/openAccess
Relation207662918905964549, 600, 600, 600, 600, -655770572761439785, 4518971056484826825, 2075167498588264571

Page generated in 0.0016 seconds