ARP spoofing

Con cortafuegos, servidores proxy y zonas desmilitarizadas (DMZ), el equipamiento en seguridad de las grandes empresas para protegerse de los riesgos procedentes de Internet crece constantemente y, sin embargo, los ataques no siempre provienen del exterior. El talón de Aquiles de la cadena de seguridad es, con frecuencia, la red local o LAN. Si un atacante ha conseguido infiltrarse en la red interna, tiene generalmente todas las puertas abiertas para interceptar el tráfico de datos y manipularlo a su conveniencia. Los hackers se benefician en este caso de la alta vulnerabilidad que presenta el protocolo ARP (del inglés Address Resolution Protocol), usado en redes Ethernet basadas en IPv4 para resolver direcciones IP en direcciones MAC, situando a los administradores, hasta hoy, ante un importante problema para la seguridad.

Las tablas ARP, que contienen las direcciones y sus equivalencias, se pueden manipular fácilmente mediante paquetes de datos falsificados. Se puede hablar en este caso de ARP spoofing o envenenamiento de tablas ARP, un ataque man in the middle que permite a los hackers interferir entre dos sistemas sin ser vistos. Seguidamente te mostramos cómo se puede manipular la resolución de direcciones y presentamos algunas medidas de protección contra estos ataques.

Definición ARP Spoofing

Como ARP Spoofing se designa a los ataques man in the middle que tienen como objetivo las tablas ARP de redes locales. En este tipo de ataque, los ciberdelincuentes envían paquetes ARP falsos con el fin de inflirtrase en la comunicación entre dos sistemas para espiar o manipular su tráfico de datos.

Tablas ARP y la resolución de direcciones en la LAN

A diferencia de como sucede en Internet, los dispositivos conectados en una red local no se comunican directamente con su dirección IP. En lugar de ello, para la resolución de direcciones en redes IPv4 se utilizan direcciones físicas de hardware, las denominadas direcciones MAC (Media Access Control), consistentes en un código único de 48 bits que identifica la tarjeta de red de cada dispositivo en la red local de forma inequívoca.

Ejemplo de una dirección MAC: 00-80-41-ae-fd-7e

Las direcciones MAC son concedidas por los fabricantes de hardware y son únicas a nivel global. En teoría, estas direcciones físicas deberían poder resolver las direcciones a nivel local, pero en la práctica no es factible, ya que las direcciones IPv4 son demasiado cortas para poder reproducir por completo las direcciones MAC. Este es el motivo por el que, en las redes basadas en este protocolo,  se haga imprescindible la resolución de direcciones mediante ARP.

Para poder comunicarse con el ordenador B, el ordenador A necesita averiguar la dirección MAC asociada a su dirección IP. Es aquí donde interviene el protocolo de resolución de direcciones o ARP, un protocolo de red que trabaja según el modelo petición-respuesta.

En la búsqueda de la dirección MAC correspondiente, el ordenador A difunde una petición (ARP Request) en todos los dispositivos de la red que contiene la siguiente información:

Un ordenador con la dirección MAC xx-xx-xx-xx-xx-xx y la dirección IP yyy.yyy.yyy.yyy quiere contactar con un ordenador con la dirección IP zzz.zzz.zzz.zzz y necesita su dirección MAC.

Para evitar tener que enviar una petición ARP cada vez que se envía un paquete de datos, todos los ordenadores en la red disponen de una tabla (caché ARP), donde se almacenan temporalmente todas las direcciones MAC conocidas incluyendo sus IP asociadas. Estos ordenadores, tras recibir la petición, anotan el par de direcciones (IP y MAC) entregado junto a la petición, pero la respuesta con la dirección MAC solo puede darla uno de ellos, el ordenador B. Su respuesta podría ser algo así como:

Aquí el sistema con la dirección IP zzz.zzz.zzz.zzz. La dirección MAC solicitada es aa-aa-aa-aa-aa-aa.

Cuando el ordenador A recibe esta respuesta (ARP Reply), ya dispone de toda la información que necesita para enviar paquetes de datos al ordenador B. En este momento no hay nada que impida la comunicación en la red local. Ahora bien, ¿qué pasaría si el que responde no es el ordenador esperado, sino un dispositivo controlado por una persona externa con objetivos dudosos? Es aquí donde entra en juego el ARP spoofing.

