Nos hacemos eco de una nueva investigación de seguridad que ha encontrado una nueva técnica que permite a un atacante evitar el firewall y acceder de forma remota a cualquier servicio TCP/UDP en el equipo de la víctima. Un problema que, como vemos, puede poner en serio problema la seguridad. Vamos a explicar en qué consiste este ataque. Os recomendamos visitar nuestro tutorial sobre configurar conexión a Internet con pfSense.
Un nuevo ataque permite evitar el firewall
Se trata de un ataque de derivación de NAT/firewall que puede permitir a un atacante acceder a cualquier servicio TCP/UDP. Esta amenaza se conoce como NAT Slipstreaming. Es un método que implica enviar al objetivo, a la víctima, un enlace a un sitio malicioso (o un sitio legítimo cargado con anuncios maliciosos) que, cuando se visita, activa la puerta de enlace para abrir cualquier puerto TCP/UDP en la víctima. Esto logra evitar las restricciones basadas en puertos en el navegador.
Este nuevo método ha sido revelado por el investigador de seguridad Samy Kamkar. Según informa, NAT Slipstreaming explota el navegador del usuario junto con el mecanismo de seguimiento de conexión de Application Level Gateway (ALG), que está integrado en NAT, enrutadores y firewalls al encadenar la extracción de IP interna a través del ataque de tiempo o WebRTC, el descubrimiento de fragmentación de IP y MTU remoto automatizado, tamaño de paquetes TCP, el uso indebido de la autenticación TURN, el control preciso de los límites de los paquetes y la confusión del protocolo por explotar el navegador.
Como sabemos, NAT es el proceso en el que un dispositivo de red, como puede ser un firewall, reasigna un espacio de direcciones IP a otro modificando la información de la dirección de red en el encabezado IP de los paquetes mientras están en tránsito.
Podemos decir que la principal ventaja es que limita la cantidad de direcciones IP públicas utilizadas en la red interna de una organización y mejora la seguridad al permitir que una única dirección IP pública se comparta entre múltiples sistemas.
NAT Slipstreaming aprovecha la segmentación de paquetes TCP e IP
Lo que hace NAT Slipstreaming es aprovechar la segmentación de paquetes TCP e IP para ajustar de forma remota los límites del paquete y usándolo para crear un paquete TCP/UDP comenzando con un método SIP (que es la abreviatura de Session Initiation Protocol) como REGISTER o INVITE. SIP es un protocolo de comunicaciones que se utiliza para iniciar, mantener y finalizar sesiones multimedia en tiempo real para aplicaciones de mensajería, video y voz.
Dicho de otra forma, se puede utilizar una combinación de segmentación de paquetes y tráfico de solicitudes SIP en HTTP para engañar a NAT ALG para que abra puertos de forma arbitraria para conexiones entrantes.
Esto lo pueden lograr al enviar una solicitud HTTP POST grande con una ID y un formulario web oculto que apunta a un servidor de ataque que ejecuta un rastreador de paquetes. Este se utiliza para capturar el tamaño de MTU, el tamaño del paquete de datos, los tamaños de encabezado TCP e IP, entre otros. Posteriormente transmite los datos de tamaño al cliente víctima a través de un mensaje POST separado.
Más allá de esto, también abusa de una función de autenticación en TURN (Traversal Using Relays around NAT), un protocolo que se usa junto con NAT para retransmitir medios desde cualquier par a otro cliente en la red, para llevar a cabo un desbordamiento de paquetes y fragmentar los paquetes IP.
Básicamente consiste en desbordar un paquete TCP o UDP y forzarlo a dividirse en dos para que el paquete de datos SIP esté al comienzo del límite del segundo paquete. Posteriormente, la dirección IP interna de la víctima se extrae usando WebRTC ICE en navegadores modernos como Chrome o Firefox, o ejecutando un ataque de tiempo en puertas de enlace comunes.
Según indica el investigador de seguridad detrás de este informe, una vez que el cliente obtiene los tamaños de los paquetes y la dirección IP interna, construye un formulario web especialmente diseñado que rellena los datos POST hasta que el paquete se fragmenta, momento en el que se agrega el REGISTRO SIP que contiene la dirección IP interna.
Os recomendamos leer nuestro tutorial de configurar IPFire y proteger la red local.