Estouro de Buffer em Sistemas
Por: HenriTI • 1/6/2015 • Artigo • 1.031 Palavras (5 Páginas) • 314 Visualizações
Sumário
Introdução________________________________________________________________03
O que é Buffer_____________________________________________________________04
O que é Estouro de Buffer e como ocorrem_______________________________________05
Defesas contra o Estouro de Buffer_____________________________________________06
Blibliografia_______________________________________________________________07
Introdução
Hoje em dia, existem diversos detalhes que podem colocar em risco os dados de um sistema de uma organização, por exemplo o uso inadequado das tecnologias disponíveis no mercado, acessos indevidos dentro da empresa, falta de manutenção ou atualização dos equipamentos e softwares de segurança, uso inadequado das estações de trabalho e etc.
Apesar do mercado da segurança da informação oferecer uma grande variedade de ferramentas para segurança de sistemas de informação, tais como firewall, antivírus e serviços de backup, um sistema nunca será totalmente seguro, pois hoje em dia existem muitas formas e técnicas para invadir, interceptar ou até comprometer dados de um sistema que são praticadas pelos assim chamados invasores, também conhecidos como Hackers (pessoas que desenvolvem ou praticam uso de programas maliciosos). A maioria das técnicas práticas já são conhecidas e geralmente as aplicações de segurança de sistemas de informação já possuem proteção contra elas, contudo, novas técnicas e meios sempre são criadas pelos Hackers.
Neste artigo, abordaremos uma das técnicas de invasão de sistemas de informação utilizadas, o Estouro de Buffer. Com o objetivo de apresentar soluções para proteger o sistema contra este tipo de técnica maliciosa, serão apresentados os erros mais comuns que podem contribuir para haja um estouro de buffer em um sistema e como evitá-los.
O que é Buffer
Buffer é um espaço de memória temporário (volátil) reservado para utilização de escrita e leitura de dados, podem ser encontrados nos dispositivos de armazenamento de memória de um computador, disco rígido, memória RAM e processadores.
O Buffer tem como principal objetivo, auxiliar em tarefas que exigem processamento, leitura e gravação dos dados que são mais utilizados no sistema operacional. No processamento, o buffer é aplicado para agilizar os processos de cálculos e leitura de dados entre o processador ea memória RAM, de forma muito veloz, pois utiliza um dispositivo sofisticado para atender às solicitações, é denominado Memória Cache. Para tarefas de leitura e gravação de dados, o buffer auxilia armazenando dados temporariamente para evitar erros e perda de dados, um exemplo é a Área de Transferência do Windows, onde os arquivos utilizados de uma determinada aplicação ficam armazenados temporariamente.
Para facilitar o entendimento do que é um Buffer, tomemos como exemplo a recepção de uma biblioteca, onde o bibliotecário responsável deva atender as solicitações feitas pelos leitores, retirando e repondo os livros das prateleiras para fazer os empréstimos:
Exemplo: Suponhamos que em apenas uma manhã, dez livros tenham sidos devolvidos ao bibliotecário, logo estes livros foram devolvidos em seus respectivos lugares nas prateleiras. Durante a tarde deste mesmo dia, cinco dos livros devolvidos pela manhã, foram solicitados novamente, então o bibliotecário foi novamente retirá-los para fazer o novo empréstimo, nota-se então que houve um retrabalho, para resolver isto, o funcionário poderia empilhar até os dez últimos livros devolvidos recentemente em um local próximo para que não haja a necessidade de ir retira-los novamente em tão curto período de tempo.
O exemplo acima demonstra de forma simples o conceito de um Buffer de memória. O objetivo é tornar processos repetitivos mais eficazes.
O que é Estouro de Buffer e como ocorrem
Um Estouro de Buffer (Transbordamento de Dados) é um tipo de vulnerabilidade, onde uma aplicação tenta armazenar mais dados do que o espaço reservado na memória (buffer) comporta, é como se um copo cheio de água estive transbordando, espalhando água pros lados. Isso ocorre quando o invasor consegue enviar dados além da capacidade do buffer de tamanho fixo do aplicativo e esse aplicativo não faz uma verificação para garantir que isso não aconteça.
Quando há o estouro de buffer, a aplicação alvo poderá conceder privilégios ao invasor, que poderá fazer com que sua aplicação execute processos maliciosos para acessar dados e serviços desejados, o vírus mais conhecido que contém instruções para estouro de buffer é o do tipo Worm (verme).
Apesar desta técnica já ser conhecida, ela ainda é utilizada por invasores que buscam erros ou códigos mal programados em aplicações. Para exemplificar, segue abaixo um código não malicioso desenvolvido em linguagem C, onde ocorre um estouro de buffer:
Código
...