Comprometer la seguridad de las claves criptográficas a través de PuTTY con CVE-2024-31497

CVE-2024-31497 ha surgido como una falla de seguridad crítica que afecta a PuTTY , un cliente SSH y Telnet ampliamente utilizado, desde las versiones 0.68 a 0.80, y ahora se ha confirmado que todas tienen una vulnerabilidad grave que compromete la seguridad de las claves criptográficas. Esta vulnerabilidad gira en torno a la generación de nonces ECDSA sesgados, que podrían permitir a un atacante recuperar las claves secretas NIST P-521 utilizadas por los clientes.

La vulnerabilidad explicada

El núcleo del problema radica en cómo se generan los nonces ECDSA (algoritmo de firma digital de curva elíptica) dentro de estas versiones de PuTTY. Se descubrió que los nonces, que deberían ser aleatorios para garantizar la seguridad del proceso criptográfico, estaban “muy sesgados”. Este sesgo en el proceso de generación nonce significa que no proporciona la aleatoriedad criptográfica requerida, exponiendo así las claves privadas a una posible recuperación por parte de entidades maliciosas.

El objetivo específico de esta vulnerabilidad es la curva elíptica NIST P-521, un estándar que se usa comúnmente para proteger comunicaciones confidenciales. La falla se detalló en varios avisos de seguridad y bases de datos, que resaltaron el riesgo de que los atacantes pudieran aprovechar esta vulnerabilidad para obtener acceso no autorizado a comunicaciones cifradas.

EXPLOTACIÓN DE CVE-2024-31497: UNA INMERSIÓN PROFUNDA EN LA VULNERABILIDAD PUTTY

CVE-2024-31497 ha identificado una falla de seguridad crítica en las versiones 0.68 a 0.80 de PuTTY, un popular cliente SSH y Telnet, dirigido específicamente a su proceso de generación de nonce ECDSA. Esta vulnerabilidad expone la posibilidad de que los atacantes recuperen las claves secretas NIST P-521, lo que plantea graves riesgos para las comunicaciones cifradas.

El mecanismo de la hazaña

La vulnerabilidad surge de la forma en que PuTTY genera nonces ECDSA. En los protocolos criptográficos, los nonces (números utilizados una vez) son cruciales para garantizar la seguridad del proceso de cifrado. Idealmente, estos deberían ser impredecibles y generados aleatoriamente. Sin embargo, en las versiones afectadas de PuTTY, se descubrió que los nonces ECDSA estaban “muy sesgados”, lo que significa que no ofrecen la aleatoriedad necesaria para cifrar datos de forma segura.

Este sesgo en la generación del nonce hace teóricamente posible que un atacante con suficientes recursos y acceso a comunicaciones cifradas utilice métodos estadísticos para inferir la clave privada asociada con un conjunto particular de comunicaciones. Específicamente, el sesgo podría permitir a los atacantes realizar un ataque de canal lateral donde podrían deducir las claves privadas después de observar una gran cantidad de operaciones criptográficas.

Para aprovechar esta vulnerabilidad, un atacante necesitaría interceptar las operaciones criptográficas realizadas por una víctima utilizando las versiones comprometidas de PuTTY. Luego, el atacante podría aplicar técnicas criptoanalíticas avanzadas para explotar los valores nonce sesgados. Esto implicaría cálculos matemáticos complejos y posiblemente importantes recursos computacionales para “adivinar” efectivamente la clave privada a través de patrones observados en los nonces sesgados.

EJEMPLO DE EXPLOTACIÓN DE CVE-2024-31497: ESCENARIO DE ATAQUE SIMULADO

Para ilustrar cómo se podría explotar CVE-2024-31497, consideremos un escenario de ataque hipotético:

Antecedentes del escenario:

Alice es una administradora que usa PuTTY versión 0.70 para administrar servidores remotos para su organización. Se conecta a estos servidores mediante un par de claves SSH, donde la clave privada está protegida en su máquina local.

