Túnel ICMP
Un túnel ICMP [1] establece una conexión encubierta entre dos computadoras remotas (un cliente y un proxy), utilizando paquetes ICMP de eco request y echo reply (petición eco y respuesta de eco). Un ejemplo de esta técnica es la tunelización del tráfico TCP completo a través de solicitudes y respuestas de ping.
Detalles técnicos
[editar]El túnel ICMP funciona inyectando datos arbitrarios en un paquete de eco enviado a una computadora remota. La computadora remota responde de la misma manera, inyectando una respuesta en otro paquete ICMP y enviándolo de regreso. El cliente realiza todas las comunicaciones mediante paquetes de solicitud de eco ICMP, mientras que el proxy utiliza paquetes de respuesta de eco.
En teoría, es posible que el proxy utilice paquetes de solicitud de eco (lo que facilita mucho la implementación), pero estos paquetes no necesariamente se reenvían al cliente, ya que el cliente podría estar detrás de una dirección traducida (NAT). Este flujo de datos bidireccional se puede abstraer con una línea serial ordinaria.
La creación de túneles ICMP es posible porque el RFC 792, que define la estructura de los paquetes ICMP, permite una longitud de datos arbitraria para cualquier paquete ICMP de tipo 0 (respuesta de eco) u 8 (mensaje de eco).
Usos
[editar]El túnel ICMP se puede utilizar para eludir las reglas de los cortafuegos mediante la ofuscación del tráfico real. Dependiendo de la implementación del software de tunelización ICMP, este tipo de conexión también se puede clasificar como un canal de comunicación cifrado entre dos computadoras. Sin una inspección profunda de paquetes o una revisión de registros adecuada, los administradores de red no podrán detectar este tipo de tráfico a través de su red.[2]
Mitigación
[editar]Una forma de evitar este tipo de tunelización es bloquear el tráfico ICMP, a costa de perder algunas funcionalidades de red que la gente suele dar por sentadas (por ejemplo, puede llevar más tiempo determinar que un dispositivo está fuera de línea, en lugar de casi instantáneamente). Otro método para mitigar este tipo de ataque es permitir solo paquetes ICMP de tamaño fijo a través del cortafuegos, lo que puede impedir o eliminar este tipo de comportamiento. [3]
Los túneles ICMP se utilizan a veces para eludir los cortafuegos que bloquean el tráfico entre la LAN y el mundo exterior. Por ejemplo, por servicios comerciales de Wi-Fi que requieren que el usuario pague por el uso, o una biblioteca que requiere que el usuario inicie sesión primero en un portal web. Si el operador de red asumió erróneamente que basta con bloquear sólo los protocolos de transporte normales como TCP y UDP, pero no los protocolos centrales como ICMP, entonces a veces es posible utilizar un túnel ICMP para acceder a Internet a pesar de no haber sido autorizado para acceder a la red. El cifrado y las reglas por usuario que no permiten a los usuarios intercambiar paquetes ICMP (y todos los demás tipos de paquetes, tal vez mediante el uso de IEEE 802.1X) con dispositivos externos antes de la autorización resuelven este problema.
Véase también
[editar]Referencias
[editar]- ↑ Daniel Stødle. «Ping Tunnel: For those times when everything else is blocked.».
- ↑ ¿Qué es la tunelización ICMP y cómo protegerse? https://www.extrahop.com/company/blog/2021/detect-and-stop-icmp-tunneling/
- ↑ «CiteSeerX». CiteSeerX (en inglés). Consultado el 13 de febrero de 2024.
Enlaces externos
[editar]- RFC 792, Internet Control Message Protocol
- itun Túnel simple sobre TCP
- Hans Túnel ICMP para Linux (servidor y cliente) y BSD MacOSX (solo cliente)
- ICMP-Shell Un protocolo similar a telnet usando solo ICMP
- PingTunnel Túnel TCP sobre ICMP
- ICMP Crafting por Stuart Thomas
- Usando la herramienta de tunelización ICMP: Ping Tunnel
- Project Loki Artículo sobre tunelización ping en Phrack
- Túnel ICMP con código fuente en C#
- icmptunnel Túnel IP sobre ICMP por Dhaval Kapil