¿Qué es el ARP spoofing?

Este patrón de petición y respuesta del protocolo de resolución de direcciones está programado de tal manera que la primera respuesta a una petición es la que se acepta y se almacena. Cuando llevan a cabo una acción de ARP spoofing, la intención del hacker es la de adelantarse al propio ordenador de destino, enviar un paquete de respuesta con información falsa y, de esta manera, manipular la tabla ARP del ordenador que hizo la petición, lo que hace que a este ataque se le denomine también ARP poisoning o envenenamiento de tablas de ARP. Por regla general, el paquete de datos de respuesta contiene la dirección MAC de un dispositivo de la red controlado por el atacante. El sistema “engañado” asocia, de esta manera, la IP de salida con una dirección física falsa y en el futuro, sin saberlo, envía todos los paquetes de datos al sistema controlado por el hacker, que desde ahora tiene la posibilidad de espiar, registrar o manipular el tráfico de datos por completo.

Para permanecer en modo incógnito, el tráfico de datos se redirige generalmente al sistema de destino real. El atacante se sitúa, así, en una posición intermedia (man in the middle). Si no los reenviara, el ARP spoofing podría tener como consecuencia un Denial of Service (DoS).

El envenenamiento de tablas ARP no solo es posible en redes locales, sino también en redes inalámbricas o WLAN, en la cuales incluso el cifrado mediante clave WPA (Wi-Fi Protected Access) no ofrece ninguna protección. Y es que, para poder comunicarse en redes locales con IPv4, todos los aparatos conectados necesitan resolver las direcciones MAC, algo que solo permite la resolución con tablas ARP.

Un software muy conocido que intercepta peticiones de difusión y envía respuestas falsas es Cain&Abel. Pero para envenenar el caché ARP de los dispositivos de red, el atacante no tiene que esperar necesariamente a que lleguen peticiones. Una estrategia alternativa consiste en bombardear constantemente la red con respuestas falsas, porque, aunque la mayoría de sistemas que no han emitido ninguna petición van a ignorar estas respuestas, tan pronto un ordenador emite una petición está preparado, en consecuencia, para recibir una respuesta a su solicitud. Ahora la cuestión es cuál de las dos respuestas llega antes, la verdadera o la falsa. Este patrón de ataque se puede automatizar con programas como Ettercap. A continuación te mostramos una selección de los más conocidos.

Los programas de ARP spoofing más conocidos

