| 12 de julio de 2021

Píldora técnica de ExtraHop: ¿Qué es el túnel ICMP y cómo protegerse contra él?

ICMP, protocolo de control de mensajes de Internet, va un paso más allá del diagnóstico, también es capaz de transferir datos entre dos sistemas

Autor/a: Kirsten Gantenbein, Principal Technical Writer, ExtraHop

Compartir en    

ICMP es un protocolo de mensajes de control de Internet que proporciona información sobre problemas de transmisión de la red. Por ejemplo, cuando un paquete IP no puede llegar a su destino, un router envía un mensaje ICMP al remitente original del paquete informándole del problema, —debido a que el destino de la red es inalcanzable o que se ha excedido el tiempo—. Además, ICMP ofrece la utilidad de ping para confirmar las conexiones de red en buen estado. Los usuarios rara vez interactúan con este protocolo, a excepción de las herramientas de rastreo de rutas y ping.

Sin embargo, ICMP es más que un protocolo de diagnóstico, también es capaz de transferir datos entre dos sistemas. Desafortunadamente, esto hace que sea un vector atractivo para los ataques que pueden transportar comandos en secreto y exfiltrar datos a través del túnel ICMP.

¿Qué es la tunelización ICMP?

Se trata de una técnica de ataque de comando y control (Command-and-Control C2) que permite el paso en secreto del tráfico malicioso a través de las defensas perimetrales. Los datos maliciosos, que se dirigen a través del túnel, se ocultan dentro de peticiones y respuestas de eco ICPM de apariencia normal.

Supongamos que un usuario ha descargado un malware o un atacante ha explotado una vulnerabilidad para instalar un software malicioso en el dispositivo de la víctima. Dicho malware debe establecer un túnel C2 desde el interior de la red para comunicarse con el atacante externo. Al ser un protocolo confiable, que sirve de ayuda a los administradores, los mensajes ICMP pueden viajar a través de firewalls y segmentos de red que generalmente bloquean el tráfico malicioso tanto entrante como saliente.

Además, es posible insertar diferentes tipos de datos maliciosos en un datagrama ICMP, desde pequeñas cantidades de código hasta un gran paquete encapsulado HTTP , TCP o SSH. En concreto, un datagrama es similar a un paquete, la diferencia es que estos no requieren de una conexión establecida o de la confirmación de que se ha recibido la transmisión (a diferencia de los protocolos basados ​​en conexión como TCP). Los datagramas ICMP incluyen una sección de datos que puede transportar una carga útil de cualquier tamaño (se puede ver RFC 792). Por ejemplo, si el atacante desea crear un shell inverso SSH (que le permite interactuar con la víctima), podría insertar un paquete SSH en la sección de datos del datagrama ICMP que establecerá el shell inverso. Por otro lado, un dispositivo comprometido puede insertar pequeños fragmentos de datos extraídos en el datagrama de una solicitud de eco.

Con el tiempo, se enviarían varios mensajes de solicitud y respuesta de eco ICMP entre el dispositivo comprometido y el servidor C2 controlado por el atacante para intercambiar cargas útiles únicas de comandos o datos exfiltrados dentro de cada mensaje de eco ICMP.

Sin embargo, esta técnica tiene desventajas. Algunos sistemas operativos requieren privilegios de administrador local o de root para crear datagramas ICMP personalizados. Estos privilegios pueden ser difíciles de adquirir para un atacante. Además, el túnel ICMP a través de firewalls con estado o router NAT (Network Address Translation) presenta desafíos, porque estos dispositivos filtran las respuestas de eco ICMP que no tienen una solicitud coincidente. En estos casos, la tunelización ICMP puede no ser tan confiable como otros métodos de tunelización de protocolo.

Herramientas como icmptunnel pueden proporcionar soluciones y simplificar el proceso para crear un túnel ICMP que encapsule cualquier tipo de tráfico IP.

Cómo detectar la tunelización ICMP

En este sentido, monitorizar el tráfico de red podría ayudar a detectar volúmenes inusualmente grandes de tráfico ICMP y tamaños de datagramas ICMP no estándar ni habituales. Las solicitudes y respuestas de eco ICMP legítimas tienen identificadores y cargas útiles que son de tamaño fijo o estándar, como 64 bytes. Por ejemplo, cuando un servidor recibe una solicitud de eco, el servidor simplemente copia la carga útil de 64 bytes de la solicitud y agrega esa misma carga útil a la respuesta de eco. Un dispositivo de red, que envía mensajes ICMP con cargas útiles inusualmente grandes o manda más mensajes ICMP de lo habitual, podría indicar tráfico de túnel.

Este tráfico puede ser difícil de detectar. El software verificaría legítimamente las conexiones de red en buen estado con mensajes de eco que tienen cargas útiles inusuales. Para comprobar si la carga útil no cifrada tiene contenido malicioso, se puede examinar en profundidad con herramientas como Wireshark. Hay que tener en cuenta que un atacante puede cifrar cargas útiles ICMP para evadir la detección.

ExtraHop Reveal (x) detecta automáticamente el comportamiento de tunelización ICMP, identificando números inusuales de solicitudes ICMP enviadas por un dispositivo a lo largo del tiempo, y cada solicitud contiene una carga útil única. Las solicitudes ICMP normales suelen incluir una carga útil estática que se repite en varias de estas peticiones.

Un defensor puede investigar las transacciones asociadas con el dispositivo de la víctima para determinar si se comunicó con un endpoint externo sospechoso. También puede comprobar si el tráfico de red para mensajes ICMP debe salir de la red.

Cómo prevenir la tunelización ICMP

Dado que ICMP ayuda a mantener conexiones de red en buen estado, bloquear todo el tráfico ICMP puede crear desafíos. Los endpoints y dominios maliciosos conocidos descubiertos a través de la inteligencia de amenazas se pueden bloquear en el perímetro. También es posible configurar firewalls para bloquear pings salientes a endpoints externos y solo permitir que los paquetes ICMP de tamaño fijo pasen a través de firewalls.

 

Puede leer al artículo original aquí.


En nuestras Redes Sociales