Estudo da vulnerabilidade de Heap Overflow e medidas de proteção
Autor(a) principal: | |
---|---|
Data de Publicação: | 2011 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRGS |
Texto Completo: | http://hdl.handle.net/10183/36924 |
Resumo: | Este trabalho tem por objetivo o estudo da vulnerabilidade Heap Overflow, também chamada de Heap Overrun, e das medidas de proteção adotadas para impedir esta vulnerabilidade. Devido o funcionamento do Heap Overflow ser altamente dependente do hardware e do sistema operacional, este estudo é focado na arquitetura i386 e no sistema operacional Linux/Unix. Inicialmente são vistos conceitos iniciais importantes para o entendimento desta vulnerabilidade, como conceitos sobre Heap Overflow, sobre o sistema Linux, sobre processos e a estrutura de um processo na memória e sobre Shellcodes. Após isto, são descritos os dois grupos de ataques de Heap Overflow: o primeiro grupo consiste em alterar conteúdo de blocos adjacentes da memória Heap e o segundo grupo consiste em alteração das informações de gerenciamento da memória Heap. É dada uma maior ênfase no estudo do segundo grupo fazendo um estudo do alocador de memória dinâmica do Linux e a descrição da exploração do Heap Overflow usando a macro unlink(). Também são descritas medidas de proteção implementadas de modo a evitar o Heap Overflow como modificações implementadas nas versões mais atuais da biblioteca Glibc, mecanismos de hardware e software, implementações no compilador e no sistema operacional, uso de programas auxiliares e cuidados que o programador deve ter para evitar a vulnerabilidade. Por fim, é descrita de forma mais resumida a estrutura da memória Heap do Sistema Operacional Windows e a maneira que é explorada a vulnerabilidade Heap Overflow neste sistema, comparando com os conceitos estudados de forma mais detalhada no sistema operacional Linux. É verificado que devido aos conceitos de implementação da memória Heap terem tido muitas semelhanças, a vulnerabilidade ocorre de forma semelhante no sistema Windows, da mesma forma que ocorre em outros sistemas operacionais que utilizam os mesmos conceitos. |
id |
UFRGS-2_b3de5547e52cfc3d3a0aaab5d74a6fb3 |
---|---|
oai_identifier_str |
oai:www.lume.ufrgs.br:10183/36924 |
network_acronym_str |
UFRGS-2 |
network_name_str |
Repositório Institucional da UFRGS |
repository_id_str |
|
spelling |
Coimbra, Júlio Francisco MonteiroWeber, Raul Fernando2012-01-26T01:20:02Z2011http://hdl.handle.net/10183/36924000819136Este trabalho tem por objetivo o estudo da vulnerabilidade Heap Overflow, também chamada de Heap Overrun, e das medidas de proteção adotadas para impedir esta vulnerabilidade. Devido o funcionamento do Heap Overflow ser altamente dependente do hardware e do sistema operacional, este estudo é focado na arquitetura i386 e no sistema operacional Linux/Unix. Inicialmente são vistos conceitos iniciais importantes para o entendimento desta vulnerabilidade, como conceitos sobre Heap Overflow, sobre o sistema Linux, sobre processos e a estrutura de um processo na memória e sobre Shellcodes. Após isto, são descritos os dois grupos de ataques de Heap Overflow: o primeiro grupo consiste em alterar conteúdo de blocos adjacentes da memória Heap e o segundo grupo consiste em alteração das informações de gerenciamento da memória Heap. É dada uma maior ênfase no estudo do segundo grupo fazendo um estudo do alocador de memória dinâmica do Linux e a descrição da exploração do Heap Overflow usando a macro unlink(). Também são descritas medidas de proteção implementadas de modo a evitar o Heap Overflow como modificações implementadas nas versões mais atuais da biblioteca Glibc, mecanismos de hardware e software, implementações no compilador e no sistema operacional, uso de programas auxiliares e cuidados que o programador deve ter para evitar a vulnerabilidade. Por fim, é descrita de forma mais resumida a estrutura da memória Heap do Sistema Operacional Windows e a maneira que é explorada a vulnerabilidade Heap Overflow neste sistema, comparando com os conceitos estudados de forma mais detalhada no sistema operacional Linux. É verificado que devido aos conceitos de implementação da memória Heap terem tido muitas semelhanças, a vulnerabilidade ocorre de forma semelhante no sistema Windows, da mesma forma que ocorre em outros sistemas operacionais que utilizam os mesmos conceitos.This work aims to study the Heap Overflow vulnerability, also called Heap Overrun, and the protective measures taken to prevent this vulnerability. Because the operation of the Heap Overflow is highly dependent on the hardware and operating system, this study focuses on the i386 architecture and operating system Linux / Unix. Initially are seen important basic concepts for understanding the operation of this vulnerability, as concepts about Heap Overflow, about the Linux system, about processes and the structure of a process in memory and about Shellcodes. After this, the two groups of Heap Overflow attacks are described: the first group is that changes the contents of adjacent blocks of Heap memory and the second group consist in alteration of the information management of heap memory. Greater emphasis is given to the study of the second group by a study of the dynamic memory allocator of Linux and the description of the exploit of Heap Overflow using the macro unlink(). It also describes protective measures implemented to prevent the Heap Overflow as changes implemented in the most updated versions of Glibc library, mechanisms of hardware and software, implementations in the compiler and in the operating system, use of auxiliary programs and care that the developer should take to avoid the vulnerability. Finally, the structure of the Heap memory of the Windows OS is described more shortly, as well as how the vulnerability is exploited in this system, in comparison to the concepts studied in more detail in the Linux operating System. It is found that, due to the concepts of implementation of Heap memory have many similarities, the vulnerability occurs similarly in the Windows system, in the same way as occurs in other operating systems that use the same concepts.application/pdfporSeguranca : ComputadoresHeap overflowHeap overrunBuffer overflowExploitVulnerabilityEstudo da vulnerabilidade de Heap Overflow e medidas de proteçãoStudy of heap overflow vulnerability and protective measures info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2011Ciência da Computação: Ênfase em Ciência da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT000819136.pdf.txt000819136.pdf.txtExtracted Texttext/plain130936http://www.lume.ufrgs.br/bitstream/10183/36924/2/000819136.pdf.txtacac8a43df2eb59ce5593baac4b5d8efMD52ORIGINAL000819136.pdf000819136.pdfTexto completoapplication/pdf728899http://www.lume.ufrgs.br/bitstream/10183/36924/1/000819136.pdf1f6bd6e40bff86a3fccd125ccd3ffe1fMD51THUMBNAIL000819136.pdf.jpg000819136.pdf.jpgGenerated Thumbnailimage/jpeg1059http://www.lume.ufrgs.br/bitstream/10183/36924/3/000819136.pdf.jpg3ce6666ad6aa164c5e2a762170a5e6f2MD5310183/369242018-10-05 08:40:57.646oai:www.lume.ufrgs.br:10183/36924Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2018-10-05T11:40:57Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false |
dc.title.pt_BR.fl_str_mv |
Estudo da vulnerabilidade de Heap Overflow e medidas de proteção |
dc.title.alternative.en.fl_str_mv |
Study of heap overflow vulnerability and protective measures |
title |
Estudo da vulnerabilidade de Heap Overflow e medidas de proteção |
spellingShingle |
Estudo da vulnerabilidade de Heap Overflow e medidas de proteção Coimbra, Júlio Francisco Monteiro Seguranca : Computadores Heap overflow Heap overrun Buffer overflow Exploit Vulnerability |
title_short |
Estudo da vulnerabilidade de Heap Overflow e medidas de proteção |
title_full |
Estudo da vulnerabilidade de Heap Overflow e medidas de proteção |
title_fullStr |
Estudo da vulnerabilidade de Heap Overflow e medidas de proteção |
title_full_unstemmed |
Estudo da vulnerabilidade de Heap Overflow e medidas de proteção |
title_sort |
Estudo da vulnerabilidade de Heap Overflow e medidas de proteção |
author |
Coimbra, Júlio Francisco Monteiro |
author_facet |
Coimbra, Júlio Francisco Monteiro |
author_role |
author |
dc.contributor.author.fl_str_mv |
Coimbra, Júlio Francisco Monteiro |
dc.contributor.advisor1.fl_str_mv |
Weber, Raul Fernando |
contributor_str_mv |
Weber, Raul Fernando |
dc.subject.por.fl_str_mv |
Seguranca : Computadores |
topic |
Seguranca : Computadores Heap overflow Heap overrun Buffer overflow Exploit Vulnerability |
dc.subject.eng.fl_str_mv |
Heap overflow Heap overrun Buffer overflow Exploit Vulnerability |
description |
Este trabalho tem por objetivo o estudo da vulnerabilidade Heap Overflow, também chamada de Heap Overrun, e das medidas de proteção adotadas para impedir esta vulnerabilidade. Devido o funcionamento do Heap Overflow ser altamente dependente do hardware e do sistema operacional, este estudo é focado na arquitetura i386 e no sistema operacional Linux/Unix. Inicialmente são vistos conceitos iniciais importantes para o entendimento desta vulnerabilidade, como conceitos sobre Heap Overflow, sobre o sistema Linux, sobre processos e a estrutura de um processo na memória e sobre Shellcodes. Após isto, são descritos os dois grupos de ataques de Heap Overflow: o primeiro grupo consiste em alterar conteúdo de blocos adjacentes da memória Heap e o segundo grupo consiste em alteração das informações de gerenciamento da memória Heap. É dada uma maior ênfase no estudo do segundo grupo fazendo um estudo do alocador de memória dinâmica do Linux e a descrição da exploração do Heap Overflow usando a macro unlink(). Também são descritas medidas de proteção implementadas de modo a evitar o Heap Overflow como modificações implementadas nas versões mais atuais da biblioteca Glibc, mecanismos de hardware e software, implementações no compilador e no sistema operacional, uso de programas auxiliares e cuidados que o programador deve ter para evitar a vulnerabilidade. Por fim, é descrita de forma mais resumida a estrutura da memória Heap do Sistema Operacional Windows e a maneira que é explorada a vulnerabilidade Heap Overflow neste sistema, comparando com os conceitos estudados de forma mais detalhada no sistema operacional Linux. É verificado que devido aos conceitos de implementação da memória Heap terem tido muitas semelhanças, a vulnerabilidade ocorre de forma semelhante no sistema Windows, da mesma forma que ocorre em outros sistemas operacionais que utilizam os mesmos conceitos. |
publishDate |
2011 |
dc.date.issued.fl_str_mv |
2011 |
dc.date.accessioned.fl_str_mv |
2012-01-26T01:20:02Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
bachelorThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10183/36924 |
dc.identifier.nrb.pt_BR.fl_str_mv |
000819136 |
url |
http://hdl.handle.net/10183/36924 |
identifier_str_mv |
000819136 |
dc.language.iso.fl_str_mv |
por |
language |
por |
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 Institucional da UFRGS instname:Universidade Federal do Rio Grande do Sul (UFRGS) instacron:UFRGS |
instname_str |
Universidade Federal do Rio Grande do Sul (UFRGS) |
instacron_str |
UFRGS |
institution |
UFRGS |
reponame_str |
Repositório Institucional da UFRGS |
collection |
Repositório Institucional da UFRGS |
bitstream.url.fl_str_mv |
http://www.lume.ufrgs.br/bitstream/10183/36924/2/000819136.pdf.txt http://www.lume.ufrgs.br/bitstream/10183/36924/1/000819136.pdf http://www.lume.ufrgs.br/bitstream/10183/36924/3/000819136.pdf.jpg |
bitstream.checksum.fl_str_mv |
acac8a43df2eb59ce5593baac4b5d8ef 1f6bd6e40bff86a3fccd125ccd3ffe1f 3ce6666ad6aa164c5e2a762170a5e6f2 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS) |
repository.mail.fl_str_mv |
|
_version_ |
1815447071956664320 |