martes, 4 de febrero de 2014

arpon - Protégete de los ARP Spoofing/Poisoning (Debian y Opensuse)



ARPON es una herramienta que nos puede ser muy útil en nuestra lucha contra los ataques man in the middle. Antes de nada debemos saber que es ARP.

Wikipedia: “En comunicaciones, ARP (del inglés Address Resolution Protocol o, en español, Protocolo de resolución de direcciones) es un protocolo de la capa de enlace de datos responsable de encontrar la dirección hardware (Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP request) a la dirección de difusión de la red (broadcast (MAC = FF FF FF FF FF FF)) que contiene la dirección IP por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde. Cada máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga. ARP permite a la dirección de Internet ser independiente de la dirección Ethernet, pero esto sólo funciona si todas las máquinas lo soportan.”

ARPon funciona en modo demonio e implementa los siguientes scripts :

- SARPI - Static ARP inspection: Redes sin DHCP. Utiliza una lista estática de entradas y no permite modificaciones.
- DARPI - Dynamic ARP inspection: Redes con DHCP.
- HARPI - Hybrid ARP inspection: Redes con o sin DHCP.

Instalación y Configuración:

Lo primero será instalarlo:

(debian y ubuntu)

apt-get install arpon

(opensuse valido para las versiones 12.3 y 13.1)

zypper addrepo http://download.opensuse.org/repositories/home:idulk/openSUSE_12.3/home:idulk.repo
zypper refresh
zypper install arpon

El fichero de configuración es:
/etc/default/arpon (únicamente en Debian, en opensuse no existe dicho fichero)

En este fichero debemos configurar; La opción que pone ( RUN=”no” )  Le ponemos ( RUN=”yes” )
Luego descomentamos la línea que pone ( DAEMON_OPTS=”-q -f /var/log/arpon/arpon.log -g -s” ).

Nota: En mi caso he añadido dos opciones mas ya que dispongo de tres tarjetas de red, la wlan0, la wlan1 y la eth0. Tal como indica la web origen del programa, podemos hacer que escuche en una, dos , tres o más interfaces entonces me conviene que escuche en la interface wifi pero no en la Ethernet. En mi caso quedaría de la siguiente forma:

DAEMON_OPTS=”-q -f /var/log/arpon/arpon.log -g –S –i wlan0 wlan1 eth0

Como vemos la opción –i es para decirle que interface queremos que escuche.
Una vez hecho esto guardamos y lo ejecutamos de la siguiente manera:

sudo /etc/init.d/arpon restart

Para saber si está en ejecución y sobre que interfaces está monitorizando, podemos verlo con el siguiente comando:

sudo arpon –l

Y nos daría una respuesta como esta:

[09/05/2008 - 18:20:23 CEST] Device: (wlan0) MAC: 0:e0:4c:xx:xx:xx Inet4: 192.168.1.7 Netmask: 255.255.255.0
[09/05/2008 - 18:20:23 CEST] Device: (wlan1) MAC: aa:0:4:xx:xx:xx Inet4: 192.168.1.3 Netmask: 255.255.255.0

Si queremos ejecutar arpon manualmente , sería:

arpon -i wlan0 –d -f /var/log/arpon/arpon.log -g

La opción -g es para que se utilice el fichero de log, por defecto, /var/log/arpon.log, la opción –d es para que se ejecute en modo demonio.

Para opensuse:

Primero , creamos le fichero arpon.log en el directorio /var/log/

sudo mkdir /var/log/arpon
sudo touch /var/log/arpon/arpon.log

Y ejecutamos el comando para activar arpon:

sudo /sbin/arpon -q -f /var/log/arpon/arpon.log -g –sarpi -S –i wlp6s0

En mi caso he activado arpon en modo sarpi con la opción -S , para activarlo en modo darpi debemos usar la opción -D.

si queremos que se  cargue desde el inicio debemos editar el fichero:

sudo vi /etc/init.d/boot.local



Y meter el comando:

/sbin/arpon -q -f /var/log/arpon/arpon.log -g –sarpi -S –i wlp6s0

Como funciona:

Únicamente voy a explicar cómo funciona el modo dinámico, tal como hemos visto anteriormente es usado para protegernos en las redes con el DHCP activo.

Modo dinamico –

Arpon Dynamic Arp Inspection, una vez que se ejecuta Arpon en modo DARPI , limpia la cache ARP borrando todas las entradas y protege de los ataques bidireccionales y distribuidos:

[…]
14:11:41 - Deletes these Arp Cache entries:
14:11:41 - 1)     192.168.1.1 ->  0:25:53:29:f6:69
[…]

Para las solicitudes ARP (ARP request), Apron sigue las siguientes reglas:

TRAFICO DE SALIDA: Para los paquetes que son generados por nosotros. ArpON les permite pasar, añadiendo una entrada 
con el destino a la DARPI cache.
A la cache DARPI, DARPI añade un timeout para que en caso de que no exista dicha entrada DARPI debe borrarla de la cache.
 
TRAFICO DE ENTRADA: Los paquetes que viene hacia nosotros desde fuera de nuestro equipo. ARPon rechaza el paquete, 
borrando la entrada de la cache ARP porque el paquete puede estar envenenado. Después de eso, el kernel enviará una 
solicitud ARP solicitando la dirección de origen, esta petición será gestionada por Arpon a través de DARPI.
 
Para las respuestas ARP (ARP entry), Arpon sigue las siguientes reglas:
 
TRAFICO DE SALIDA: Para los paquetes que son generados por nosotros. Arpon, únicamente, les deja pasar.
 
TRAFICO DE ENTRADA: Los paquetes que viene hacia nosotros desde fuera de nuestro equipo. Arpon revisa si el origen de direcciones 
coincide con la entrada en la cache DARPI, esto permite que el paquete continúe con el flujo normal añadiendo la entrada en la cache ARP. 
En caso contrario si el origen de direcciones no coincide con ninguna entrada de la cache DARPI, Arpon rechaza el paquete, borrando la entrada 
de la cache ARP.
 
Ambos tipos de paquetes (ARP request y ARP entry)son usados para ejecutar un envenenamiento de tabla ARP (ataque conocido 
como “ARP Poisoning/Spoofing”). 

Fuente:

No hay comentarios:

Publicar un comentario