Image
Envenenamiento ARP

Envenenamiento ARP

¡Hola de nuevo, lectores!

En el artículo de hoy, presentaremos una explicación detallada sobre cómo funciona el envenenamiento ARP (Address Resolution Protocol), un ataque informático en el que un atacante envía paquetes de respuesta ARP falsos a una red con el objetivo de asociar su propia dirección MAC con la dirección IP de otro dispositivo legítimo de la red.

Para ello, nos basaremos en que el atacante emplea una máquina con sistema operativo Kali Linux y sus víctimas son dos máquinas Ubuntu, la primera será la que va a ser suplantada mediante envenenamiento ARP y la segunda será desde la que se va a enviar un mensaje a la primera, el cual, será interceptado. Además, también aprenderemos a protegernos frente a este tipo de ataques con el fin de evitar que puedan comprometer la seguridad de nuestra red.

ARP (Address resolution protocol) es un protocolo de comunicaciones para traducir las direcciones IP o direcciones lógicas a direcciones MAC  o direcciones físicas que opera en capa de enlace de datos o capa 2 de modelo OSI. Los ordenadores o dispositivos tipo host, los routers y otros dispositivos de red, disponen de unas tablas que llamamos “tablas ARP”, donde relacionan las direcciones MAC e IP, para facilitar la comunicación en capa 3 del modelo OSI. 

Esta tabla entra en acción en los siguientes casos: 

  • Cuando dos hosts están en la misma red y uno quiere enviar un paquete a otro.
  • Cuando dos hosts están sobre redes diferentes y deben usar un gateway o router para alcanzar otro host.

El envenenamiento funciona por diseño y arquitectura de la red, basados en estándares 802.3 (wired) y 802.11 (wireless), pertenece a la capa 2 o de enlace de datos. ARP utilizaría una trama dentro de estos estándares para proporcionar la información necesaria para que exista comunicación a nivel IP dentro de la red, evitando flood en la capa 2. Al no existir un control implementado en estas tramas, el atacante puede enviar (envía) paquetes ARP a la red con el fin de actualizar la tabla ARP, y engañar a los hosts víctima cambiando la dirección IP y asociarla a su propia MAC.  De esta forma, se produce un ataque tipo MITM (man in the middle) en capa 2, consiguiendo que los paquetes pasen de forma dirigida por el atacante.

¿Qué se consigue a nivel práctico con este tipo de ataque? El envenenamiento ARP puede permitir que un atacante intercepte y acceda a los datos de la red, incluyendo contraseñas, correos electrónicos, archivos compartidos y otros datos confidenciales que se intercambian en páginas web, aplicaciones bancarias, software de mensajería… si bien, para algunos casos, se requiere implementar otras técnicas para conseguir que el engaño tenga total éxito, esto no sería mayor problema, pero eso es otro capítulo.

En realidad, defenderse de este tipo de ataques no es algo trivial, algo de lo que podamos defendernos con prácticas habituales. En el fondo, cualquier usuario puede estar expuesto a un ataque de este tipo en la gran mayoría de los casos. Aunque sufrirlo no es lo normal ni tampoco habitual en entornos de confianza (como puede ser tu propia casa), por la complejidad que requiere hacer este tipo de ataques y su efectividad. Donde sí es habitual, es en entornos empresariales donde el acceso a la red es relativamente sencillo, o redes públicas (como la wifi del aeropuerto, o la cafetería). Allí los atacantes siempre encuentran víctimas fáciles.

Debemos separar varias perspectivas de cara a la prevención y contención de un ataque como este: la de los usuarios, y la de los administradores de seguridad y redes.

¿Qué puede hacer un usuario para reducir el impacto que podría tener sufrir un ataque como este?

  • Mantener los parches de seguridad actualizados en el sistema operativo, para evitar intrusiones no deseadas o malware que se autopropaga.
  • No instalar aplicaciones o visitar sitios de dudosa confianza.
  • Estar atentos a los sitios con conexión cifrada (https) que no den error de certificado.
  • Cuando estás fuera, preferiblemente utiliza tu conexión de datos, pero si no puedes, utiliza sistemas VPN de confianza. 
  • No compartir datos por ningún sistema de mensajería, SMS, (ni nombres, DNI, contraseñas, usuarios…).
  • No compartir la contraseña de tu red WiFi con nadie y cambia la contraseña con regularidad.
  • No usar las mismas contraseñas ni usuarios en todas las plataformas. Además, intentando que no sean difíciles de recordar, y al mismo tiempo sí sean difíciles de adivinar.  También se puede utilizar sistemas de passwordless de confianza.

