Princípios do ARP Poisoning e detecção com Arpwatch

1. MAC – Media Access Control

Todos os pontos de uma rede de computadores – hospedeiros ou roteadores – possuem um endereço físico único chamado MAC. Este endereço é gravado pelo fabricante em uma memória permanente da placa de rede (inclusive as placas de rede sem fio).
Imagine que você deseja enviar uma carta a um amigo que mora em outra cidade. Naturalmente, você escreve a carta e a coloca em um envelope que contém o seu endereço e o endereço do seu amigo. Este envelope é então levado aos correios de sua cidade. A agência de sua cidade encaminha o envelope para a agência da cidade de seu amigo, que por sua vez entrega o envelope ao destino final. Neste exemplo, a carta seria os dados da mensagem, o envelope seria o protocolo utilizado, o nome do seu amigo seria o IP, os endereços seriam os MAC’s dos computadores e os correios seriam os roteadores da rede.

2. ARP – Adress Resolution Protocol

“Como um computador sabe o endereço MAC de outro computador?”
O ARP é um protocolo (envelope) para resolução de endereços MAC. Utilizando-se do exemplo anterior, imagine que você não saiba o endereço de seu amigo. Supondo que você possua uma boa agenda telefônica, descobrir o endereço não seria grande dificuldade, pois a partir do nome de seu amigo você obteria facilmente o endereço. A descoberta do endereço MAC funciona de maneira muito parecida. O computador que deseja enviar a mensagem possui uma tabela de endereços (agenda) chamada ARP cache. O ARP cache vincula o endereço IP (nome do seu amigo) ao MAC correspondente (endereço).

Figura 1 – Ilustração de ARP CacheArp Poisoning

3. ARP Poisoning e MITM

Quando o computador que deseja enviar a mensagem procura um IP em sua tabela ARP e não o encontra, ele envia uma requisição do endereço para todos os computadores da rede. O computador que possuir o IP solicitado responde a mensagem indicando que o IP é seu e então o endereço MAC é adicionado na tabela ARP.
Quando uma falsa resposta é dada, um endereço MAC é associado a um IP que na realidade não é o seu correspondente e então é adicionado na tabela ARP. A este ato damos o nome de Poisoning.
Assim, um ataque de ARP Poisoning consiste em modificar a tabela ARP de um computador se passando por outro.
Utilizando-se desta técnica, uma pessoa pode conseguir desviar mensagens que seriam destinadas a outro computador para o seu. Isto é conhecido como Man In The Middle.
O computador destinatário não tem conhecimento do ataque, pois após a mensagem ser desviada ela é então encaminhada para o verdadeiro destino, dando a falsa impressão na rede de que o fluxo de dados está correto.

Figura 2 – Ilustração de ARP Poisoning e MITMArp

4. Arpwatch

O Arpwatch é um programa de monitoração da tabela ARP em uma rede. A partir de uma cópia da tabela que ele mantém armazenada, este software de vigilância consegue detectar qualquer alteração no ARP cache.
Ao detectar alguma mudança na tabela, o Arpwatch gera relatórios e pode enviar mensagens de aviso por e-mail.

4.1. Instação

Faça o download do Arpwatch no link:
ftp://ftp.ee.lbl.gov/arpwatch.tar.gz.
A biblioteca de funções libpcap é necessária para o funcionamento do Arpwatch. Você pode encontrá-la no endereço:
http://sourceforge.net/project/downloading.php?group_id=53067&filename=libpcap-0.8.1.tar.gz&a=76838529.

4.2. Configurando

Tomando como base a distribuição Linux OpenSUSE 11.0 e após a instalação correta do Arpwatch, você deve criar um arquivo vazio chamado arp.dat no diretório /var/lib/arpwatch. Este arquivo será usado como base de dados em que o software mantém a cópia da tabela ARP.
Após a criação do arquivo, inicie o utilitário “arpwatch” com o comando:

# arpwatch –i eth0

Onde, “-i” indica que o arquivo “arp.dat” será sobrescrito e “eth0” é o nome da rede.
Outras opções podem ser utilizadas:

-f: Para mudar o local do arquivo de base de dados.
-n: Para especificar redes locais adicionais.

Agora abra o arquivo arpwatch que se encontra no diretório /etc/sysconfig. Na linha OPTIONS=”-u pcap -e root -s ‘root (Arpwatch)’” altere para:

