Falla del cliente SSH de PuTTY permite recuperar claves criptográficas privadas
- 29/11/2024
- 134

PuTTY es un popular emulador de terminal de código abierto, consola serial y aplicación de transferencia de archivos de red que admite SSH (Secure Shell), Telnet, SCP (Secure Copy Protocol) y SFTP (SSH File Transfer Protocol). Los administradores de sistemas y desarrolladores utilizan predominantemente el software para acceder y administrar remotamente servidores y otros dispositivos en red a través de SSH desde un cliente basado en Windows.
Una vulnerabilidad identificada como CVE-2024-31497 en PuTTY para las versiones 0.68 a 0.80 podría permitir a atacantes con acceso a 60 firmas criptográficas recuperar la clave privada utilizada para su generación. Esta vulnerabilidad fue descubierta por Fabian Bäumer y Marcus Brinkmann de la Universidad del Ruhr en Bochum y es causada por la forma en que PuTTY generan los nonces ECDSA (números criptográficos únicos temporales) para la curva NIST P-521 utilizada para la autenticación SSH.
Existe un sesgo en el uso que hace PuTYY en la generación determinista de estos números para compensar la falta de un generador de números aleatorios criptográficos robusto en versiones específicas de Windows.
"PuTTY funcionaba creando un hash SHA-512 y luego reduciéndolo mod q, donde q es el orden del grupo utilizado en el sistema DSA. Respecto a los números enteros DSA (Sobre el que se desarrolló originalmente PuTTY), q es de unos 160 bits; para DSA de curva elíptica (que llegó después), tiene aproximadamente la misma cantidad de bits que el módulo de la curva, es decir, 256 o 384 o 521 bits para las curvas NIST".
"En todos esos casos, excepto P521, el sesgo introducido al reducir un número de 512 bits mod q es insignificante. Pero en el caso de P521, donde q tiene 521 bits (es decir, más de 512), reducir un número de 512 bits mod q no tiene ningún efecto: se obtiene un valor de k cuyos 9 bits superiores son siempre cero".
Aviso de seguridad de PuTTY.
La principal repercusión es la recuperación de la clave privada, que permite el acceso no autorizado a servidores SSH o firmar commits como desarrollador, incluso lograr ataques a la cadena de suministro en proyectos de software afectados.
Brinkmann explicó en X que los atacantes requieren al menos 58 firmas para calcular la clave privada de un objetivo y las pueden adquirir ya sea recopilándolas de los inicios de sesión en un servidor SSH que controlan o que está comprometido, o de commits Git firmados. Esto es particularmente preocupante ya que las firmas de Git pueden ser de acceso público, por ejemplo, si la confirmación se envía a un repositorio público en GitHub.
Falla corregida, otro software afectado
Los desarrolladores corrigieron la vulnerabilidad en la versión 0.81 de PuTTY, que abandona el método de generación anterior y cambia a la técnica RFC 6979 para todas las claves DSA y ECDSA. Sin embargo, se advierte que cualquier clave privada P521 generada con la versión vulnerable de la herramienta debe considerarse insegura y debe reemplazarse por claves nuevas y seguras.
Los siguientes softwares están afectados, ya que, utilizan la versión vulnerable de PuTTY:
- FileZilla 3.24.1 – 3.66.5 (corregido en 3.67.0)
- WinSCP 5.9.5 – 6.3.2 (corregido en 6.3.3)
- TortoiseGit 2.4.0.2 – 2.15.0 (corregido en 2.15.0.1)
- TortoiseSVN 1.10.0 – 1.14.6 (es posible mitigarlo configurando TortoiseSVN para que utilice Plink desde la última versión de PuTTY 0.81)
Es probable que haya más herramientas de software afectadas por CVE-2024-31497, según la versión de PuTTY que incorporen. Por lo tanto, se recomienda a los usuarios que revisen sus herramientas y tomen medidas preventivas según sea necesario.
Referencia
Bill Toulas. Bleeping Computer. Abril 16, 2024. Disponible en: https://www.bleepingcomputer.com/news/security/putty-ssh-client-flaw-allows-recovery-of-cryptographic-private-keys/