¿Y en el entorno empresarial?

Los administradores de red y seguridad tienen mucho que hacer para evitar este tipo de ataques. Las redes corporativas son muy complejas, y los ataques se realizan desde dentro de la red, por tanto, el administrador tendrá varios desafíos:

  • Evitar intrusiones físicas a la red de atacantes.
  • Evitar intrusiones vía malware.
  • Evitar que un usuario autorizado pueda realizar acciones ilícitas (zero trust).

Mecanismos para evitar intrusiones a la red de un atacante:

  • Implementar sistemas de control de acceso a la red (NAC) cableada, WIFI, o remota, y tener la red bien segmentada. Para ello se puede implementar sistemas de autenticación de dos factores, (OTP, autenticación biométrica, etc.).
  • Bastionar correctamente los directorios activos (GPOs, certificados de máquina y usuario, etc.).

De esta manera, conseguimos que un atacante necesite robar credenciales para poder acceder, y disponer de un segundo factor, que, si está bien implementado y configurado, hará que el atacante tenga que esforzarse más.

Mecanismos para evitar intrusiones vía malware:

  • Disponer de sistemas de protección, detección y respuesta avanzados (EDR, NGAV).
  • Mantener y cumplir una política de parcheo de software actualizada, que aplique tanto a los dispositivos de los usuarios, como a los servidores y a la red.
  • Utilizar sistemas de control perimetral (SSE, NGFW, Proxy) para evitar accesos a sitios maliciosos

Hasta aquí, las recomendaciones son muy generales y evidentes. Pero realmente con esto solo conseguimos que el atacante lo tenga más difícil para conseguir entrar. Ahora nos metemos con los verdaderos desafíos, que vienen cuando tenemos a un atacante en la red y necesitamos poder prevenir, detectar y parar el ataque en caso de que se produzca.

Recomendaciones poco escalables, que dan demasiado trabajo de mantenimiento y que no evitan el ataque en todos los casos:

  • Configurar listas de control de acceso (ACL) en los dispositivos de red, que permitan controlar qué dispositivos pueden comunicarse en la red y bloquear los paquetes ARP que provienen de direcciones MAC no autorizadas
  • Implementar tablas de ARP estáticas en los dispositivos hosts, pero es muy difícil de mantener sin que existan incidencias en las comunicaciones, ya que a día de hoy los usuarios son multidispositivo, y con mucha movilidad.
  • Implementar mecanismos de port-security típicos de algunos switches, especificando cuales son las MAC que se esperan conectar por unos puertos determinados
  • Implementar sistemas de detección de intrusos (IDS) y de prevención de intrusos (IPS): Los IDS e IPS pueden detectar y bloquear los paquetes ARP falsos y las actividades maliciosas en la red. Monitorizar la red: Utilizar herramientas de monitorización de red para detectar paquetes ARP falsos y otras actividades maliciosas en la red.

Recomendaciones efectivas y profesionales

Aunque no existe un mecanismo infalible, sí que existen soluciones de nivel profesional que realmente son efectivas, pero requieren de inversiones de infraestructura importantes y que siempre es necesario valorar en su contexto.

  • Implementar mecanismos de detección y respuesta de red (tipo NDR, IDS) basados en comportamiento y Machine Learning. Capturar flujos de tráfico con tramas ARP con un comportamiento sospechoso o anómalo permite a un SOC actuar en consecuencia. En definitiva, son herramientas orientadas a este tipo de detecciones.
  • Implementar microsegmentación en capa 2 (o lo que llamamos Private-VLAN). Esto requiere hardware apropiado para ello, pero podemos conseguir que, a nivel de infraestructura, podamos elegir qué puertos de un switch se comunican con otros puertos, y por tanto, evitamos que una trama ARP maliciosa le llegue a una víctima. En redes WiFi, esto es lo que podemos identificar como “isolate-members”.
  • Implementar microsegmentación en capa de red y de aplicación. Probablemente sea el mecanismo más eficaz, ya que con este tipo de solución se es capaz de segmentar la comunicación por procesos de un sistema operativo con otro de la misma organización. Por tanto, controlamos lo que ocurre en las capas inferiores a la de la aplicación poniendo estas restricciones. 

Hagamos algo de laboratorio…

