IP Spoofing


O IP Spoofing ficou famoso após ter sido a atração principal do ataque à rede de Tsutomu Shimomura, um dos maiores especialistas de segurança dos Estados Unidos, quando através dele, na noite de natal de 1994, o mais famoso e procurado hacker americano, Kevin Mitnick, invadiu a sua rede particular e roubou alguns dos seus programas, dentre eles, um software de programação dos celulares Oki, que lhe permitiria ter um controle total sobre suas ligações clandestinas e escutas de celulares.


Esta história, é claro, foi desmentida por Kevin, que apesar do sabido interesse no referido telefone, não demonstrava aptidão suficiente para realizar um ataque desta grandeza.
Apesar deste tipo de ataque ter sido teorizado há muitos anos, somente na metade desta década ele ficou mundialmente conhecido e, em 1997 já era o 4° método de invasão mais utilizado.
Hoje encontram-se ferramentas que automatizam esta fatigante tarefa, e tem-se conhecimento de ataques de spoofing concretizados em menos de meio minuto!
Disfarce. É isto que este ataque faz. Muitas comunicações entre computadores na Internet se baseiam em "parceiros" confiáveis. Um computador X pode manter uma comunicação com um computador Y de forma que não seja necessária a constante verificação de autenticidade entre eles.

O hacker, então, se disfarça, dizendo para o computador X que "ele" é o computador Y. Desta forma o computador X vai aceitar seus comandos tranqüilamente, enquanto ele deita e rola pelo sistema.

Um pouco mais de detalhes: os pacotes IP possuem um endereço destino e um endereço origem. Normalmente o endereço origem reflete a realidade, mas nada impede que um hacker altere este pacote para que ele pareça ter vindo de outro lugar. Só que não é tão simples assim...

Além de enganar o destino, neste caso o computador X, é necessário que se sobrecarregue o computador Y, para que ele não responda às mensagens de X, o que faria com que Y dissesse: "Mas eu não te perguntei nada!", e X cancelaria a conexão.

Faz-se necessária, ainda, uma "previsão" do número de seqüência mandado por X. Este número é enviado por X ao originador da conexão (supostamente o Y). Mas Y não irá responder, devido à sobrecarga explicada anteriormente.

Então o hacker deve prever o número de seqüência mandado por X para que seja enviado um novo pacote com estes números de seqüência, fingindo novamente ter sido enviado por Y, e forjando a autenticação.

A previsão deste número de seqüência é um processo demorado e criativo. Durante a negociação da conexão, os computadores trocam informações para efetuarem o "handshake" ou "aperto de mão". Dentre as informações trocadas estão os números de seqüência, que devem ser repetidos para o destino, para que este se certifique da autenticidade da conexão.

O que o hacker pode fazer é o seguinte: enviar, através de um pacote legítimo, com o endereço de origem verdadeiro, vários pedidos de conexão à X. Este responde com um número de seqüência para que o hacker o repita e efetue a conexão, mas a máquina de origem (o hacker) não tem privilégios e não lhe interessa fechar esta conexão.

Então ele não responde a estes pacotes de X, apenas os guarda e verifica seu número de seqüência.

Após vários pedidos de conexão com X, o hacker pode "aprender" como X gera seus números e então mandar um pedido de conexão, desta vez com o endereço de origem sendo Y (o computador confiável).

Obviamente, o hacker não vai receber os pacotes de X com os números de seqüência, pois estes irão para o endereço de origem (computador Y, que, a esta altura, precisa estar sobrecarregado para não repondê-los), mas, com base nos cálculos anteriores, o hacker prevê e manda o número de seqüência correto para o computador X, fechando a conexão.

Esta conexão é unidirecional, pois todas as respostas de X serão destinadas ao computador Y, e não ao computador do hacker. Então o hacker age "às cegas", pois não recebe nenhum tipo de retorno de X, pelo menos enquanto configura X para aceitar conexões do seu próprio computador.

Ao terminar, o hacker tira o disfarce: desfaz a conexão falsa com X, e faz uma legítima, agora que X pode aceitar conexões confiáveis através do computador do hacker, com todos os privilégios possíveis e imagináveis.

Há dois inconvenientes neste ataque: o trabalho de achar um padrão nos números de seqüência e a falta de retorno do computador invadido. Entretanto, existe ainda uma outra categoria de spoofing, que, apesar das condições pouco comuns, é muito mais eficiente.

Neste tipo de ataque, um computador de pouca importância em uma rede é invadido por um método simples qualquer (infelizmente, os computadores que não guardam informações importantes geralmente são esquecidos no projeto de segurança) e, estando localizado no mesmo meio físico onde ocorre uma comunicação entre duas máquinas importantes, ele poderá "captar" todo o tráfego deste meio físico.

Com isso ele saberá os números de seqüência de ambos os lados, podendo interceptar este diálogo, pondo-se no lugar de um dos computadores da conexão confiável, tendo total acesso aos dados mais sigilosos.

Este tipo de ataque só pode ser eficazmente prevenido através de um controle apurado de TODOS os computadores da rede local, que compartilham o mesmo meio físico, ou através de uma comunicação confiável baseada em aplicativos de criptografia.

Resumo de Segurança

Comentários

Postagens mais visitadas deste blog

Redação Ti Nota 10 - Klauss

Prova Discursiva nota 10 - Banca Cespe

Portugues - Orações