Paso 1: recopilación de información

Un atacante, Bob, descubre que la organización de Alice todavía utiliza una versión vulnerable de PuTTY. Decide apuntar a ella para obtener acceso no autorizado a los servidores seguros. Bob comienza interceptando las sesiones SSH de Alice en el servidor. Por lo general, esto se hace mediante un rastreador de red en una red comprometida o mediante un ataque de intermediario.

Paso 2: interceptar operaciones criptográficas

Durante cada una de las sesiones SSH de Alice, Bob captura los paquetes de datos cifrados y se centra en extraer los valores nonce ECDSA utilizados en las operaciones criptográficas. Dado que estos datos están sesgados (debido a la vulnerabilidad CVE-2024-31497), no varían tan aleatoriamente como deberían.

Paso 3: explotar el sesgo

Bob utiliza un script desarrollado a medida para analizar los nonces capturados. El script emplea algoritmos estadísticos para detectar patrones e irregularidades en los nonces que deberían ser aleatorios. Estos patrones indican la naturaleza sesgada de la generación del nonce en PuTTY, lo que hace que la clave privada sea más predecible.

Paso 4: descifrar la clave privada

Utilizando los patrones observados, Bob aplica una serie de cálculos matemáticos avanzados diseñados para aplicar ingeniería inversa a la clave privada de Alice. Este tipo de criptoanálisis explota las debilidades inherentes a los nonces sesgados, reduciendo gradualmente los posibles valores de la clave privada.

Paso 5: obtener acceso no autorizado

Una vez que Bob deduce con éxito la clave privada de Alice, la usa para autenticarse en el servidor SSH como si fuera Alice. Ahora puede ejecutar comandos, acceder a información confidencial y potencialmente implantar más malware para mantener el acceso o afectar otras partes de la red.

MECANISMO DE EXPLOTACIÓN DE FIRMA DIGITAL EN SSH Y GIT

  1. Creación y verificación de firma digital:
    • Creación de firma digital: una firma digital se crea utilizando la clave privada de un usuario. Este proceso involucra los datos de firma de la clave privada (en este caso, una confirmación de Git), que efectivamente “sella” los datos con prueba de que fueron firmados por el titular de la clave privada.
    • Verificación de firma digital: la clave pública correspondiente, que otros conocen, se puede utilizar para verificar que la firma se realizó mediante la clave privada coincidente sin exponer la clave privada. Este proceso confirma la identidad del usuario y garantiza la integridad y autenticidad de los datos firmados.

EXPLOTACIÓN EXPLICADA

  1. Recogida de firmas para explotación:
    • A través de registros del servidor SSH: si un atacante controla o compromete un servidor SSH, puede recopilar las firmas digitales generadas durante los inicios de sesión de los usuarios. Estas firmas, cuando se crean utilizando métodos criptográficos débiles o comprometidos, se pueden analizar para revelar patrones o debilidades.
    • A través de confirmaciones de Git firmadas: un enfoque más práctico, como se mencionó, implica recopilar firmas de confirmaciones de Git firmadas. Si Git está configurado para usar claves SSH para firmar confirmaciones y estas confirmaciones se envían a un repositorio público (como GitHub), cualquiera puede acceder fácilmente a las firmas.
  2. Explotación de vulnerabilidades en la generación de firmas:
    • En el contexto de PuTTY y Pageant, si existe una vulnerabilidad en la forma en que estas herramientas generan firmas (como el uso de nonces sesgados como en CVE-2024-31497), un atacante puede explotar esto para deducir la clave privada utilizada para firmar.
    • Cálculo de la clave privada: según la información proporcionada, los atacantes pueden necesitar alrededor de 58 firmas para calcular con precisión la clave privada de un objetivo. Es probable que este cálculo se base en la capacidad de explotar fallas en el proceso de generación nonce durante la creación de firmas.