Existen programas para hacer o monitorear ARP Spoofing y poder para realizar pruebas de seguridad y verificar la debilidad de los puntos instalados como, por ejemplo:

  • ARP0c: Su funcionamiento consiste en ingresar a conexiones de una red local privada, a través de un software interno y paquetes de respuesta falsa que desvían el tráfico de datos a otro sistema que usa ARP0c.
  • Cain&Abel: Sirve para intervenir conexiones SSH y HTTPS, así como en el tráfico de redes WLAN Y WiFi protegidas por WPA.
  • Ettercap: Tiene como objetivo actuar ante ataques Man in theMiddel y mecanizar ataques de ARP, recolectar contraseñas o el ataque a conexiones con protección de SSH o SSL. Este es el que usaremos en el ejercicio práctico.
  • Arpwatch: Sirve para detectar y monitorear monitorea el tráfico en la red en busca de paquetes ARP con los cuales llena una tabla en la cual se relaciona la dirección IP de un equipo con su dirección física; si encuentra un par que no se encuentra en su tabla simplemente lo agrega a la tabla, si encuentra un par que está en su tabla, pero la IP o la MAC no corresponde con el par que tenía almacenada, deja un mensaje en un archivo local o lo envía por correo electrónico según se establezca.

En la figura se muestra el esquema del ejercicio práctico que se va a realizar.   El atacante emplea una máquina con sistema operativo Kali Linux con IP 10.0.2.4 y sus víctimas son dos máquinas Ubuntu, la primera -victima 1- será la que va a ser suplantada mediante envenenamiento ARP y la segunda -victima 2- es desde la que se va a enviar un mensaje a víctima 1; y dicho mensaje va a ser interceptado.

 

Para comenzar el ejercicio, primero debemos conocer nuestra IP como atacante:

Después, vamos a buscar máquinas en la red con la herramienta Nmap ignorando nuestra IP para obtener los resultados de las máquinas restantes con el siguiente comando:

Nos aparece que hay dos equipos con las IPS: 10.0.2.5 y 10.0.2.15 y la puerta de enlace 10.0.2.1.

Esta última nos coincide con la máquina Ubuntu que tenemos levantada para el ejercicio y será nuestra víctima 1.

Le damos un ping a la IP 10.0.2.15 (víctima 1) y abrimos Wireshark en modo ARP

Y podemos ver en los paquetes la dirección MAC 08:00:27:43:94:97 que coincide con la MAC de la víctima.

Miramos la caché ARP donde ha aprendido que la IP 10.0.2.15 tiene la MAC 08:00:27:43:94:97

Con la herramienta Ettercap escaneamos los hosts disponibles

Añadimos nuestra víctima 1 a Target1 y nuestra víctima 2 a Target2

Y procedemos al envenenamiento de la tabla ARP, pulsando sobre MITM y ARP poisoning

Marcamos la opción de interceptar conexiones remotas;

Chequeamos el estado con el plugin

Podemos ver en Wireshark que se está redirigiendo el tráfico:

Cambiamos para poder recibir paquetes en nuestra máquina atacante el valor de 0 a 1:

Ahora vamos a emular un proceso de conexión telnet desde nuestra máquina víctima 2 a nuestra víctima 1, el cual va a ser interceptado. Abrimos telnet y nos conectamos a la IP víctima 1 desde la víctima 2. Este proceso es de texto en plano, por lo que será fácil de descifrar.

Ponemos las credenciales que serán interceptadas de usuario y contraseña, como haríamos en un login normal de Telnet.

Abrimos de nuevo Wireshark en la máquina atacante para comprobar el flujo entre las víctimas

Analizamos el flujo TCP

Podemos comprobar que hubo una conexión telnet entre las víctimas y ver la contraseña que se envió en texto plano.

Para demostrar que el ataque es por envenenamiento ARP podemos comprobar la tabla de ARP y ver que las IPS 10.0.2.4 (atacante) y 10.0.2.15 (victima1) coinciden en la MAC del atacante

A modo de resumen, las herramientas usadas son Nmap para rastrear IPs, Wireshark para ver el tráfico y Ettercap para suplantar la MAC, todas incluidas en el sistema de Kali Linux.

Este tipo de ataque puede tener graves consecuencias en términos de seguridad de la red y la privacidad de los usuarios. Puede resultar en la exposición de datos confidenciales, la pérdida de la integridad de los datos y el acceso no autorizado a sistemas y recursos de la red. Por lo tanto, es importante tomar medidas para protegerse contra este tipo de ataques, como las descritas anteriormente, pero sobre todo no conectarse a redes no seguras ni enviar información no cifrada.

¡Y hasta aquí el artículo sobre envenenamiento ARP!

No dudéis en compartirlo para que llegue a más personas! :)

¡Nos leemos en el siguiente artículo!


Angie López Gea