DevSecOps

8 jan, 2008

Arpwatch – Detecte em sua rede ataques de Arp Spoofing/Arp Poisoning

Publicidade

Arpwatch é uma ferramenta que monitora a atividade em uma rede ethernet, mantendo atualizada uma tabela com endereços ethernet (MAC) e seus respectivos endereços IP. Essa ferramenta tem a capacidade de reportar via email certas mudanças.

O Arpwatch é uma ferramenta importante na monitoração da rede contra ataques de Arp Poisoning ou Arp Spoofing, usados para realizar ataques mais sofisticados como o Man-in-the-Middle(MITM).

Instalação

Tomando-se como base a distribuição Fedora, para a instalação do arpwatch, basta executar o comando abaixo:

[root@vpn01 fred]# yum install arpwatch

Obs: Será necessário a instalação da libpcap.

Configuração

O arquivo de configuração está localizado em /etc/sysconfig/arpwatch. Sua base de dados é armazenada em /var/arpwatch. Neste diretório, estão os arquivos arp.dat que é a base de dados propriemanete dita e o ethercodes.dat que possui o bloco de endereços MAC atribuídos aos fabricantes.

Abaixo, vemos a configuração padrão do arpwatch:

# -u : defines with what user id arpwatch should run

1. -e : the where to send the reports

2. -s : the -address

OPTIONS=”-u pcap -e root -s ‘root (Arpwatch)'”

Vamos configurá-lo para que envie as mensagens para o nosso e-mail. Altere a linha de forma que se pareça coma linha abaixo:

OPTIONS=”-u pcap -e usuario@dominio.com.br -s ‘root (Arpwatch Servidor XXX Rede 192.168.0.0/24)'”

Algumas opções possíveis são:

-d: Utilizada para debugging. Essa opção inibe o envio de relatórios via email. Eles são enviados para a saida de erro padrão (stderr)

-f: Informa qual o arquivo da base de dados deve ser usado. O valor padrão é arp.dat

-i: Usada para sobrescrever a interface padrão

-n: Especifica redes locais adicionais. É útil se na mesma rede física, estiver rodando mais de um endereçamento de rede.

-u: define qual usuário executará o arpwatch. Rodá-lo com um usuário diferente de root é extremamente recomendado para melhorar a segurança.

-e: Envia mensagens de e-mail para o endereço especificado. O padrão é para o usuário root. Se apenas o caractere ‘-‘ for definido, o envio de alertas via e-mail será suspenso, no entanto, o logging via syslog continuará ativo (Útil quando for executado pela primeira vez na rede, evita o recebimento de muitas mensagens).

-s: Envia mensagens de email com endereço de retorno, ao contrário do valor padrão do root.

Obs: Antes de ser rodado pela primeira vez, é necessário que o arquivo da base de dados exista (em branco) e que o usuário especificado em -u seja o dono do diretório /var/arpwatch

Vamos colocá-lo para iniciar no boot:

[root@vpn01 sysconfig]# /sbin/chkconfig –level 2345 arpwatch on

Iniciando o arpwatch:

[root@vpn01 sysconfig]# /etc/init.d/arpwatch start

Através do comandos abaixo, confirma-se que o arpwatch já está sendo executado:

[root@vpn01 log]# tail -f messages

Jan 4 10:41:04 vpn01 arpwatch: new station 192.168.0.222 0:10:c6:b9:69:2b

Jan 4 10:41:14 vpn01 arpwatch: new station 192.168.0.176 0:d:f4:3:2:d8

Jan 4 10:41:20 vpn01 arpwatch: new station 192.168.0.224 0:11:25:8a:87:9b

Exemplo de alerta

Ex1:

Subject: new station

hostname:

ip address: 192.168.0.185

ethernet address: 0:d:f4:3:3:1e

ethernet vendor: Watertek Co.

timestamp: Friday, January 4, 2008 10:40:44 -0300

Ex2:

Subject: new station

hostname:

ip address: 192.168.0.245

ethernet address: 0:30:a:5b:73:24

ethernet vendor: AZTECH SYSTEMS LTD.

timestamp: Friday, January 4, 2008 10:40:56 -0300

Entendendo as mensagens

new activity

Esse par de endereço MAC e endereço IP já foi utilizado a seis meses ou mais.

new station

Esse endereço ethernet (MAC) nunca foi visto antes.

flip flop

O endereço ethernet foi foi alterado do primeiro mais recente para o segundo mas recente.

changed ethernet address

O Host mudou para um novo endereço ethernet (MAC)

Testando

A forma de testarmos é rodarmos um ataque de arp spoofing em nossa própria rede. Para o teste, foi utilizado o aplicativo ettercap.

Os seguintes hosts foram utilizados:

Endereço IP Endereço MAC Descrição

192.168.0.224 00:11:25:8A:87:9B Host do Atacante

192.168.0.3 00:10:C6:B9:68:F5 Gateway da rede, host a ser realizado o spoof

Após o inicio do ataque, foram recebidos os seguintes alertas:

MSG1: Arpwatch detecta a mudança do PAR MAC/IP

Subject: changed ethernet address

hostname:

ip address: 192.168.0.3

ethernet address: 0:11:25:8a:87:9b

ethernet vendor: IBM Corporation

old ethernet address: 0:10:c6:b9:68:f5

old ethernet vendor: USI

timestamp: Friday, January 4, 2008 11:16:06 -0300

previous timestamp: Friday, January 4, 2008 11:16:06 -0300

delta: 0 seconds

MSG2:Arpwatch detecta que o par está oscilando, característica do ataque de arp spoofing. Ele recebe pacotes ARP do com o MAC correto e em seguida, vários outros como MAC errado.

Subject: flip flop

hostname:

ip address: 192.168.0.3

ethernet address: 0:10:c6:b9:68:f5

ethernet vendor: USI

old ethernet address: 0:11:25:8a:87:9b

old ethernet vendor: IBM Corporation

timestamp: Friday, January 4, 2008 11:16:22 -0300

previous timestamp: Friday, January 4, 2008 11:16:21 -0300

delta: 1 second

MSG3: Arpwatch detecta que o par está oscilando, característica do ataque de arp spoofing. Ele recebe pacotes ARP do com o MAC correto e em seguida, vários outros como MAC errado.

Subject:flip flop

hostname:

ip address: 192.168.0.3

ethernet address: 0:11:25:8a:87:9b

ethernet vendor: IBM Corporation

old ethernet address: 0:10:c6:b9:68:f5

old ethernet vendor: USI

timestamp: Friday, January 4, 2008 11:16:31 -0300

previous timestamp: Friday, January 4, 2008 11:16:22 -0300

delta: 9 seconds

Conclusão

Dessa forma, demonstramos como utilizar o arpwatch para monitorar o tráfego ARP de sua rede, e provamos sua eficiência na detecção de ataques de Arp Spoofing/Arp Poisoning. A quantidade de alertas depende de alguns fatores. Um deles é se a rede está configurada com ip estático ou dinâmico. Se for via DHCP, é importante verificar o tempo em que o servidor mantém o endereço IP para o MAC. Se esse tempo for pequeno, é possível que a cada renovação de endereço, você recebe um alerta. Vale a pena ficar atento a esse detalhe.

Abraços.

Frederico Madeira

www.madeira.eng.br