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.
- 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:
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