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
ssantos@hispasec.com
Más información:
RealVNC 4.1.1 Remote Compromise
http://lists.grok.org.uk/pipermail/full-disclosure/2006-May/046039.html
Security flaw in RealVNC 4.1.1
http://www.intelliadmin.com/blog/2006/05/security-flaw-in-realvnc-411.html
Deja una respuesta