Vulnerabilidad en AMD SEV que permite determinar claves de cifrado

Desarrolladores del equipo de Google Cloud identificado Vulnerabilidad (CVE-2019-9836) en la implementación de la tecnología AMD SEV (Secure Encrypted Virtualization), que permite comprometer datos protegidos mediante esta tecnología. AMD SEV a nivel de hardware proporciona cifrado transparente de la memoria de la máquina virtual, en el que solo el sistema invitado actual tiene acceso a los datos descifrados, y otras máquinas virtuales y el hipervisor reciben un conjunto de datos cifrados cuando intentan acceder a esta memoria.

El problema identificado permite restaurar completamente el contenido de la clave PDH privada, que se procesa en el nivel de un procesador PSP protegido independiente (procesador de seguridad AMD), al que no se puede acceder desde el sistema operativo principal.
Al tener la clave PDH, el atacante puede recuperar 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 es causada por fallas en la implementación del cifrado de curva elíptica (ECC), que permite ataque para restaurar los parámetros de la curva. Durante la ejecución de un comando de inicio de una máquina virtual protegida, un atacante podría enviar parámetros de curva que no cumplan con los parámetros recomendados por NIST, lo que resultaría en el uso de valores de puntos de orden bajo en operaciones de multiplicación con datos de clave privada.

Seguridad del protocolo ECDH directamente. depende de de orden el punto de partida generado de la curva, cuyo logaritmo discreto es una tarea muy difícil. Durante uno de los pasos de inicialización del entorno AMD SEV, los cálculos de clave privada utilizan parámetros recibidos del usuario. Básicamente, la operación consiste en multiplicar dos puntos, uno de los cuales corresponde a la clave privada. Si el segundo punto se refiere a números primos de orden inferior, entonces el atacante puede determinar los parámetros del primer punto (bits del módulo utilizados en la operación del módulo) buscando entre todos los valores posibles. Para determinar la clave privada, los fragmentos de números primos seleccionados se pueden unir usando Teorema del resto chino.

El problema afecta a las plataformas de servidores AMD EPYC que utilizan firmware SEV hasta la versión 0.17 build 11. AMD ya опубликовала Actualización de firmware que añade bloqueo de puntos que no cumplen con la curva NIST. Al mismo tiempo, los certificados generados previamente para las claves PDH siguen siendo válidos, lo que permite a un atacante llevar a cabo un ataque para migrar máquinas virtuales desde entornos protegidos de la vulnerabilidad a entornos susceptibles al problema. También se menciona la posibilidad de llevar a cabo un ataque para revertir la versión del firmware a una versión anterior vulnerable, pero esta posibilidad aún no ha sido confirmada.

Fuente: opennet.ru

Añadir un comentario