Investigadores vencen el cifrado de máquinas virtuales de AMD (SEV)

30/05/2018
Caption

Investigadores alemanes de seguridad afirman haber encontrado un nuevo ataque práctico contra las máquinas virtuales (VM) protegidas mediante la tecnología de Secure Encrypted Virtualization (SEV) de AMD que podría permitir a los atacantes recuperar los datos de la memoria en texto claro de las máquinas virtuales.

La tecnología Secure Encrypted Virtualization (SEV) de AMD, que viene con la línea de procesadores EPYC, es una característica de hardware que cifra la memoria de cada máquina virtual de manera que solo la máquina virtual huésped puede acceder a los datos, protegiéndolos de otras máquinas virtuales / contenedores e incluso desde un hipervisor que no es de confianza.

Descubierto por investigadores del Instituto Fraunhofer de Seguridad Aplicada e Integrada en Munich, el ataque del canal lateral de falla de página, denominado SEVered, aprovecha la falta de protección de la integridad del cifrado de la memoria principal en la página, permitiendo a un hipervisor malicioso extraer de máquinas virtuales cifradas con SEV el contenido completo de la memoria principal en texto claro.

Aquí está el esquema del ataque SEVered, según lo informado en el documento:

    "Si bien la traducción de la dirección virtual de invitado (GVA) a la dirección física de invitado (GPA) está controlada por la propia VM y opaca a la HV (Virtualización por hardware), la HV sigue siendo responsable de la traducción de segundo nivel de dirección (SLAT), lo que significa que mantiene la VM GPA para alojar la asignación de direcciones físicas (HPA) en la memoria principal."

    "Esto nos permite cambiar el diseño de la memoria de la VM en el HV. Utilizamos esta capacidad para engañar a un servicio en la VM, como un servidor web, para que devuelva páginas arbitrarias de la VM en texto claro a petición de un recurso externo."

    "Primero identificamos las páginas cifradas en la memoria correspondiente al recurso, que el servicio devuelve como respuesta a una solicitud específica. Al enviar repetidamente solicitudes para el mismo recurso al servicio mientras reasignamos las páginas de memoria identificadas, extraemos toda la memoria de VM en texto plano".


Durante sus pruebas, el equipo pudo extraer los datos completos de una memoria de 2 GB de un servidor de prueba, que también incluía datos de una máquina virtual invitada.

En su configuración experimental, los investigadores utilizaron una máquina con un sistema operativo basado en Linux impulsado por un procesador AMD Epyc 7251 con SEV habilitado, ejecutando servicios web -los servidores web Apache y Nginx-, así como un servidor SSH en máquinas virtuales separadas.

Como HV malicioso, los investigadores utilizaron la Máquina Virtual basada en Kernel (KVM) del sistema y la modificaron para observar cuando el software de un invitado accedía a la memoria RAM física.

Mientras que con los servidores web Apache y Nginx la extracción de datos de memoria era alta (a una velocidad de 79.4 KB / seg), OpenSSH tenía un tiempo de respuesta más alto que reducía la velocidad de extracción a solo 41.6 KB / seg.

    "Nuestra evaluación muestra que SEVered es factible en la práctica y que puede utilizarse para extraer toda la memoria de una máquina virtual protegida por SEV dentro de un tiempo razonable", dijeron los investigadores. "Los resultados muestran específicamente que los aspectos críticos, como el ruido durante la identificación y la rigidez de los recursos, son gestionados adecuadamente por SEVered".

Los investigadores también recomendaron algunos pasos que AMD podría tomar para aislar el proceso de transición entre el host y el Guest Physical Address (GPA) para mitigar el ataque SEVered.

    La mejor solución es proporcionar "una integridad completa y protección de las páginas de invitado adicionales al cifrado, tal como se realiza en Intel SGX. Sin embargo, esto probablemente conlleva un alto costo de silicio para proteger máquinas virtuales completas en comparación con los enclaves SGX".

Sin embargo, combinar de forma segura el hash del contenido de la página con el GPA asignado por el invitado podría ser una solución eficiente y de bajo costo, lo que garantiza que "las páginas no puedan intercambiarse fácilmente cambiando el GPA al mapeo HPA".

La investigación fue llevada a cabo por cuatro investigadores de Fraunhofer AISEC-Mathias Morbitzer, Manuel Huber, Julian Horsch y Sascha Wessel-que ha sido publicado en su artículo [PDF] titulado, "Severed: Subverting AMD's Virtual Machine Encryption".

Artículos relacionados: