AMD-SEV

Los desarrolladores del equipo de Google Cloud han identificado una vulnerabilidad (CVE-2019-9836) en la implementación de la tecnología AMD SEV (virtualización encriptada segura), que puede comprometer los datos protegidos con esta tecnología.

AMD SEV a nivel de hardware proporciona un cifrado de memoria transparente de las máquinas virtuales, en el que solo el sistema huésped actual tiene acceso a los datos descifrados, mientras que el resto de las máquinas virtuales y el hipervisor obtienen un conjunto de datos cifrados cuando acceden a esta memoria.

El problema identificado permite restaurar completamente el contenido de la clave privada PDH que se procesa a nivel de un procesador PSP (procesador de seguridad AMD) protegido individual que no está disponible para el sistema operativo principal.

Al tener la clave PDH, el atacante puede restaurar la clave de sesión y la secuencia secreta especificada al crear la máquina virtual y obtener acceso a los datos cifrados.

La vulnerabilidad se debe a fallas en la implementación de curvas elípticas (ECC) utilizadas para el cifrado, que permiten un ataque para restaurar los parámetros de la curva.

Durante la ejecución del comando de inicio de la máquina virtual protegida, el atacante puede enviar parámetros de curva que no coincidan con los parámetros recomendados por el NIST, lo que llevará al uso de valores de puntos de orden bajo en operaciones de multiplicación con datos de clave privada.

Se encontró que la implementación de la curva elíptica (ECC) de SEV era vulnerable a un ataque de curva inválida. En el comando de inicio de inicio, un atacante puede enviar

Los puntos ECC de orden pequeño no están en las curvas NIST oficiales, y forzan el SEV firmware para multiplicar un pequeño punto de pedido por el DH privado del firmware escalar.

Al recolectar suficientes residuos modulares, un atacante puede recuperar el completo PDH clave privada. Con la PDH, un atacante puede recuperar la clave de sesión y el secreto de lanzamiento de la máquina virtual. Esto rompe las garantías de confidencialidad ofrecidas por SEV.

La seguridad del protocolo ECDH depende directamente del orden del punto de inicio generado de la curva, cuyo logaritmo discreto es una tarea muy compleja.

En uno de los pasos para inicializar el entorno AMD SEV, los parámetros obtenidos del usuario se utilizan en los cálculos con una clave privada.

En esencia, se realiza la operación de multiplicar dos puntos, uno de los cuales corresponde a la clave privada.

Si el segundo punto se refiere a números primos de orden bajo, entonces el atacante puede determinar los parámetros del primer punto (los bits del módulo utilizado en la operación de módulo de exponenciación) al enumerar todos los valores posibles. Los fragmentos seleccionados de números primos se pueden combinar para determinar la clave privada utilizando el teorema chino sobre los residuos.

Un ataque de curva no válido es donde la multiplicación de puntos ECDH se realiza en una curva diferente – diferentes parámetros (a, b). Esto se hace posible en la función de suma de puntos de Weierstrass corta ya que el parámetro “b” no es usado.

En esta curva, el punto tiene un pequeño orden primario. Intentando todos los valores posibles para el punto de orden pequeño, un atacante puede recuperar los bits escalares privados (modulo el orden).

Las plataformas de servidor EPYC de AMD que usan el firmware SEV hasta la versión 0.17 compilación 11 son un problema.

AMD ya ha publicado una actualización de firmware, que ha agregado un bloqueo en el uso de puntos que no coinciden con la curva NIST.

Al mismo tiempo, los certificados previamente generados para las claves PDH siguen siendo válidos, lo que permite a un atacante llevar a cabo un ataque a la migración de máquinas virtuales desde entornos que están protegidos contra la vulnerabilidad a aquellos que están sujetos al problema.

También se menciona la posibilidad de realizar un ataque de reversión en la versión de firmware de la versión vulnerable anterior, pero esta función aún no se ha confirmado.

 

Fuente: seclists | desdelinux

¿Quién está en línea?

Hay 18027 invitados y ningún miembro en línea