Un miembro del equipo de desarrollo de OpenSSH ha descubierto una vulnerabilidad de corrupción de memoria. Si este fallo de seguridad es explotado, podría permitir la ejecución de código con privilegios de usuario autenticado. Esta vulnerabilidad ocurre en la post-autenticación, cuando usamos el cifrado simétrico AES-GCM al seleccionar el intercambio de claves, afecta tanto en la versión de 128bits como de 256bits de longitud de clave, es decir, AES128-GCM y AES256-GCM. Podéis visitar nuestro tutorial sobre programas SSH Windows.
La mayoría de sistemas operativos basados en Linux y Unix utilizan OpenSSH, es muy usado para servidores y también para firmwares de routers, aunque normalmente, estos últimos usan Dropbear que consume menos recursos. Las versiones afectadas son: OpenSSH 6.2 y OpenSSH 6.3 si están compiladas con OpenSSL que soporte AES-GCM.
¿Cómo solucionar este fallo de seguridad?
Tenemos tres métodos para solucionar este fallo de seguridad:
- Actualizar a la versión OpenSSH 6.4 que soluciona este problema de seguridad.
- Deshabilitar en la configuración del servidor AES-GCM.
- Aplicar un parche en las versiones OpenSSH 6.2 y OpenSSH 6.3
¿Cómo sé qué versión de OpenSSH estoy utilizando?
Basta con iniciar una conexión vía SSH a nuestro servidor y teclear el siguiente comando:
sshd -V
Dará un error ya que no existe tal argumento, pero en la parte superior aparecerá la versión de OpenSSH que estamos utilizando:
servidor: ~ # sshd -V
sshd: illegal option -- V
OpenSSH_6.2p2-hpn13v14 FreeBSD-openssh-portable-6.2.p2_3,1, OpenSSL 0.9.8y 5 Feb 2013
¿Cómo deshabilito la configuración con AES-GCM en el servidor?
En muchas ocasiones, la actualización de OpenSSH no depende de nosotros, sino de otros desarrolladores de distribuciones Linux o Unix. Mientras estos desarrolladores compilan la última versión para sus sistemas, podemos deshabilitar el uso de AES-GCM que es el que provoca este fallo.
En el fichero de configuración debemos poner la siguiente línea:
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc
La función de esta línea de código es habilitar los cifrados que se muestran, si por ejemplo sólo queremos usar AES256-CBC únicamente deberemos poner AES256-CBC después de «Ciphers». Podéis utilizar cualquier cliente SSH como Muon Snowflake para conectaros.
¿Qué parche tengo que aplicar en las versiones comprometidas?
En la página web oficial de OpenSSH se muestran todos los detalles de esta vulnerabilidad y el código monitor.wrap.c que debemos usar para solucionarlo.