TunnelCrack: nuevas vulnerabilidades que afectan a la mayoría de VPNs
TunnelCrack fue recientemente presentado en la USENIX Security 2023 por varios investigadores de universidades estadounidenses. Se trata de una combinación de dos vulnerabilidades presentes en la mayoría de VPNs que pueden ser explotadas por un atacante para filtrar el tráfico fuera del túnel.
Los ataques se llaman LocalNet y ServerIP. Ambos pueden ser explotados cuando un usuario se conecta a una red Wi-Fi no confiable.
LocalNet
En el ataque LocalNet, el atacante actúa como una red Wi-Fi o Ethernet maliciosa y engaña a la víctima para que se conecte a esta red. Una forma fácil de lograr esto es clonando una popular zona Wi-Fi como «starbucks». Una vez conectado, el atacante asigna una dirección IP pública y una subred a la víctima:
Aquí el atacante quiere interceptar el tráfico a target.com, que tiene la dirección IP 1.2.3.4. Para lograrlo, el atacante le dice a la víctima que la red local está usando la subred 1.2.3.0/24. En otras palabras, la víctima es informada de que las direcciones IP en el rango 1.2.3.1-254 son directamente accesibles en la red local. Cuando la víctima ahora visita target.com, se enviará una solicitud web a la dirección IP 1.2.3.4. Debido a que la mayoría de las VPN permiten el acceso directo a la red local mientras se usa la VPN, lo que nosotros aprovechamos, la solicitud web se envía fuera del túnel VPN protegido.
Probaron 66+ VPN en cinco plataformas y encontraron que todas las aplicaciones VPN en iOS son vulnerables. Además, todas las VPN de macOS excepto una son vulnerables, en Windows una gran mayoría de VPN son vulnerables, y en Linux más de un tercio son vulnerables. Interesante, las aplicaciones VPN en Android son típicamente las más seguras, con una cuarta parte siendo vulnerables al ataque LocalNet.
ServerIP
En el ataque ServerIP, aprovechamos el hecho de que muchas VPN no cifran el tráfico hacia la dirección IP del servidor VPN. Esto se hace para evitar el re-cifrado de los paquetes. Como ejemplo, digamos que el servidor VPN se identifica por el nombre de host vpn.com y la dirección IP real del servidor VPN es 2.2.2.2. Supongamos que el atacante quiere interceptar el tráfico a target.com que tiene la dirección IP 1.2.3.4. Entonces los ataques se pueden ilustrar de la siguiente manera:
Aquí el atacante primero falsifica la respuesta DNS para vpn.com para devolver la dirección IP 1.2.3.4, que es igual a la dirección IP de target.com. La víctima se conectará entonces con el servidor VPN en 1.2.3.4. Para asegurar que la víctima siga creando una conexión VPN exitosa, el atacante redirige este tráfico al servidor VPN real. Al establecer la conexión VPN, la víctima agregará una regla de enrutamiento para que todo el tráfico al servidor VPN, en este caso la dirección IP falsificada 1.2.3.4, se envíe fuera del túnel VPN. Cuando la víctima ahora visita target.com, se envía una solicitud web a 1.2.3.4. Debido a la regla de enrutamiento que acaba de agregarse, esta solicitud se envía fuera del túnel VPN protegido.
Encontraron que los clientes VPN integrados de Windows, macOS e iOS son vulnerables. Android 12 y superior no se ve afectado. Un número significativo de VPNs de Linux también son vulnerables. Además, vieron que la mayoría de los perfiles OpenVPN, cuando se usan con un cliente VPN vulnerable, usan un nombre de host para identificar el servidor VPN y, por lo tanto, pueden resultar en un comportamiento vulnerable. Para evitar el ataque, los clientes VPN deben actualizarse para enviar todo el tráfico a través del túnel VPN, excepto el tráfico generado por la propia aplicación VPN.
Recomendaciones
Los investigadores recomiendan que los usuarios actualicen sus VPN a la última versión y que activen el cifrado de todos los datos transmitidos. Los usuarios también deben ser conscientes de las redes Wi-Fi no confiables y evitar conectarse a ellas.
Referencias
Paper: Bypassing Tunnels: Leaking VPN Client Traffic by Abusing Routing Tables
Más info en la web: https://tunnelcrack.mathyvanhoef.com/#paper
Powered by WPeMatico