Grave vulnerabilidad en RealVNC

SeguridadVirus

Steve Wiseman ha descubierto, casi por casualidad, una importante vulnerabilidad en VNC; un software de administración remota muy usado en distintos sistemas operativos que permite interactuar con el escritorio de cualquier sistema.

El fallo puede hacer que se eluda de forma sencilla la autenticación y acceder al equipo con el servidor instalado sin necesidad de conocer la contraseña.

VNC es un software propiedad de la británica RealVNC. Se compone de un servidor y un cliente (viewer) que permite interactuar con el escritorio de entornos Windows, Linux, Solaris y HP-UX desde cualquier plataforma a su vez. Es un software tremendamente extendido (más de 100 millones de descargas desde 1998) entre los administradores de red, debido a su sencillez, potencia y sobre todo, el hecho de estar licenciado bajo GPL.

VNC suele abrir un puerto al exterior para que remotamente el administrador pueda interactuar con cualquier sistema como si estuviese sentado frente el escritorio de un ordenador que puede encontrarse físicamente a miles de kilómetros de distancia. El software ha sido incluido en distintas distribuciones de Linux y forma parte de otros paquetes de software. Para los sistemas que ofrezcan abiertamente el servicio hacia internet, el hecho de que esté protegido por contraseña pierde el sentido ante este fallo y queda virtualmente a disposición de quien conozca los detalles de la vulnerabilidad. Debido a la importancia del descubrimiento, Wiseman casi no podía creerlo. Mientras programaba un cliente propio para conectarse a servidores VNC, se dio cuenta de que podía acceder al servidor sin conocer la contraseña. Trabajaba con VNC Free Edition 4.1.1 bajo Windows y, después de muchas pruebas para asegurase de que lo que tenía ante sus ojos suponía un grave problema, no pudo más que concluir que realmente estaba ante una gravísima vulnerabilidad.

Tras unos momentos de pánico, en los que Wiseman descargó los “hermanos” de VNC TightVNC y UltraVNC y comprobó que no eran vulnerables, se puso en contacto con RealVNC y al poco tiempo hicieron disponible la versión no vulnerable 4.1.2.

El fallo se debe a un error de diseño en el proceso de autenticación, mientras el cliente y el servidor llegan a un acuerdo sobre el tipo de autenticación. Uno de estos tipos de autenticación disponibles desde el servidor es precisamente la no autenticación, donde no se pedirá contraseña al cliente. Una implementación incorrecta permite que sea el cliente el que elija el tipo, independientemente del que tenga configurado el propio servidor, de entre un array que éste hace disponible durante la negociación. De esta forma, sólo es necesario cambiar un poco la información que el cliente envía, y será el propio cliente el que tenga la posibilidad de elegir “no autenticación” para acceder al servidor, aunque se encuentre en realidad protegido por contraseña.

Aunque no se han dado detalles técnicos sobre el problema, según se publica en listas de seguridad, es trivial reproducir el fallo, y cuestión de tiempo que aparezca un cómodo exploit capaz de acceder a cualquier servidor que ejecute este popular programa.

Según estas listas, se mira con cierta sospecha la actitud de la compañía VNC ante el problema. Si bien actuaron rápida y efectivamente ante la vulnerabilidad (el mismo 12 de mayo que Wiseman contactó con ellos publicaron una actualización), bien sea por la importancia del asunto o lo simple del error, han decidido optar por el secretismo. Por ejemplo, Wiseman alojó en su blog una prueba de concepto sin detalles para comprobar si se era vulnerable, pero tras pocas horas quedó permanentemente deshabilitada. En la lista “full disclosure” (dedicada a la total revelación de detalles de seguridad ) James Evans afirma que aunque el software está licenciado bajo GPL y por ello es obligatorio hacer público el código fuente junto con el programa compilado, en esta ocasión RealVNC no lo ha hecho. También habla de que sus mensajes a la lista del programa, en los que comentaba el asunto y pedía el código, fueron borrados de los servidores tras ser enviados aunque en estos momentos parecen estar disponibles. En la página oficial no de dan demasiados detalles sobre el asunto.

En cualquier caso, es más que recomendable para todos los usuarios de este programa actualizar a RealVNC Free Edition 4.1.2, Personal Edition 4.2.3, o Enterprise Edition 4.2.3 desde http://www.realvnc.com/download.html