CASO DE USO ESPECÍFICO: PUTTY Y PAGEANT CON GIT

  1. PuTTY y configuración del concurso para Git:
    • Configuración: los usuarios pueden configurar Git para usar Pageant como agente SSH, donde Pageant administra sus claves SSH. Al realizar confirmaciones de Git, estas confirmaciones se firman utilizando la clave SSH proporcionada por Pageant.
    • Riesgo de vulnerabilidad: si Pageant utiliza una versión de PuTTY afectada por CVE-2024-31497, las firmas que genera para las confirmaciones de Git podrían ser vulnerables a la explotación, lo que permitiría a los atacantes recuperar la clave privada.

Implicaciones de la hazaña

La recuperación de claves secretas NIST P-521 a través de este exploit podría permitir a partes no autorizadas descifrar información confidencial, hacerse pasar por usuarios legítimos o realizar una variedad de otras actividades maliciosas. Dado el amplio uso de PuTTY en la gestión de comunicaciones seguras para infraestructuras críticas, esta vulnerabilidad podría tener implicaciones generalizadas y afectar potencialmente a una amplia gama de sectores, incluidos el gobierno, las finanzas y la atención médica.

RESPUESTAS Y SOLUCIONES DE SEGURIDAD

CVE-2024-31497 afecta específicamente a las versiones del software PuTTY 0.68 a 0.80. La vulnerabilidad está ligada a la implementación de la generación nonce ECDSA dentro de estas versiones específicas de PuTTY. Como tal, otros productos de software no se ven directamente afectados por este CVE a menos que de alguna manera incorporen el mismo código defectuoso o mecanismos similares de generación nonce que se utilizaron en PuTTY.

Sin embargo, aquí hay una perspectiva más amplia sobre otros tipos de software que podrían verse afectados por vulnerabilidades similares:

  1. Clientes SSH:
    • Otros clientes SSH también podrían sufrir vulnerabilidades similares si utilizan métodos de generación de nonce ECDSA defectuosos o sesgados. Los usuarios deben asegurarse de utilizar versiones actualizadas y aplicar parches con regularidad.
  2. Bibliotecas criptográficas:
    • Las bibliotecas que implementan ECDSA y otros algoritmos criptográficos podrían ser vulnerables si tienen problemas similares con la generación nonce. Los ejemplos incluyen OpenSSL, Libgcrypt y otros que previamente han tenido vulnerabilidades relacionadas con el manejo de nonce criptográfico.
  3. Software VPN:
    • Las VPN que utilizan implementaciones criptográficas personalizadas u obsoletas pueden ser vulnerables a problemas similares si no utilizan métodos seguros y aleatorios de generación de nonce en sus protocolos criptográficos.
  4. Aplicaciones de comunicación segura:
    • Las aplicaciones que facilitan la transmisión segura de mensajes y datos y que dependen de ECDSA para el cifrado podrían quedar expuestas si su generación nonce es sesgada o predecible.
  5. Sistemas de Transacciones Financieras:
    • Los sistemas que manejan transacciones financieras y de comercio electrónico que utilizan ECDSA para la firma de transacciones podrían estar en riesgo si heredan o no implementan adecuadamente prácticas seguras de generación nonce.

Mejores prácticas para la prevención:

  • Actualizaciones y parches periódicos: es fundamental actualizar periódicamente todo el software a la última versión. Esto no sólo se aplica a PuTTY sino a todo el software que involucra operaciones criptográficas.
  • Auditorías de seguridad: realice periódicamente auditorías de seguridad de las prácticas e implementaciones criptográficas utilizadas dentro de la pila de software de su organización.
  • Escaneo de vulnerabilidades: utilice escáneres de vulnerabilidades y herramientas de pruebas de penetración para identificar y mitigar los riesgos asociados con las implementaciones criptográficas.

Al estar atentos a las actualizaciones relacionadas con las prácticas criptográficas e implementar medidas de seguridad sólidas, las organizaciones pueden protegerse contra vulnerabilidades similares a CVE-2024-31497 y proteger la integridad y privacidad de sus datos.