En la red hay algunos programas que son utilizados para llevar a cabo ataques de ARP spoofing y que están disponibles para el público. Generalmente tratados como herramientas de seguridad, con su ayuda, los administradores pueden evaluar el estado de la propia red y asegurarla contra los patrones de ataque más habituales. Entre las aplicaciones más conocidas se cuentan ARP0c/WCI, Arpoison, Cain&Abel, Dsniff, Ettercap, FaceNiff y NetCut.

  • ARP0c/WCI: según sus desarrolladores, esta es una herramienta que utiliza el envenenamiento de tablas ARP para interceptar conexiones en una red local privada. Para ello, el software envía paquetes de respuesta falsificados que derivan el tráfico de datos hacia el sistema donde está instalada la herramienta. Un bridging engine integrado se encarga del reenvío al sistema de destino real. Los paquetes no entregados localmente son reenviados por el software al router correspondiente, de forma que el ataque man in the middle pasa desapercibido. El programa está disponible tanto para Linux como para Windows y se descarga de forma gratuita en la página del fabricante.
  • Arpoison: esta herramienta, utilizada en el marco del análisis de redes pero también como software de ataques de spoofing, genera paquetes ARP en los cuales el usuario puede definir libremente la dirección remitente y de destino. Arpoison está libremente disponible bajo licencia GNU.
  • Cain&Abel: desarrollado como software de recuperación de contraseñas, Cain&Abel ofrece la posibilidad de interceptar redes y descifrar contraseñas. Desde la versión 2.5, el software también incluye funciones de spoofing con las cuales se puede capturar el tráfico de IP en redes locales. Las conexiones SSH y HTTPS tampoco suponen un gran obstáculo para este software. Desde la versión 4.0, también soporta el adaptador AirPcap, que permite la lectura pasiva del tráfico de datos en redes WLAN y desde la versión 4.9.1 es capaz de atacar redes inalámbricas protegidas por WPA.
  • Dsniff: en este caso se trata de una colección de programas que incluye diversas herramientas para el análisis de redes y pruebas de penetración. Dsniff, Filesnarf, Mailsnarf, Msgsnarf, Urlsnarf y Webspy permiten intervenir en redes e interceptar archivos, correos electrónicos o contraseñas. Arpspoof, Dnsspoof y Macof encuentran datos normalmente no accesibles, mientras que los programas Sshmitm y Webmitm se utilizan para llevar a cabo ataques man in the middle en conexiones aseguradas por SSH y por SSL/TLS.
  • Ettercap: este sencillo software, usado sobre todo para realizar ataques man in the middle, soporta diversas distribuciones Linux, así como Mac OS X (Snow Leopard & Lion). La instalación en Windows es posible aunque requiere ajustes extra. Los usuarios disponen, además de la consola, de ncurses frontend y de GTK2-GUI como interfaz gráfica. La herramienta permite automatizar acciones como sniffing, ataques de ARP y la recolección de contraseñas y es capaz de manipular datos interceptados y de atacar conexiones protegidas por SSH o SSL. Oficialmente se ofrece como software de seguridad y suele utilizarse en pruebas de productos.
  • FaceNiff: esta aplicación Android otorga la licencia de leer pasivamente y controlar cookies de sesión en redes WLAN. Los atacantes la utilizan para hackear cuentas de Facebook, de Amazon o de Twitter, aun cuando la red inalámbrica esté protegida por WEP, WPA-PSK o WPA2-PSK. La única protección fiable contra FaceNiff  la ofrecen el protocolo de autenticación EAP (Extensible Authentication Protocol) y SSL. Este software se basa en la extensión de Firefox Firesheep y se utiliza en los smartphones Android en combinación con el browser predefinido (AOSP).
  • NetCut: con este software de gestión de redes, los webmasters administran su red sobre la base de ARP. La herramienta identifica a todos los dispositivos conectados en la red y emite sus direcciones MAC. Un simple clic en una de las direcciones de la lista es suficiente para desconectar ese dispositivo de la red. Esto hace que este software se utilice para ataques DoS, siempre y cuando el atacante se encuentre en la misma red que su víctima. En cambio, no es posible llevar a cabo ataques man in the middle con esta herramienta.

ARP spoofing y cifrado de datos

En el momento en que un hacker logra infiltrarse en el diálogo entre dos hosts y las conexiones están desprotegidas, pasa a tener plena libertad de movimiento, ya que, en una conexión hackeada, toda la comunicación discurre a través del sistema del atacante, el cual puede así espiar y manipular los datos a su conveniencia. No obstante, las técnicas de cifrado y los certificados de autenticación prometen un alto grado de protección contra el espionaje de datos. En el caso de que un hacker intercepte datos cifrados, lo peor que puede ocurrir es una denegación del servicio (Denial of service) porque los paquetes de datos no se entregan. Eso sí, una condición fundamental para que el cifrado de datos funcione de forma fiable es aplicarlo de forma consecuente.

Numerosas herramientas utilizadas en ataques man in the middle ofrecen, junto a funciones de spoofing, implementaciones de cifrado SSL/TLS, SSH, entre otros protocolos, tanto para cliente como para servidor, que las hace capaces incluso de imitar estos certificados y de generar conexiones cifradas. Cain&Abel simula, por ejemplo, un servidor web capaz de encriptar con SSL, que emite al sistema atacado un certificado SSL falso. Y aunque los usuarios de la red reciben en este caso un aviso de seguridad, no lo suelen tomar en serio y lo ignoran o creen que es falso. Aquí cabría considerar, a modo de inciso, que el manejo responsable de los certificados digitales es un componente esencial de la seguridad en la red y sirve para formar consecuentemente a los usuarios.

Medidas de protección frente al ARP spoofing

Al aprovecharse del funcionamiento del protocolo de resolución de direcciones, el envenenamiento de tablas ARP puede afectar, en principio, a todas las redes IPv4. Este problema tampoco lo ha podido resolver la introducción de la versión 6 del protocolo (IPv6). El nuevo estándar renuncia a las tablas ARP, pero regula la resolución de direcciones en la LAN mediante el protocolo NDP (Neighbor Discovery Protocol), también propenso a ataques de spoofing. Esta vulnerabilidad solo se cubre con el protocolo Secure Neighbor Discovery (SEND), que solo soportan unos pocos sistemas operativos de escritorio.

