jueves, 12 de diciembre de 2019

Un fallo de Linux posibilita el secuestro de conexiones VPN cifradas

Se ha revelado una nueva vulnerabilidad grave que afecta a la mayoría de los sistemas operativos similares a Linux y Unix, incluidos FreeBSD, OpenBSD, macOS, iOS y Android, que podría permitir espiar y manipular las conexiones VPN encriptadas a los ‘atacantes adyacentes de red’.




La vulnerabilidad, rastreada como CVE-2019-14899, reside en la pila de redes de varios sistemas operativos y puede explotarse tanto en flujos TCP IPv4 como IPv6. Dado que la vulnerabilidad no depende de la tecnología VPN utilizada, el ataque funciona contra protocolos de red privada virtual ampliamente implementados como OpenVPN, WireGuard, IKEv2 / IPSec y más según confirmaron los investigadores.


Para explotar esta vulnerabilidad es suficiente con enviar al dispositivo de la víctima una serie de paquetes de red no solicitados y observar las respuestas (sin importar que estén encriptados siquiera), por lo que puede realizarse tanto controlando un punto de acceso como conectándose a la red de la víctima.


Aunque existan variaciones entre los distintos sistemas operativos afectados, la vulnerabilidad permite en todos ellos inyectar datos en el flujo TCP , secuestrar conexiones y determinar:



  • La dirección IP virtual de una víctima asignada por el servidor VPN,

  • La existencia de conexiones activa a un sitio web determinado,

  • Los números exactos de seq y ack contando los paquetes cifrados o examinando su tamaño.


Ya que al enviar un SYN-ACK a la IP virtual correcta, el dispositivo responde con un RST, mientras que si es enviado a una IP virtual incorrecta, no se recibe nada, es posible determinar la IP virtual de la víctima simplemente mediante el envío a su dispositivo de paquetes SYN-ACK a través de todo el espacio de la IP virtual.


Hasta la fecha, se ha confirmado que esta vulnerabilidad puede ser explotada con una gran cantidad de distribuciones Linux, especialmente en aquellas que usan la versión de systemd posterior al 28 de noviembre de 2018 (momento en el que se desactivó el filtrado de ruta inversa), por ejemplo:



  • Ubuntu 19.10 (systemd)

  • Fedora (systemd)

  • Debian 10.2 (systemd)

  • Arco 2019.05 (systemd)

  • Manjaro 18.1.1 (systemd)

  • Devuan (sysV init)

  • MX Linux 19 (Mepis + antiX)

  • Linux vacío (runit)

  • Slackware 14.2 (rc.d)

  • Deepin (rc.d)

  • FreeBSD (rc.d)

  • OpenBSD (rc.d)


La estrategia de mitigación propuesta por el equipo de investigación que descubrió la vulnerabilidad consiste en:



  • Activar el filtrado de ruta inversa,

  • Implementar el filtrado de direcciones de IP falsas (bogons), y

  • Cifrar el tamaño y el tiempo del paquete.


Fuentes:


No hay comentarios: