Secure SHell o SSH es un programa que permite la conexión a equipos UNIX de forma segura. OpenSSH es una versión libre del paquete de herramientas SSH, que cifra todo el tráfico vía red (incluidas las contraseñas), haciendo seguras las comunicaciones.
Una vulnerabilidad afecta a todas las versiones del cliente OpenSSH lanzado en las últimas dos décadas, desde que la aplicación fue lanzada en 1999.
Se trata de un bug en la enumeración de los nombres de usuario, que permite que un atacante remoto pueda adivinar los nombres de registrados en un servidor.
La vulnerabilidad se produce en el proceso de autenticación, en concreto en la función userauth_pubkey. Esta función, además de realizar la validación de la autenticación, comprueba que el formato de la misma no sea erróneo. El problema se produce, ya que antes de verificar el formato, esta función comprueba otros valores, como es la existencia del usuario. Si el mismo es incorrecto el servidor SSH responde con un mensaje SSH2_MSG_USERAUTH_FAILURE sin llegar a comprobar la validez del formato, pero si el usuario existe y el mensaje de autenticación no tiene el formato correcto, entonces el servidor cierra la conexión.
Tal y como han explicado los investigadores, esto permite que un atacante intente autenticarse en un punto final OpenSSH a través de una solicitud de autenticación mal formada. Esto haría que el servidor reaccione de dos maneras diferentes, dependiendo de si el nombre de usuario con el que se intenta identificar existe o no, o contestando con un fallo de identificación o cerrando su conexión sin respuesta.
Por lo tanto estamos ante un bug que permite que un atacante pueda verificar que un nombre de usuario concreto existe en un servidor. Y una vez se haya averiguado este nombre de usuario, ya se tiene el primer elemento para poder hackear una cuenta realizando después ataques de fuerza bruta para intentar obtener la contraseña.
Otro de los problemas está en la gran popularidad de una herramienta ampliamente utilizada en servidores de todo el mundo y en tecnologías como equipos IoT. Por ello, la vulnerabilidad podría utilizarse para atacar objetivos de gran valor o para realizar exploraciones en masa.
A este bug se le ha identificado con el nombre CVE-2018-15473, y esta semana ya ha sido liberado un parche para la versión estable de OpenSHH, así como algunas de las inestables. Estos parches también han sido distribuidos en Debian y otras distribuciones GNU/Linux.
Sin embargo, teniendo en cuenta la gran cantidad de aplicaciones de software y hardware que delegan en esta tecnología, es posible que todavía se tarden varios meses (incluso años) en parchear todos los dispositivos vulnerables. En cualquier caso y pese al inconveniente de tratarse de un bug que lleva casi dos décadas existiendo, su descubrimiento muestra otro de los beneficios del código abierto, que cualquiera puede usarlo para buscar problemas y ayudar a solucionarlos.
Comentarios
Publicar un comentario