Ante la manipulación del caché ARP, los registros de ARP estáticos, que en Windows pueden cifrarse con el programa ARP (comando arp –s), representan cierta protección, pero al tener que realizarlos manualmente, esta medida de protección suele aplicarse solo a los sistemas más importantes de la red.

Otra forma de protegerse contra el abuso de tablas ARP consiste en subdividir la red mediante conmutadores de capa 3, de forma que las peticiones de difusión incontroladas solo afectan a los sistemas dentro de un mismo segmento. Las que llegan a otros segmentos son examinados por el conmutador. Si este trabaja a nivel de la red (capa 3), además de la MAC también compara la dirección IP con registros precedentes. Si se encuentran incongruencias o reordenaciones frecuentes, el conmutador hace saltar la alarma. Sin embargo, este hardware está ligado a altos costes de adquisición, por lo que los administradores se encuentran a menudo ante la incómoda disyuntiva de decidir si el aumento de la seguridad justifica el gasto financiero. Los conmutadores de capa 2 tradicionales, mucho más asequibles, no son convenientes, porque, aun cuando son capaces de registrar un cambio de la dirección MAC, ignoran la dirección IP a la que corresponde.

Muchos fabricantes ofrecen programas de monitorización con los cuales se pueden supervisar redes y detectar procesos llamativos. Las herramientas más conocidas son los programas de código abierto Arpwatch, ARP-Guard y XArp. También es posible utilizar sistemas de detección de intrusos como Snort para supervisar la resolución de dirección vía ARP.

  • Arpwatch: integrada en una red local IPv4, esta herramienta independiente de la plataforma registra todas las actividades de tipo ARP en la LAN. El programa extrae las direcciones de todos los paquetes ARP entrantes y las guarda en una base de datos central. Si se detectan registros antiguos que no coinciden con los datos actuales, se envía un correo de aviso al administrador. Aunque este sistema es efectivo, solo es adecuado para redes con direcciones IP estáticas. Si las IP en una LAN son distribuidas de forma dinámica con un servidor DHCP, cada cambio en la asignación de IP/MAC genera una alarma.
  • ARP-Guard: ARP-Guard, desarrollado por la empresa alemana ISL, se apoya en dos sensores diferentes para llevar a cabo la supervisión de la red interna. El sensor LAN, de forma similar a Arpwatch, analiza los paquetes de datos entrantes y dispara la alarma en caso de discordancias. El sensor SNMP, por su parte, accede a los dispositivos conectados en la LAN a través delSimple Network Management Protocol (SNMP) y lee sus tablas ARP. De esta forma, no solo se pueden localizar y repeler ataques ARP, sino que la gestión de direcciones integrada permite detectar dispositivos extraños e impedir su acceso a la red.
  • XArp: el software de XArp recurre a módulos activos y pasivos para proteger la red del ARP spoofing. Los pasivos analizan paquetes ARP enviados en la red y comparan las direcciones tal y como están asociadas a registros más antiguos. Si se detectan incongruencias, salta la alarma. El mecanismo de control se apoya para ello en análisis estadísticos y comprueba el tráfico en la red a partir de varios patrones que, a juicio de los desarrolladores, caracterizan a los ataques de ARP. La sensibilidad de estos filtros de tráfico se puede ajustar en varios niveles. Los módulos activos, por su parte, envían ellos mismos paquetes a la red para validar las tablas ARP de los dispositivos contactados y suministrarles datos válidos.

El  sistema de detección de intrusos (IDS) Snort también dispone de un preprocesador Arpspoof integrado que permite supervisar el tráfico de datos en la red y elaborar manualmente listas de comparación, aunque conlleva mucho más trabajo y suelen utilizarse en la transición a redes externas. Decidir si es rentable aplicarlo dentro de la LAN depende de cada caso en particular. A nivel corporativo, esta medida suele encontrarse con la oposición de los comités de empresa, porque el administrador que supervisa la red con IDS tiene acceso al tráfico completo en la red y, de esta manera, también sobre todas las actividades de los empleados de la empresa.