Tras seis meses de intenso desarrollo, ha salido a la luz la versión 10.3 de OpenSSH, la implementación líder de código abierto para los protocolos SSH 2.0 y SFTP.
Esta actualización no solo introduce un puñado de nuevas características para mejorar la gestión de conexiones y agentes, sino que despliega parches de seguridad para cerrar brechas que permitían la ejecución de código arbitrario bajo configuraciones específicas.
Parches de Seguridad: Prevención de inyección y certificados
El equipo de desarrollo ha priorizado la corrección de vulnerabilidades que, aunque dependían de configuraciones muy concretas, presentaban un riesgo inaceptable para la integridad del servidor.
El fallo más grave solucionado residía en la validación tardía de los caracteres especiales introducidos por un usuario en la línea de comandos de la utilidad ssh. Si un sistema estaba configurado para utilizar la sustitución %u en directivas como Match exec dentro del archivo ssh_config, un atacante que pudiera controlar el nombre de usuario de entrada (por ejemplo, inyectando meta-caracteres) podía forzar al sistema a expandir esos comandos y ejecutar rutinas de shell arbitrarias. La validación ahora se realiza antes de aplicar las sustituciones en el archivo de configuración.
En el lado del servidor (sshd), se ha solucionado un fallo relacionado con la autenticación por certificados. Anteriormente, si la opción authorized_keys principals=»» se usaba en combinación con un certificado que tenía la lista de principals (nombres) vacía, el sistema trataba ese certificado vacío como un comodín válido para cualquier usuario. Esto significaba que si una Autoridad de Certificación (CA) emitía por error un certificado en blanco, un atacante podía utilizarlo para iniciar sesión como cualquier usuario del sistema. A partir de ahora, un certificado con nombres vacíos es sistemáticamente rechazado.
Además, se corrigieron problemas menores, como un error en el cliente scp (heredado del anticuado programa rcp de Berkeley) que no borraba los permisos setuid/setgid al descargar archivos como root usando el modo heredado (-O), y un fallo en sshd que aceptaba cualquier algoritmo ECDSA si tan solo uno de ellos estaba listado en las directivas de claves aceptadas.
Novedades: Consulta de agentes, información de conexión y penalizaciones
Dejando a un lado la seguridad, OpenSSH 10.3 amplía la utilidad de sus herramientas diarias con nuevas opciones de inspección y control de red.
Para facilitar la interacción con los agentes SSH (ssh-agent), se ha implementado la extensión query definida en la especificación IETF. Esto permite a la utilidad ssh-add (mediante la nueva opción -Q) interrogar directamente al agente para descubrir qué extensiones de protocolo soporta, mejorando la compatibilidad y negociación entre el cliente y el agente de claves.
La inspección de túneles y conexiones en vivo tambien recibio mejoras. Los usuarios ahora pueden utilizar la secuencia de escape ~I durante una sesión activa, o ejecutar el comando de multiplexación ssh -O conninfo usuario@host, para obtener información detallada sobre la conexión actual. Igualmente, el comando ssh -O channels desplegará un informe completo sobre qué canales específicos están abiertos en ese momento.
A nivel de administración de servidores, sshd refina sus defensas contra la fuerza bruta y el escaneo ruidoso. La directiva PerSourcePenalties ahora incluye la opción invaliduser. Si un atacante intenta iniciar sesión con un usuario que no existe en el sistema, sshd aplicará automáticamente un retraso (por defecto de 5 segundos) antes de responder, ralentizando los ataques de diccionarios masivos. Como mejora adicional, estas penalizaciones de tiempo ahora soportan valores decimales, permitiendo configurar retrasos inferiores a un segundo si así se requiere.
Finalmente, la seguridad criptográfica se fortalece: la utilidad ssh-keygen ha ganado la capacidad de escribir y exportar claves ED25519 en el popular formato PKCS8, y se ha añadido soporte general para el esquema de firma digital ed25519 a través de la biblioteca libcrypto.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
¿Como instalar OpenSSH en Linux?
Para quienes estén interesados en poder instalar esta nueva versión de OpenSSH en sus sistemas, de momento podrán hacerlo descargando el código fuente de este y realizando la compilación en sus equipos.
Esto es debido a que la nueva versión aún no se ha incluido dentro de los repositorios de las principales distribuciones de Linux. Para obtener el código fuente, puedes hacer desde el siguiente enlace.
Hecha la descarga, ahora vamos a descomprimir el paquete con el siguiente comando:
tar -xvf openssh-10.3.tar.gz
Entramos al directorio creado:
cd openssh-10.3
Y podremos realizar la compilación con los siguientes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh
make
make install
Continúar leyendo...