Professional Documents
Culture Documents
ALUNOS :
Nome
Matrcula
201304028666
201304028909
BREVE HISTRIA
A documentao mais antiga de Buffer Overflow tem data de 1988. Foi
uma das muitas vulnerabilidades exploradas pelo Morris worm para se
propagar pela internet. O programa-alvo foi um servio Unix, chamado finger.
Morris Worm ou Internet Worm foi um dos primeiros worms distribudos pela
Internet, ele foi escrito por Robert Tappan Morris.
Utilizou uma falha no finger (uma chamada gets()) para se copiar para
outras mquinas.
Segundo o autor, o worm tinha o objetivo de medir o tamanho da internet,
mas acabou gerando um impacto devastador na poca, atingindo 6000
computadores, aproximadamente 10% da internet da poca.
BUFFER
uma regio de armazenamento de memria utilizada para armazenar
temporariamente os dados enquanto eles esto sendo movidos de um lugar
para outro, ou seja, processados.
BUFFER OVERFLOW
um transbordamento de memria. quando colocamos mais dados em
um buffer do que este buffer est preparado para receber.
Como pode acontecer?
um tipo clssico de erro de programao, o programador sem muita
experincia pode deixar de especificar um tamanho fixo para o buffer ou no
fechar bem o cdigo da aplicao.
O atacante envia uma string malformada que excede o limite do buffer,
sobrescrevendo outras variveis e/ou parte do cdigo da aplicao, com isso
pode levar ao corrompimento de outras reas de memria adjacentes, fazendo
com o programa tenha comportamentos inesperados ou at mesmo venha a
travar.
Essa
regio
DADOS:
Esta
regio
contm
subrotinas:
variveis
locais,
Return-to-libc attack
Altera o fluxo de execuo pelo estouro de algum buffer na pilha ou heap,
A:
B:
Caso se tente inserir a palavra corromper ('c', 'o', 'r', 'r', 'o', 'm', 'p', 'e',
'r','\0') que necessita 10 caracteres na estrutura A que tem um tamanho fixo de
8 caracteres (bytes), logo, A ser transbordado e os dados excedentes sero
armazenados em uma posio adjacente na memria, neste caso na estrutura
B que foi criada para armazenar inteiros.
O smbolo \0 indica o final da string, que um vetor de caracteres.
Vejamos abaixo como ficar:
\0
CASOS FAMOSOS
Em 2000 no Outlook Express, graas uma vulnerabilidade, era possvel
fazer com que um e-mail executasse arquivos apenas por ser aberto! Bastava
anexar um arquivo com certo nmero de caracteres no nome, que ele seria
executado ao ser aberta a mensagem. Naturalmente, a Microsoft se apressou
em lanar um patch e alertar os usurios para o problema. Felizmente, pelo
menos por enquanto, no foi descoberta mais nenhuma vulnerabilidade to
perigosa no Outlook. Semanalmente so descobertas vulnerabilidades de
buffer overflow em vrios programas. Algumas so quase inofensivas,
enquanto outras podem causar problemas srios.
H programas famosos por frequentemente apresentarem a falha, como o
Sendmail, mdulos do Apache, e boa parte dos produtos da Microsoft.
Em 2001, o Code Red Worm explorou um buffer overflow no Internet
Information Services (IIS) 5.0 da Microsoft, o worm podia contaminar servidores
desprotegidos simplesmente enviando o cdigo que explora o bug, sem que
ningum executasse nenhum arquivo.
J em 2003, o worm SQL Slammer colocou em risco maquinas rodando o
Microsoft SQL Server 2000.
CONCLUSO
Os ataques de estouro de buffer ocorrem quando um invasor consegue
enviar dados alm da capacidade do buffer de tamanho fixo do aplicativo e
esse aplicativo no faz uma verificao para garantir que isso no acontea. Ao
estourar um buffer com um cdigo executvel, um invasor pode fazer com que
um aplicativo execute aes inesperadas e, muitas vezes, maliciosas, usando
os mesmos privilgios concedidos ao aplicativo.
Como se prevenir?
No usar funes inseguras;
Saber usar as funes seguras de maneira certa;
Perceber e corrigir os erros.
REFERNCIAS BIBLIOGRFICAS:
WEBGRAFIA
http://www.cic.unb.br/~rezende/trabs/buffer_overflow.htm#tecnicas .
em: 29 maio 2014.
Acesso