OPTIONS=”-u pcap -e usuario@dominio.com -s ‘root (Arpwatch)’”

Onde pcap indica sobre qual usuário o Arpwatch rodará, usuário@dominio.com é o endereço de e-mail que o programa enviará as mensagens de alerta e Arpwatch indica o nome do remetente do e-mail.
Caso o arquivo não possua uma linha semelhante a citada, basta inserir no final.
Depois do arquivo ser configurado, inicie a aplicação no diretório /etc/init.d com o comando:

# arpwatch start

Caso este comando não funcione, utilize:

# rcarpwatch start

4.3. Mensagens de Logs e Alertas

Todas as mudanças detectadas pelo Arpwatch irão aparecer no arquivo messages do diretório /var/log.
Alguns exemplos de mensagens que podem ser encontradas neste arquivo são:

May 28 21:46:43 linux-bphc arpwatch: flip flop 192.168.0.1 0:18 e:4b:80:71 (0:1b:11 3:8f:3b)
May 28 21:47:23 linux-bphc arpwatch: MAC mismatch (eth) 192.168.0.1 0:18 e:4b:80:71 (0:1b:11 3:8f:3b)
May 28 21:48:18 linux-bphc arpwatch: flip flop 192.168.0.1 0:1b:11 3:8f:3b (0:18 e:4b:80:71)

Um exemplo de e-mail enviado pelo Arpwatch seria:

From pcap@localhost.localdomain  Sat May 13 22:10:16 2006
Return-Path: <pcap@localhost.localdomain>
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by localhost.localdomain (8.13.1/8.13.1) with ESMTP id k4DDAGSL004139
for <root@localhost.localdomain>; Sat, 13 May 2006 22:10:16 +0900
Received: (from pcap@localhost)
by localhost.localdomain (8.13.1/8.13.1/Submit) id k4DDAG4U004133
for root; Sat, 13 May 2006 22:10:16 +0900
Date: Sat, 13 May 2006 22:10:16 +0900
Message-Id: <200605131310.k4DDAG4U004133@localhost.localdomain>
From: root@localhost.localdomain (Arpwatch)
To: root@localhost.localdomain
Subject: new station

hostname: <unknown>
ip address: 192.168.1.4
ethernet address: 0:10:5a:4:14:63
ethernet vendor: 3COM CORPORATION
timestamp: Saturday, May 13, 2006 22:10:16 +0900

5. Conclusão

A monitoração de redes é uma tarefa de extrema importância para a garantia de uma melhor segurança.
O ARP Poisoning é uma técnica simples de ser executada e a maioria dos sistemas operacionais é vulnerável a este tipo de ataque. Com o ARP Poisoning podemos aplicar ataques de desvio do fluxo de dados, como o MITM.
Ferramentas de vigilância, como o Arpwatch, auxiliam de forma efetiva na monitoração do ARP cache. Desta forma a detecção de possíveis ataques, de riscos e até mesmo de mudanças no comportamento da rede se torna mais fácil para o responsável pela segurança do sistema.
Outras ferramentas similares ao Arpwatch são: ArpON e o XArp.

6. Referências

- Redes de Computadores e a Internet; 3ª Ed.; Kurose J. F., Ross K. W.
- http://www.novell.com/communities/node/4971/detecting-arp-poisoning-attacks
- http://www.madeira.eng.br/wiki/index.php?page=Arpwatch
- http://www.ksknet.net/linux/arpwatch.html
- http://imasters.uol.com.br/artigo/7713/seguranca/arpwatch_-_detecte_em_sua_rede_ataques_de_arp_spoofingarp_poisoning/
- http://www.vivaolinux.com.br/artigo/ARP-Poisoning-compreenda-os-principios-e-defendase

Creditos: Jônatas Lopes de Paiva e José Eurípedes Ferreira de J. Filho

Tags: , , ,
1 vote, average: 5,00 out of 51 vote, average: 5,00 out of 51 vote, average: 5,00 out of 51 vote, average: 5,00 out of 51 vote, average: 5,00 out of 5 (1 votos, média: 5,00 por 5)
You need to be a registered member to rate this post.
Loading ... Loading ...

Sobre Diablos 4-Ever

Eu não exploro as falhas, São as falhas que me exploram.

Leave a Reply

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*
*