Vulnerabilidades en sistemas VNC de acceso remoto

El acceso remoto es cómodo y hasta indispensable dependiendo del caso. El inconveniente es que puede ofrecer a los intrusos un punto de entrada a tu infraestructura corporativa, sobre todo si las herramientas de acceso remoto que utilizas son vulnerables.

Vulnerabilidades en VNC

Nuestro ICS CERT estudió varias implementaciones de VNC (Computación Virtual en Red, por sus siglas en inglés). VNC es un sistema de acceso remoto muy utilizado para el soporte técnico, la supervisión de equipos, la enseñanza a distancia, etc. Se ha descubierto que estas implementaciones contienen un total de 37 vulnerabilidades, algunas de ellas desconocidas desde 1999.

Resulta complicado decir una cifra concreta del número de dispositivos que utilizan los sistemas de VNC, pero a juzgar por los datos del motor de búsqueda Shodan, se puede acceder a más de 600.000 servidores de VNC online. Es probable que la cifra real sea mucho más elevada.

Dónde descubrimos las vulnerabilidades

Nuestros expertos analizaron 4 implementaciones comunes de VNC de código abierto:

  • LibVNC: una biblioteca, es decir, un conjunto de snippets de código en cuya base los desarrolladores pueden crear aplicaciones. Por ejemplo, LibVNC se utiliza en sistemas que permiten la conexión remota a máquinas virtuales, así como a dispositivos iOS y Android.
  • TightVNC 1.X: una aplicación recomendada por los proveedores de los sistemas de automatización industrial para conectar una interfaz hombre-máquina (HMI).
  • TurboVNC: una implementación de VNC para el trabajo remoto con objetos de vídeo, gráficos y 3D.
  • Ultra VNC: una variante de VNC diseñada especialmente para Windows, también se utiliza bastante en la producción industrial para conectarse a los HMI.

Se han detectado errores en los cuatro sistemas: uno en TurboVNC, cuatro en TightVNC, diez en LibVNC y hasta 22 en UltraVNC.

Cuáles son las vulnerabilidades y cómo se pueden explotar

Las aplicaciones de VNC consisten en dos partes: un servidor instalado en el ordenador al que tu empleado se conecta en remoto y un cliente que se ejecuta en el dispositivo desde el cual se conecta. Las vulnerabilidades son mucho menos comunes en el lado del servidor, que siempre es algo más sencillo y, por tanto, tiene menos errores. No obstante, nuestros expertos de CERT descubrieron errores en ambas partes de las aplicaciones objeto de la investigación, aunque en muchos casos un ataque en el servidor podría ser imposible sin autorización.

Todos los errores están vinculados a un uso incorrecto de la memoria. Explotar estos errores solo conlleva fallos y denegación de servicio, un resultado relativamente favorable. En los casos más graves, los atacantes pueden conseguir el acceso sin autorización a información en el dispositivo o lanzar malware al sistema de la víctima.

Solucionadas algunas vulnerabilidades, aunque no todas

Nuestros compañeros de CERT informaron sobre los errores a los desarrolladores de las respectivas bibliotecas y aplicaciones. La mayoría ya están solucionados. Pero, por desgracia, hay una excepción: Los creadores de TightVNC ya no admiten la primera versión de su sistema y rechazan parchear las vulnerabilidades que se detectan en él. Esto debería considerarse como una razón de peso para mudarse a otra plataforma de VNC.

Además, como en muchos proyectos de código abierto, el código vulnerable se usa en otros muchos desarrollos y no todos los desarrolladores supervisan las actualizaciones de las bibliotecas a las que piden prestado los snippets para sus creaciones. Estos programas seguirán siendo vulnerables hasta que sus creadores actualicen el código, lo que, por desgracia, podría no llegar a pasar nunca.

Cómo deberían actuar las empresas

La lista de vulnerabilidades con información técnica se puede encontrar en el informe publicado en el sitio web de Kaspersky ICS CERT. Aunque nuestros compañeros se centraron en el uso de VNC en empresas industriales, las amenazas son relevantes para cualquier empresa que utilice esta tecnología.

Para evitar que los ciberdelincuentes exploten estas vulnerabilidades contra ti, te recomendamos que supervises los programas con acceso remoto a tu infraestructura.

  • Comprueba qué dispositivos se pueden conectar en remoto y bloquea las conexiones remotas que no sean necesarias.
  • Localiza todas las aplicaciones de acceso remoto (no solo VNC) y comprueba que sus versiones estén actualizadas. Si tienes dudas sobre su fiabilidad, deja de utilizarlas. Si quieres seguir utilizándolas, asegúrate de actualizarlas a la última versión.
  • Protege tus servidores de VNC con una contraseña fuerte. Esto dificultará el ataque.
  • No te conectes a servidores de VNC que no sean de confianza y que no hayan sido probados.
  • Las empresas industriales deberán utilizar una solución de seguridad especializada para los sistemas de automatización industrial como, por ejemplo, Kaspersky Industrial CyberSecurity.
  • Para proteger tus empresas, utiliza una solución de seguridad robusta. Una muy buena opción es Kaspersky Endpoint Security for Business.