Un reciente estudio demuestra como es posible identificar las conexiones que utilizan OpenVPN
En los artículos sobre seguridad y de vulnerabilidades que he compartido aquí en el blog, suelo mencionan que ningún sistema, hardware o implementación es seguro, ya que por mucho que asegure ser 100% confiable, las noticias sobre vulnerabilidades detectadas nos han demostrado todo lo contrario.
La razón de mencionar esto, es que hace poco un grupo de investigadores de la Universidad de Michigan llevó a cabo un estudio sobre la identificación de conexiones VPN basadas en OpenVPN, con lo cual nos demuestran que el uso de VPN’s no asegura que nuestra instancia en la red sea segura.
El método utilizado por los investigadores se llama «VPN Fingerprinting», el cual monitorear el tráfico de tránsito y en el estudio realizado se descubrieron tres métodos efectivos para identificar el protocolo OpenVPN entre otros paquetes de red, los cuales pueden ser utilizados en sistemas de inspección de tráfico para bloquear redes virtuales que usan OpenVPN.
En las pruebas realizadas en la red del proveedor de Internet Merit, que cuenta con más de un millón de usuarios, demostraron que estos métodos podían identificar el 85% de las sesiones OpenVPN con un bajo nivel de falsos positivos. Para llevar a cabo las pruebas, se utilizó un conjunto de herramientas que detectaron el tráfico OpenVPN en tiempo real en modo pasivo y luego verificaron la precisión del resultado mediante una comprobación activa con el servidor. Durante el experimento, el analizador creado por los investigadores manejó un flujo de tráfico con una intensidad de aproximadamente 20 Gbps.
Los métodos de identificación utilizados se basan en la observación de patrones específicos de OpenVPN en los encabezados de los paquetes no cifrados, tamaños de paquetes ACK y respuestas del servidor.
- En el primer caso, se vincula a un patrón en el campo «código de operación» en el encabezado del paquete durante la etapa de negociación de la conexión, que cambia de manera predecible según la configuración de la conexión. La identificación se logra al identificar una secuencia específica de cambios en el código de operación en los primeros paquetes del flujo de datos.
- El segundo método se basa en el tamaño específico de los paquetes ACK utilizados en OpenVPN durante la etapa de negociación de la conexión. La identificación se realiza al reconocer que los paquetes ACK de un tamaño determinado ocurren solo en ciertas partes de la sesión, como al iniciar una conexión OpenVPN donde el primer paquete ACK suele ser el tercer paquete de datos enviado en la sesión.
- El tercer método implica una verificación activa al solicitar un restablecimiento de la conexión, donde el servidor OpenVPN envía un paquete RST específico en respuesta. Es importante destacar que esta verificación no funciona cuando se utiliza el modo «tls-auth», ya que el servidor OpenVPN ignora las solicitudes de clientes no autenticados a través de TLS
Los resultados del estudio mostraron que el analizador pudo identificar con éxito 1.718 de 2.000 conexiones OpenVPN de prueba establecidas por un cliente fraudulento que utilizaba 40 configuraciones OpenVPN típicas diferentes. El método funcionó con éxito para 39 de las 40 configuraciones probadas. Además, durante los ocho días del experimento, se identificaron un total de 3.638 sesiones OpenVPN en el tráfico de tránsito, de las cuales 3.245 sesiones fueron confirmadas como válidas.
Es importante destacar que el método propuesto tiene un límite superior de falsos positivos tres órdenes de magnitud menor que los métodos anteriores basados en el uso de aprendizaje automático. Esto sugiere que los métodos desarrollados por los investigadores de la Universidad de Michigan son más precisos y eficientes en la identificación de conexiones OpenVPN en el tráfico de red.
El rendimiento de los métodos de protección de seguimiento de tráfico OpenVPN en servicios comerciales se evaluó mediante pruebas separadas. De los 41 servicios VPN probados que utilizaban métodos de ocultación del tráfico OpenVPN, se logró identificar el tráfico en 34 casos. Los servicios que no pudieron ser detectados utilizaban capas adicionales además de OpenVPN para ocultar el tráfico, como reenviar el tráfico de OpenVPN a través de un túnel cifrado adicional. La mayoría de los servicios identificados con éxito utilizaban distorsión de tráfico XOR, capas adicionales de ofuscación sin un relleno de tráfico aleatorio adecuado, o la presencia de servicios OpenVPN no ofuscados en el mismo servidor.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.