Fallo en OpenSSH llevaba presente 19 años (Parchea!)
Los investigadores en seguridad de Qualys han descubierto una vulnerabilidad que llevan presente 19 años en OpenSSH, la implementación más conocida del protocolo SSH y cuyos responsables son los desarrolladores del sistema operativo OpenBSD (aunque también es muy utilizado en Linux, Mac y más recientemente ha llegado a Windows).
Entrando en detalles, se trata de un fallo en la enumeración del nombre de usuario (CVE-2018-15473) que permite a un atacante remoto adivinar nombres de usuario registrados en un servidor OpenSSH (un cliente accede al sistema del servidor con los privilegios determinados por la última parte). El escenario de ataque se basa en que un actor malicioso intenta autenticarse en un endpoint de OpenSSH a través de una solicitud de autenticación mal formada, que puede estar compuesta de un paquete truncado.
Luego, el servidor OpenSSH vulnerable puede reaccionar de dos maneras diferentes. En caso de que el nombre de usuario en la autenticación mal formada no exista, el servidor responderá con el típico error de fallo en la autenticación, sin embargo, en caso de estar ya registrado simplemente se cerrará la conexión sin dar ninguna respuesta. Este comportamiento de OpenSSH permite adivinar los nombres de usuario válidos para acceder de forma remota a un sistema, abriendo así la puerta a ataques de fuerza bruta para adivinar la contraseña. Siempre y cuando el usuario sea válido y la petición tenga un formato no válido, sabremos por el cierre de la conexión que el usuario existe en el sistema. Esto nos permite obtener un método de prueba y error para enumerar los posibles usuarios de un sistema.
Afortunadamente, el fallo se encuentra en estos momentos totalmente parcheado en las versiones estables de OpenSSH 1:6.7p1-1 y 1:7.7p1-1. Los que quieran comprobar si su servidor es vulnerable pueden poner en práctica esta Prueba de Concepto y los que no puedan aplicar el parche por diversas razones tienen como alternativa la aplicación de mitigaciones como inhabilitar la autenticación a través de SSH y reemplazarlo por algún medio alternativo para inicia sesión, además de desactivar el método de "autenticación de clave pública" (que es donde se localiza el código vulnerable).
OpenSSH es una de las tecnologías más utilizadas del mundo cuando se trata de acceso remoto, por lo que se encuentra instalado en millones de servidores y dispositivos IoT. Esto quiere decir que una gran cantidad de dispositivos se han visto expuestos a un posible ataque masivo con terribles consecuencias.
Otra aplicación que también ofrecen la posibilidad de enumerar usuarios.
Hasta ahora, OpenSSH ha tenido otras vulnerabilidades relacionadas con este tipo de ataques, del tipo timming, donde se explota una diferencia en tiempo o cantidad de datos en la respuesta entre un usuario válido u otro que no exista. Posibilitando, por lo tanto, un método para derivar la existencia. Por ejemplo, esta, donde si un usuario existía en el sistema el servidor SSH respondía con dos segundos aproximados de retraso frente a la respuesta inmediata si el usuario no existía.
Se recomienda actualizar a OpenSSH 7.7 o superior.
Fuente: Bleeping Computer
Entrando en detalles, se trata de un fallo en la enumeración del nombre de usuario (CVE-2018-15473) que permite a un atacante remoto adivinar nombres de usuario registrados en un servidor OpenSSH (un cliente accede al sistema del servidor con los privilegios determinados por la última parte). El escenario de ataque se basa en que un actor malicioso intenta autenticarse en un endpoint de OpenSSH a través de una solicitud de autenticación mal formada, que puede estar compuesta de un paquete truncado.
Luego, el servidor OpenSSH vulnerable puede reaccionar de dos maneras diferentes. En caso de que el nombre de usuario en la autenticación mal formada no exista, el servidor responderá con el típico error de fallo en la autenticación, sin embargo, en caso de estar ya registrado simplemente se cerrará la conexión sin dar ninguna respuesta. Este comportamiento de OpenSSH permite adivinar los nombres de usuario válidos para acceder de forma remota a un sistema, abriendo así la puerta a ataques de fuerza bruta para adivinar la contraseña. Siempre y cuando el usuario sea válido y la petición tenga un formato no válido, sabremos por el cierre de la conexión que el usuario existe en el sistema. Esto nos permite obtener un método de prueba y error para enumerar los posibles usuarios de un sistema.
Afortunadamente, el fallo se encuentra en estos momentos totalmente parcheado en las versiones estables de OpenSSH 1:6.7p1-1 y 1:7.7p1-1. Los que quieran comprobar si su servidor es vulnerable pueden poner en práctica esta Prueba de Concepto y los que no puedan aplicar el parche por diversas razones tienen como alternativa la aplicación de mitigaciones como inhabilitar la autenticación a través de SSH y reemplazarlo por algún medio alternativo para inicia sesión, además de desactivar el método de "autenticación de clave pública" (que es donde se localiza el código vulnerable).
Otra aplicación que también ofrecen la posibilidad de enumerar usuarios.
Hasta ahora, OpenSSH ha tenido otras vulnerabilidades relacionadas con este tipo de ataques, del tipo timming, donde se explota una diferencia en tiempo o cantidad de datos en la respuesta entre un usuario válido u otro que no exista. Posibilitando, por lo tanto, un método para derivar la existencia. Por ejemplo, esta, donde si un usuario existía en el sistema el servidor SSH respondía con dos segundos aproximados de retraso frente a la respuesta inmediata si el usuario no existía.
Se recomienda actualizar a OpenSSH 7.7 o superior.
Fuente: Bleeping Computer
0 Comments:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!