ARP spoofing é uma técnica normalmente usada por cibercriminosos em redes locais para realizar ataques MITM, DOS ou explorar alguma falha com o propósito de obter acesso ao equipamento da vítima. A realização do ataque também pode combinar outras técnicas como DNS spoofing e Sniffing.
Apesar do ARP (Address Resolution Protocol) não ter sido concebido baseado no modelo OSI (Open System Interconnection), ele atua principalmente na camada 3, tendo seu encapsulamento feito na camada 2, responsáveis por endereços IP e MAC respectivamente.
Quando um pacote é enviado de um host para outro, o endereço MAC deve ser indicado no cabeçalho, que é um identificador fixo e exclusivo atribuído a cada placa de rede.
Quando um aplicativo quer se comunicar com outro através de uma rede, usa o protocolo IP para identificar a máquina de destino. No entanto, tendo em conta que os endereços IPs podem variar, é essencial associá-los aos endereços MACs.
Para isso, o protocolo ARP é usado, de modo que, quando um pacote chega a uma máquina, verifica se o endereço MAC está indicado no cabeçalho e, caso o mesmo não coincida com o seu, ignora o pacote.
Todos os dados associados aos endereços IP e MAC podem ser vistos em uma tabela ARP. Isso pode ser o caso de um aplicativo que queira enviar um pacote para um IP que não esteja nessa tabela. Neste caso, é necessário perguntar quem tem o IP desejado e, para isso, o ARP também é usado.
Para fazer esta pergunta, a máquina enviará uma embalagem especial endereçada ao MAC ff: ff: ff: ff: ff (broadcast), cujo conteúdo será do estilo "quem tem o ip xxxx?". Por isso, quando as máquinas de rede encontram essa embalagem endereçada ao MAC especial, lerão a mensagem e somente a máquina que possui o endereço IP para o qual é solicitado responder com outro pacote (unicast) dizendo: “Eu, x: x: x: x: x: x , tenho o endereço IP xxxx".
O interessante é que todas as máquinas da rede receberão esse pacote, lerão e atualizarão suas tabelas IP e MAC com as novas informações e não apenas com aquela que fez a pergunta.
Na imagem a seguir é possível ver um exemplo dessas tabelas. Caso queira visualizar essa informação, entre no Windows > Iniciar > Executar > digite cmd > pressione Enter > execute o comando arp-a:
Desta forma, todas as máquinas atualizarão suas tabelas com essa nova informação maliciosa. Assim, toda vez que alguém enviar um pacote através do roteador, o mesmo não será apanhado pelo roteador, mas pela máquina atacante, uma vez que é direcionado para o seu endereço MAC. Além disso, todas as vezes que o roteador ou outro equipamento enviar um pacote para a vítima acontecerá o mesmo.
Como a máquina do cibercriminoso sabe que "está envenenando o protocolo ARP", conhecerá os endereços MAC reais de todas as suas vítimas, para que possam configurá-lo para encaminhar esses pacotes ao seu verdadeiro destinatário, de modo que ninguém perceberá que o mesmo ficou no caminho.
Veja abaixo uma tabela envenenada. Neste caso, o atacante é o computador com o endereço 192.168.0.7, considerando que já conhecemos o endereço MAC do roteador: xx: xx: xx: xx: xx: xx:
Como absolutamente toda a informação da vítima passa pelo equipamento do cibercriminoso, o mesmo é capaz de ler e modificar em tempo real absolutamente todos os pacotes, ler e capturar informações de acesso, como os dados de email ou páginas de banco, modificar conversas de bate-papo, solicitações para páginas web, e até mesmo redirecionar uma consulta para um host que contém códigos maliciosos, de modo que, uma vez executado, possa assumir o controle do equipamento da vítima.
Para estar protegido de ataques deste tipo, é necessário evitar conexões às redes Wi-Fi desconhecidas e/ou públicas e serviços que solicitam dados de acesso, como nome de usuário e senha. No entanto, o mais importante é poder combinar essas boas práticas de navegação com uma solução antivírus atualizada, adicionando uma barreira de proteção aos seus equipamentos.
Em breve, iremos publicar um novo post sobre a parte prática desses tipos de ataques. Fique de olho no WeLiveSecurity! :)