11 nov. 2020

Ataque NAT Slipstreaming evita firewall

Unos nuevos ataques que afectan a los navegadores podrían comprometer nuestra seguridad. El descubridor del ataque ha sido el investigador de seguridad Samy Kamkar y el método de ataque ha sido denominado como NAT Slipstreaming y del cual también ha publicado el código fuente.

Estos ataques requiere que las víctimas visiten un sitio web malicioso del atacante o un sitio con anuncios creados con fines malintencionados. Samy ha proporcionado un esquema de demostración de este ataque para mostrar su funcionamiento.

Los ataques Slipstream NAT explotan el navegador del usuario, junto con el mecanismo de seguimiento de conexión Application Level Gateway (ALG) integrado en NAT, routers y firewalls, mediante el encadenamiento de la extracción de una IP interna a través de un ataque de tiempo o WebRTC, detección remota automatizada de MTU y fragmentación de IP. Además, debido a que es el NAT o firewall el que abre el puerto de destino, esto evita cualquier restricción de puerto basada en 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. Los ataques Slipstream NAT aprovechan el control arbitrario de la porción de datos de algunos paquetes TCP y UDP sin incluir HTTP u otros encabezados. En este caso, el ataque se basa en una nueva técnica de inyección de paquetes que afecta a los principales navegadores tanto modernos como antiguos.

También hay que añadir que se trata de una versión modernizada de la técnica NAT Pinning de Samy Kamkar de 2010 que fue presentada en DEFCON 18 + Black Hat 2010. Además, se han incluido nuevas técnicas para el descubrimiento de direcciones IP locales.

En cuanto al ataque, hay que señalar que requieren que la NAT o el firewall admitan ALG (Application Level Gateways), que son obligatorios para protocolos que puedan usar múltiples puertos (canal de control + canal de datos) como SIP y H323 (protocolos VoIP), FTP, IRC DCC, etc.

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.

Otras investigaciones y prueba de concepto

Samy Kamkar realizó otros descubrimientos que no se utilizan en este ataque. No obstante, podrían utilizarse potencialmente para la realización de otro tipo de ataques. En este sentido averiguó:

  • La fragmentación de IP permite el control total de todos los datos en la sección de datos de IP. Esto se traduce en un control total de un encabezado UDP, incluidos los puertos de origen y destino en el paquete desbordado.
  • Si ya se ha tomado un puerto, el puerto escuchado se incrementa hasta que el puerto se desborda a 0.
  • STUN no tiene la autenticación implementada en ningún navegador moderno.

También podéis descargar la prueba de concepto de los ataques Slipstream NAT desde aquí.

Los navegadores se preparan para bloquear este ataque

Los responsables de los navegadores web para detener los ataques Slipstream NAT tienen previsto bloquear los puertos TCP 5060 y 5061 usados ​​en este ataque agregándolos a la lista restringida.

Según Adam Rice, desarrollador de Chromium, se pretende bloquear las conexiones HTTP y HTTPS a los puertos SIP 5060 y 5061. Así, esto hará que fallen las conexiones a los servidores que utilicen los puertos mencionados anteriormente. Gracias a estos cambios las conexiones a servidores en esos puertos como por ejemplo http://web.com:5060/ o https://web.com:5061/ ya no funcionarían. Además, mejorarían las medidas de seguridad, ya que las pruebas que activan un servidor en un puerto arbitrario se espera que sean más difíciles de utilizar de lo que lo son ahora mismo.

Por último, los navegadores Firefox, Safari, Chromium y Chrome están trabajando para tener lo antes posible solucionados los ataques Slipstream NAT, pero aún no se sabe cuándo lo harán, el día 4 de noviembre se incorporó la solución al problema en el bug tracker de Chromium, por lo que aún tardaremos unas semanas en verlo en la versión estable final.

Fuente: RedesZone

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!