Para poder establecer conexiones, poder navegar por Internet o usar cualquier servicio online, es necesario que haya ciertos protocolos para que sea posible. En este artículo vamos a hablar de qué es el protocolo ARP, cómo funciona y veremos por qué es importante. Un repaso por la historia de este protocolo de red tan importante para cualquier conexión que se realice en la actualidad, pero siempre utilizando el protocolo de red IPv4, porque en el protocolo de red IPv6 el ARP desaparece por completo, siendo sustituido por el ICMPv6 que engloba muchas más funcionalidades.
Lo más probable es que te suene qué es la dirección IP o MAC, sin embargo, hay un protocolo en particular que es posible que no lo tengas en cuenta. Hablamos del protocolo de resolución de direcciones, también conocido como ARP. Para que puedas conocer a fondo este procedimiento en particular, en RedesZone te explicaremos qué es exactamente y en qué consiste, además de los diferentes tipos que hay y de cómo es su funcionamiento en particular.
En qué consiste el protocolo ARP
ARP son las siglas de Address Resolution Protocol. En español lo podemos traducir como Protocolo de resolución de direcciones. Es un protocolo de comunicaciones muy importante, ya que se encarga de vincular una dirección MAC o dirección física, con una dirección IP o dirección lógica. Este protocolo se desarrolló en la década de 1980 y hoy en día sigue siendo fundamental para el buen funcionamiento de las redes.
- La dirección IP se trata de un número que se le asigna y hace referencia a un equipo en una red. Tiene como fin el facilitar que estos se distingan dentro de la misma. Puede ser pública o privada. En cuanto a la primera, es la que nos facilita nuestro proveedor de internet (ISP), y que nos identifica en Internet. Por otro lado, la privada es la que se establece en los dispositivos dentro de nuestra red doméstica.
- En cuanto a la dirección MAC, es el número que identifica un componente de un equipo. En este caso, la tarjeta de red. Pueden ser utilizadas para permitir o denegar el acceso a internet de un equipo. Por ejemplo, si te banean de un juego, puede hacerlo por IP o directamente por MAC, lo que no permitiría que tu equipo vuelva a poder acceder pese a que uses otra conexión.
Se encarga de permitir que un dispositivo conectado a una red pueda obtener una ruta MAC de otro equipo que está conectado a esa misma red, es decir, se encarga de «localizar» donde están los demás dispositivos cableados o inalámbricos en la red, preguntando por la dirección MAC de cada uno de ellos enviando un paquete a la dirección de broadcast que es FF:FF:FF:FF:FF:FF. Permite transmitir datos a través de una trama, ya que este protocolo se encuentra a nivel de capa de enlace. Es importante ya que la longitud de las direcciones IP y MAC no son iguales. La primera tiene una longitud de 32 bits y la segunda de 48 bits.
Por tanto, lo que hace el protocolo ARP en el procedimiento de mapeo es traducir para que los sistemas puedan reconocerse entre sí. Hoy en día la resolución de direcciones IPv4 es la más utilizada, de ahí que este protocolo sea importante. ARP se encarga de «traducir» la dirección de 32 bits a 48 bits y viceversa, realmente lo que hace este protocolo es crear una tabla con una pareja IP-MAC donde posteriormente fijarse para poder transmitir todos los datos correctamente.
Tipos de protocolo ARP
Así como en otros protocolos, con ARP también tenemos distintos tipos o distintas implementaciones.
Proxy ARP: En primer lugar, este tipo de ARP es una técnica que básicamente se utiliza para que el servidor proxy pueda responder a las consultas ARP que se le hagan desde direcciones IP que no pertenecen a la red. Esto lo que quiere decir es que, desde otra red con este tipo de proxy pueden responderse a las consultas ARP desde direcciones IP diferentes.
ARP gratuito: Este tipo de ARP es una solicitud de ARP que por lo general viene realizada por el host de un equipo y que normalmente se utiliza para la identificación de direcciones IP duplicadas.
En otras palabras, lo que hace el ARP gratuito es actualizar la tabla ARP de otros dispositivos de red y al mismo tiempo lo que hace es verificar si el host del equipo está utilizando tu dirección IP original o si por el contrario está utilizando una dirección IP que se encuentra duplicada.
ARP inverso: Este protocolo, o tipo de protocolo ARP, es normalmente utilizado por nuestros equipos host. Se utiliza por lo regular para extraer información sobre nuestro propio protocolo de Internet sea este IPv4 o IPv6 de la red.
Es fácil de entender, ya que lo que simplemente hace este protocolo dicho con otras palabras es un protocolo de red TCP/IP mediante el cual, nosotros como usuarios podemos obtener de manera acertada, la información de la dirección IP de un servidor de red.
Otra forma en la que se utiliza el ARP inverso o InARP es para encontrar la dirección IP de los dispositivos mediante la utilización de la dirección MAC. Este caso se usa de manera más común, por ejemplo, en las redes ATM.
Debido a esto, los nodos finales no deben estar completamente organizados para identificar tampoco las direcciones MAC, sino que, pueden ser encontradas una vez que esto se requiera.
Creación de mensajes ARP
El protocolo ARP utiliza una forma simple para sus mensajes, y poder envías las solicitudes a la vez que responderlas. Principalmente estaba pensado para ser utilizado con direcciones IPv4 y MAC, pero esto también se puede utilizar con otros protocolos de red. Este es el motivo de que existan otros campos para el tipo y tamaño de las direcciones de hardware y protocolos. Esto tiene como consecuencia que pueda haber diferentes tamaños para los paquetes ARP. En una situación normal, todo esto está basado en la utilización del protocolo ARP en Ethernet e IPv4, lo cual genera paquetes con una longitud de 224 bits (28 bytes).
La cabecera ARP, da inicio con información que tiene una longitud de 16 bits sobre el tipo de dirección de hardware. En los casos de dispositivos Ethernet, el valor del paquete sería de 1. Luego de debe indicar el protocolo (16 bits), que tiene que servir a modo de base para la resolución de las direcciones ARP. En este caso, las IPv4 se distinguen por un valor. Este también se va a utilizar en las tramas Ethernet como valor para todo el protocolo IPv4.
Luego tenemos otros dos campos, donde tendremos la información de longitud de ambas direcciones en bytes. Primero las direcciones MAC, que tiene un tamaño de 6 bites y se identifican con el valor 6. Luego las direcciones IP, con longitud de 4 bytes y que se distinguen con el valor 4. Los siguientes 16 bites, se van a reservar para la especificación de los mensajes ARP. Primero tenemos el valor 1, que se utiliza para una solicitud ARP. Seguido el 2, que nos revela que se trata de una respuesta ARP. Y finalmente tendremos los paquetes, que reciben las cuatro direcciones que son relevantes y que se han establecido previamente. Estas son:
- Dirección MAC del remitente: en este caso, hay que tener en cuenta que puede contener la MAC del ordenador que actúa como solicitante, en cambio, en una respuesta ARP, lo cierto es que se tiene la dirección física de destino o la dirección que será la próxima pasarela.
- Dirección IP del remitente: cuenta con la IP del equipo que realiza la solicitud (ARP), aunque también puede contener la de destino o hasta de la próxima puerta de enlace.
- Dirección MAC del destinatario: dentro de este campo se encuentra la dirección MAC broadcast FF:FF:FF:FF:FF:FF en el momento en el que un remitente realiza una solicitud. Ya en la respuesta ARP se registra la dirección de hardware del solicitante.
- Dirección IP del destinatario: en este caso, se incluye la dirección IP del host en sí y la dirección MAC que tiene que buscar. Por tanto, el mensaje de respuesta tiene la IP del PC que solicita.
Eficacia de los ataques ARP
Como puedes ver, los ataques ARP son una de las técnicas más utilizadas por los atacantes para interceptar tráfico. Esto es porque resultan muy eficaces, debido a su naturaleza furtiva y sencilla. Otros tipos de ataques, requieren grandes cantidades de recursos y conocimientos técnicos más avanzados, cosa que no es tan exigente con los ataques ARP. Prácticamente cualquiera con el software adecuado, puede lanzar este tipo de ataques. Por eso se han convertido en una de las técnicas más avanzadas, para llevar a cabo actividades maliciosas. Sobre todo, para los hackers novatos, donde apenas necesitan estos conocimientos.
En cambio, la eficacia una vez lanzada el ataque puede depender de diferentes factores. Uno de ellos es la configuración de la red, y de las medidas de seguridad con las que cuentan en el momento del ataque. Si la red se encuentra configurada de forma adecuada y utilizar buenas medidas de seguridad, el ataque ARP puede ser detectado de una forma muy sencilla. Lo cual les permite estar prevenidos, por si algún ataque se produce en el futuro. Podemos poner el ejemplo del firewall de red o sistemas de detección de intrusos, los cuales pueden detectar los ARP y establecer bloqueos de los paquetes malintencionados.
Por lo cual, a pesar de que se trata de una técnica relativamente sencilla a nivel técnico, su eficacia no depende tanto de la habilidad del atacante en sí. La red que se ataque juega un papel muy importante, definiendo el cómo podrá actuar el ARP. Esto hace patente la importancia de disponer de las medidas de seguridad adecuadas, ya sea una red profesional de una empresa, o la que tenemos instalada en nuestras casas. Así como disponer de todas las actualizaciones desde el router, a todos los dispositivos que se encuentren conectados a este.
Tablas ARP
Las tablas ARP son uno de los recursos básicos para las redes de hoy en día. Estas tienen la función de resolver las direcciones IP a direcciones MAC. Esto lo que permite es que exista la comunicación entre dispositivos que se encuentran dentro de una red local. Cuando uno de ellos da la señal de que necesita realizar el envío de datos a otro equipo, se realiza una consulta en las tablas de direcciones ARP para que se pueda obtener la dirección MAC que corresponda a alguna dirección IP específica. Estas tablas se quedarán almacenadas en la memoria de cada uno de los dispositivos que se encuentra conectado a la red, y se va reeditando cuando se agregan nuevos equipos a la misma.
Como al querer realizar el envío se hace una consulta a la tabla ARP, es necesario enviar la consulta a la misma para determinar la dirección IP de destino. Si esta se encuentra dentro de la tabla, el dispositivo obtiene la dirección MAC que se asocia a esa IP. Luego realizará el envío del paquete a la dirección requerida. Por la contra, si la dirección no aparece en la tabla ARP, se enviará una solicitud broadcast a toda la red que componen los equipos. Esto solicitará a todos ellos que respondan con su dirección MAC, y se verifica que coinciden con las direcciones IP. Una vez se reciben las direcciones, el emisor realizará una actualización de la tabla ARP con la información nueva que ha obtenido. En ese momento, ya se podrán enviar paquetes al nuevo equipo de forma normal.
La importancia de las tablas ARP, radica en que ayudan mucho a mejorar la eficiencia de las comunicaciones en las redes locales. Manteniéndose actualizadas, los dispositivos podrían enviar solicitudes ARP repetitivas. Esto reduce la latencia de la red, y mejora el mantenimiento en general de la misma. En todo caso es importante destacar, que las tablas ARP pueden ser el objeto de ataques de suplantación de identidad. Lo que permite que se realicen intercepciones del tráfico que circula por la misma, y se manipule de una forma negativa. Para ello se deben implementar las medidas de seguridad adecuadas para cada caso en particular.
Diferencias entre ARP, DHCP y DNS
De primeras, hay que tener en cuenta que el ARP es el procedimiento de conectar una dirección IP dinámica a una dirección MAC de una máquina física. Por lo tanto, es un caso importante para analizar algunas de las tecnologías relacionados con la IP. Estas, están diseñadas para que cambian de manera constante por el simple hecho de que hacerlo da más seguridad y privacidad a los usuarios.
En cambio, las IP no deben ser completamente aleatorias, sino que deben seguir una serie de reglas para que se asignen de un rango definido de números que estén disponibles en una red en particular. Estas mismas reglas de las que hablamos se llaman DHCP o protocolo de configuración dinámica de host. Por lo que ahí está la diferencia de funcionamiento entre ARP y DHCP.
Por otro lado, también hay que tener en cuenta que las IP como identidades de ordenadores son importantes al ser necesarias en el momento de realizar una búsqueda por Internet. Por ejemplo, cuando un usuario busca el nombre de dominio, usa un nombre alfabético. Por lo tanto, los dispositivos usan la dirección IP numérica para asociar el nombre de dominio con un server. Y, en este caso, para que se conecten ambos, se usa un servidor de sistema de nombres de dominio, conocido como DNS (Domain Name System), con el objetivo de que se pueda traducir una dirección.
Seguridad en ARP
Por más que pueda resultar realmente de utilidad este protocolo, lo cierto es que también hay una serie de puntos en contra en cuanto a seguridad. Por ejemplo, como es el cas del ataque común que se conoce bajo el nombre de envenenamiento de ARP. Este da como resultado una manipulación de la tabla caché ARP para relacionar direcciones IP legítimas con otras direcciones MAC que no son correctas. Por lo tanto, se consigue redirigir el tráfico de una red a un destino que no debería, por lo que se permite su interceptación y un análisis no autorizado de los datos que se transmitan.
Por ello, con el fin de reducir este tipo de riesgo en particular, lo cierto es que se usan técnicas como ARP Spoofing Detection o hasta el uso de protocolos más seguros, como es el caso de ARP Security (ARPsec). Este último se encarga de ofrecer una serie de medidas extra con el fin de salvaguardar la integridad de las distintas tablas ARP.
Beneficios y contras de ARP
Haciendo un resumen general de sus beneficios nos encontramos lo siguiente:
- Facilidad de uso: Facilita la comunicación dentro de una red LAN entre todos los dispositivos, consiguiendo así que se comuniquen sin necesidad de conocer las direcciones físicas previamente.
- Protocolo universal: Gracias al tipo de protocolo, soporta todos los dispositivos de red, lo que permite la conexión correcta independientemente del equipo y del sistema operativo del mismo.
- Rendimiento: En redes locales, este protocolo es muy rápido, consiguiendo una resolución rápida y en tiempo real de direcciones IP a direcciones MAC.
- Muy simple: Su implementación y mantenimiento es muy simple, lo que resulta sencillo para cualquier usuario, por poco conocimiento que tenga.
Por el otro lado, dentro de las contras, que también posee, podemos ver estas:
- Ataques Spoofing: ARP es susceptible a ataques de suplantación (spoofing), por lo que, no es lo más seguro en este aspecto. Hablaremos de ellos más adelante en profundidad.
- Falta de autenticación: Los ataques maliciosos son mayores debido a la falta de una autenticación para su uso.
- No soporta grandes redes: ARP está diseñado para redes locales y pequeñas, y puede no escalar eficientemente en redes mucho más grandes.
Cuál es el funcionamiento de ARP
Entonces, ¿cómo funciona exactamente el protocolo ARP? ¿Qué pasos son necesarios? Pongamos que hemos conectado un nuevo ordenador o cualquier dispositivo a la red. Ese equipo, para poder vincularse al router, va a recibir una dirección IP única. Esto es imprescindible para comunicarse y poder identificarse. Los paquetes de datos van a ir dirigidos a un host en particular. La puerta de enlace o el hardware de una red va a permitir que los datos fluyan y va a solicitar al protocolo ARP que encuentre una dirección MAC que coincida con esa dirección IP.
Hay que tener en cuenta que esta información se almacena en caché, por lo que ese paso se realiza la primera vez. A partir de ahí, la caché ARP mantiene una lista con las diferentes direcciones IP y direcciones MAC correspondientes, es decir, existe una tabla ARP que ya tiene guardada toda la información necesaria para que este proceso no sea necesario realizarlo continuamente.
Como dato a añadir, el propio usuario puede crear una tabla ARP estática donde almacenar esas direcciones IP y MAC. Pero de forma dinámica, esa caché ARP se almacena en los sistemas operativos en una red Ethernet IPv4. En cuanto un dispositivo va a solicitar la dirección MAC para enviar datos a cualquier otro equipo que esté conectado en esa red, se va a verificar la caché ARP. En caso de que exista, no sería necesario realizar una nueva solicitud.
También hay que mencionar que la caché ARP no es infinita, sino todo lo contrario. Tiene un tamaño limitado y además las direcciones solo permanecen en caché durante un tiempo. Esto es así para poder liberar espacio y también para evitar ataques cibernéticos que puedan robar o falsificar las direcciones. Si sabemos que un determinado equipo siempre va a tener la misma dirección IP-MAC, entonces podríamos añadir esta entrada en la tabla ARP como estática, no obstante, si por algún motivo este equipo cambia de IP, no podremos comunicarnos con él, porque nuesta tabla ARP no está actualizada.
Un detalle muy importante es que el protocolo ARP no solamente está localmente dentro de una red local, si queremos comunicarnos con el exterior, nosotros tendremos que saber a través de ARP qué dirección MAC utiliza el router, ese router usará ARP para conocer a dónde debe enviar el paquete en función de su tabla de enrutamiento. De esta forma, aunque la tabla ARP está contenida dentro de un determinado dominio de difusión (VLAN), un router que interconecte dos redes, debe saber la tabla ARP completa de ambas redes para poder reenviar correctamente toda la información, de lo contrario no podría haber comunicación.
Si hablamos directamente de los paquetes, estos cuentan con su propia estructura, en la cual podemos ver mucha información acerca de la comunicación que realizamos. ARP utilizará un formato de mensaje simple, que lleva consigo una solicitud de resolución o respuesta. El tamaño de este, dependerá de la primera capa, la superior. La carga del paquete consta de varias direcciones. El hardware, la dirección del protocolo del remitente y el receptor host.
- Hardware Type (HTYPE): Se trata del campo que especifica el tipo de protocolo de enlace.
- Protocol Type (PTYPE): Nos indica el protocolo de interconexión de redes para las que están destinadas las peticiones ARP.
- Longitud de Hardware (HLEN): Aquí mediremos la longitud de una dirección de hardware. Se representará en octetos.
- Longitud de Protocolo: Se trata de la longitud de las direcciones utilizadas por el protocolo de capa superior. También en octetos.
- Operación: Nos especifica las operaciones que el emisor está realizando.
- Dirección de hardware remitente (SHA): Donde veremos la dirección de medios de comunicación remitentes.
- Remitente de dirección de protocolo (SPA): Que sería la dirección de interconexión del remitente.
- Dirección de hardware destino (THA): Este campo se suele ignorar en las solicitudes, pero se trata de la dirección de los medios de comunicación del receptor.
- Dirección de protocolo target (TPA): Se trata de la interconexión del receptor previsto.
Cómo pueden atacar ARP
Siguiendo el hilo de lo que mencionábamos, hay que indicar que es posible que haya ataques de seguridad informática contra el protocolo ARP. El tipo de ataque base es lo que se conoce como ARP Spoofing, pero a través de ello van a poder realizar ataques de denegación de servicio y provocar problemas.
ARP Spoofing
Una de las contras de las que hablábamos antes. También se conoce como suplantación de ARP. Básicamente consiste en enviar ARP falsos. Puede asociar la dirección MAC de un atacante con una dirección IP. De esta forma podría recopilar información que se envía a través de una dirección IP y controlar el tráfico.
Este tipo de ataque permite que un pirata informático pueda robar datos importantes de cualquier usuario particular o empresa en caso de un ataque exitoso. Lo pueden llevar a cabo a través de un dispositivo que previamente han atacado y controlado o incluso el suyo propio si está conectado a la red local.
Esta amenaza se podría prevenir a través de tablas ARP estáticas. Esto evita que haya caché dinámica, aunque no es algo viable en la mayoría de casos. En estos casos tendríamos que mantener una inspección constante para evitar la suplantación. Para que este tipo de ataques puedan ocurrir es necesario que el ciberdelincuente utilice ciertas herramientas como pueden ser Arpspoof o Driftnet.
También podemos relacionar esto con los ataques Man in the Middle. Lo que hace el atacante es interceptar todo lo que se envía, como pueden ser contraseñas o datos. Si la red está desprotegida, puede llegar a suplantar la identidad y obtener cierta información confidencial. Lo que hace el atacante literalmente es estar en medio de la comunicación, escuchando todo lo que se envía y recibe.
Ataques DoS
Otro tipo de ataque que puede afectar al protocolo ARP es lo que se conoce como denegación de servicio o DoS. En este caso un atacante va a buscar enviar una gran cantidad de solicitudes para que los sistemas, servidores o redes no puedan responder con normalidad.
Este problema va a provocar que los usuarios no puedan conectarse a la red. Para que esto ocurra deben explotar alguna vulnerabilidad que haya en el protocolo de red. Pueden hacer que durante un tiempo no puedan conectarse correctamente. Es similar a los ataques de este tipo que podemos ver contra el servidor de una web, por ejemplo, que deja de estar accesible para los visitantes.
Una vez un atacante ha logrado explotar el protocolo ARP, puede llevar a cabo ataques DDoS o de denegación de servicios distribuidos. Puede llegar a bombardear un servidor con una gran cantidad de solicitudes y que no pueda resolverlas adecuadamente.
Este tipo de ataques se resuelven cuando el causante del mismo deja de hacerlos, sin embargo, no depende de nosotros el tiempo que quiera, y, por tanto, sin medidas de protección, estaríamos vendidos y podrían provocar grandes problemas en nuestros servidores.
En definitiva, el protocolo ARP sirve para resolver direcciones IPv4 a MAC. Para ello utiliza tablas ARP para encontrar las direcciones correspondientes y vincularlas. Esto permite traducir las direcciones y que los dispositivos puedan encontrarse. Es imprescindible para conectar un equipo al router, por ejemplo. Para evitar todo esto que mencionamos es imprescindible que mantengamos siempre la seguridad, que tengamos las redes protegidas y estemos alerta en todo momento para detectar lo antes posible cualquier intento de intrusión. Lo que implica tener el router actualizado, el sistema operativo en su última versión, y todo tipo de medidas que siempre recomendamos, intentando reducir esas posibles contras al mínimo, para aprovechar mejor sus beneficios.