Lamentablemente no hay una defensa universal y definitiva para esta amenzana, lo único que podemos hacer es tratar de mitigar y reducir la posibilidad de caer en ella de varias maneras, ya sea mediante el uso de sensores que nos alerten de cambios inesperados en nuestra tabla ARP, o el uso de tablas ARP estáticas.

Si queremos detectar si estamos siendo víctimas de ARP Spoofing, lo podemos hacer “manualmente” con la ayuda del Wireshark para analizar el tráfico ARP (con su respectio filtro arp para su fácil lectura. Que no nos pase). Podemos usar varios criterior para determinar si somos víctimas de un ataque de este tipo:

  • Podremos ver que Wireshark ha detectado una duplicación de una IP: 192.168.0.1 is at "MACIntruso" (duplicate use of 192.168.0.20 detected!)
  • Hay un host que está anunciando su dirección MAC (ARP Reply) constantemente sin que otros host en la red lo soliciten(ARP Request).
  • En algún momento se pueden recibir dos respuestas (ARP Reply) a una petición.

Veamos entonces algunas herramientas que podemos usar para mitigar este tipo de ataques, la idea no es profundizar mucho en ellas:

Tablas ARP Estáticas

Es con lo único que podemos evitar eficazmente el ARP Spoofing, agregamos una entrada con la dirección IP/MAC de nuestro gateway. Tanto en sistemas GNU/Linux como en sistemas Windows se realiza de la siguiente manera:

# arp -s IPGateway MACGateway

Aquí lo que logramos hacer es que nuestra cache ARP no sea envenenada por el intruso. El problema de esta solución es cuando la red es muy grande, volviendo poco práctico el uso de tablas ARP estáticas debido al gran número de host.

Arpwatch

Es una solución libre para sistemas GNU/Linux que hace seguimiento de los pares de direcciones IP/MAC. Hace un log de los eventos sospechosos que detecta y se puede configurar para enviar alarmas vía correo electrónico. Ideal usarlo en estratégicamente (en el gateway) en redes grandes en las cuales no sea práctico el uso de tablas ARP estáticas para que nos alerte de posibles ataques. Aunque no lo he probado en redes de gran tamaño, en mi opinión no serviría de mucho ya que nos alertaría nada más de que un posible ataque ocurrió pero creo que muy tarde para hacer algo al respecto, nos pondría alerta de un posible intruso en la red. Estos son algunos mensajes que crea en el log del sistema:

arpwatch: listening on wlan0
arpwatch: new station 192.168.0.1 MACGateway wlan0
arpwatch: ethernet mismatch 192.168.0.1 MACIntruso (MACGateway) wlan0
arpwatch: changed ethernet address 192.168.0.1 MACGatway (MACIntruso) wlan0
arpwatch: flip flop 192.168.0.1 MACGateway (MACIntruso) wlan0

ArpON

Es una solución de defensa proactiva que mediante la definición de políticas ayuda a prevenir diferentes ataque de tipo Man in th Middle. En Debian GNU/Linux se puede instalar mediante el paquete arpon, podemos encontrar su archivo de configuración en /etc/default/arpon. Debemos elegir entre Static ARP Inspection (SARPI) o Dynamic ARP Inspection (DARPI). Con la primera opción debemos listar los pares de IP/MAC de la red en el archivo /etc/arpon.sarpi. Una buena solución sería implementarlo en redes grandes y generar una política de actualizacón periódica de este último archivo. Aquí se puede observar un log de la herramienta:

Wait link connection on wlan0...
SARPI on dev(wlan0) inet(192.168.0.14) hw(MACLocal)
Protects these Arp Cache's entries:
1)     192.168.0.1 -> MACGateway
Arp Cache restore from /etc/arpon.sarpi...
Arp Cache refresh timeout: 10 minuts.
Realtime Protect actived!
Request << Ignore entry 192.168.0.10 -> MACIntruso
Reply   >> Send to 192.168.0.10 -> MACIntruso
Request << Ignore entry 192.168.0.10 -> MACIntruso
Reply   >> Send to 192.168.0.10 -> MACIntruso
Request >> Send to 192.168.0.10 -> 0:0:0:0:0:0
Reply   << Ignore entry 192.168.0.10 -> MACIntruso
Request << Ignore entry 192.168.0.10 -> MACIntruso
Reply   >> Send to 192.168.0.10 -> MACIntruso
Reply   << Refresh entry 192.168.0.1 -> MACGateway
Reply   << Refresh entry 192.168.0.1 -> MACGateway
Reply   << Refresh entry 192.168.0.1 -> MACGateway
...

Se puede observar como a partir de la línea 16 se actualiza la entrada en la tabla ARP con la información correcta del gateway ya que se está recibiendo un ataque con Ettercap.

Conclusiones

  • Otras herramientas que nos pueden ayudar en la mitigación del envenenamiento ARP son XArp, el IDS Snort entre muchas otras.
  • Algunos switches cuentan con DHCP Snooping, permitiendo que solamente hosts con determinadas par de direcciones IP/MAC tengan acceso a la red.
  • En redes públicas como hoteles, campus universitarios, entre otras es buena idea en el momento de conectarnos agregar una entrada ARP estática con la información del gateway para evitar el ataque.
  • En general hay que aplicar una combinación de las mitigaciones existentes dependiendo del escenario para reducir los vectores de ataque con los que cuenta el intruso.