18.6.08

Defiéndete de ataques arp-spoofing / MITM (Man In The Middle) con ArpON


ArpON (Arp handler inspectiON) es una herramienta que permite manipular algunos aspectos del protocolo ARP. Una de sus cualidades destacadas es la de hacer el protocolo ARP más seguro. Implementa dos técnicas de defensa contra ataques de envenenamiento ARP (ARP spoofing):

  • SARPI "Static Arp Inspection"
  • DARPI "Dynamic Arp Inspection"
En este caso vamos a estudiar la segunda.

DARPI
Una vez entra en funcionamiento, lo primero que hace es limpiar la caché ARP eliminando todas las entradas evitando así posibles envenamientos previos.
Después obedece a las siguientes políticas de gestión de paquetes ARP utilizando una caché propia llamada caché DARPI:
  • Para los paquetes ARP request:

Seguir Leyendo...

- Salientes: Los generamos nosotros, por tanto ArpON los deja pasar y añade una entrada con la dirección destino a la caché DARPI (para posteriormente ser consultada cuando lleguen paquetes ARP reply)

- Entrantes: ArpON rechaza el paquete y borra la entrada correspondiente a la dirección origen de la caché ARP (ya que este paquete puede estar envenenado); el kernel enviará un paquete ARP request a esa dirección origen, y este paquete se gestionará siguiendo la política de paquetes salientes DARPI.
De esta forma, ArpON nos defiende de ataques de envenenamiento ARP mediente paquetes ARP request.
  • Para los paquetes ARP reply

- Salientes
: Estos paquetes los generamos nosotros y ArpON les da paso.

- Entrantes: ArpON comprueba si la dirección origen se encuentra en la caché DARPI (la que fue añadida al enviar un ARP request saliente); en ese caso, lo deja pasar y añade una entrada en la cache ARP. Si la dirección origen no se encuentra en la caché DARPI, ArpON rechaza el paquete y elimina la entrada de la caché ARP.
De esta forma, ArpON nos defiende de ataques de envenenamiento ARP mediente paquetes ARP reply.

Desde la página principal nos informan de que el servicio ArpON no afecta al rendimiento del protocolo ARP.

- Vamos una demostración de cómo trabaja esta herramienta:

Para esta demostración se ha descargado, compilado e instalado las librerías que se propone desde la página principal de ArpON:
  • libpcap-0.9.8.tar.gz
  • libnet-1.1.2.1.tar.gz
  • libdnet-1.11.tar.gz

Escenario
:

1 Un pc con Debian instalado se defenderá de ataques arp-spoofing utilizando ArpON.

2 Otro pc con Debian instalado será el atacante y lanzará un ataque arp-spoofing (arp reply) utilizando ettercap entre la víctima y la puerta de enlace.

  • IP atacante: 192.168.6.137 dirección MAC uu:vv:ww:EC:D4:B9
  • IP víctima: 192.168.6.150 dirección MAC xx:yy:zz:55:38:C3
  • IP puerta de enlace: 192.168.6.1 dirección MAC rr:ss:tt:C0:00:08

Primero, veamos el desarrollo del ataque sin utilizar ArpON:

$ ettercap -T -M arp /192.168.6.150/ /192.168.6.1/

Una vez lanzado el ataque, podremos consultar la caché ARP de la víctima y comprobar que en dicha tabla, la dirección mac correspondiente a la puerta de enlace (192.168.6.1) es en realidad la dirección mac del atacante (:::EC:D4:B9). En la siguiente imagen podemos ver la salida de ettercap al lanzar el ataque:


Observamos el cambio en la caché ARP antes y después del lanzar el ataque.
Antes:
Después:

En este instante la víctima enviará al atacante, sin saberlo, todos los paquetes con destino a la puerta de enlace.

- Veamos qué sucede cuando se lanza el mismo ataque pero ArpON está en funcionamiento:

Ejecutamos ArpON en el pc que deseamos proteger en modo dinámico (DARPI):

$./arpon -i eth0 -y

Observamos que lo primero que hace es borrar todas las entradas de la caché ARP. En este caso, la tabla contenía entradas de las direcciones IP 192.168.6.1, 192.168.6.2 y 192.168.6.254:


Si en ese momento consultamos la caché ARP obtenemos que está vacía:



ArpON nos permite observar las acciones que va realizando en cada momento, si el atacante lanza el mismo ataque que antes, observamos lo siguiente:

Al recibir los paquetes ARP reply envenenados del atacante, observamos que al no encontrar la dirección origen en la caché DARPI, inmediatamente elimina esta entrada de la caché ARP. Este proceso lo repetirá para cada paquete ARP reply envenenado que reciba:


Veamos ahora qué sucede cuando se recibe una petición ARP válida y cómo comprueba que no está enveneada. En este caso será un host con IP 192.168.6.136 (xx:yy:zz:34:F4:F4) el que se comunicará con la víctima.
  1. 1. Recibe un paquete ARP request de la 192.168.6.136
  2. 2. Al no encontrar la dirección origen del paquete en la caché DARPI borra la entrada de la caché ARP
  3. 3. Añade la dirección origen a la caché DARPI y lanza un ARP request a esta dirección
  4. 4. Recibe la respuesta (un paquete ARP reply) y esta vez sí que se encuentra la dirección origen en la caché DARPI, por tanto borra esta entrada de la caché DARPI y la añade a la caché ARP