Rompen el cifrado de los procesadores Epyc de AMD para proteger máquinas virtuales

Rompen el cifrado de los procesadores Epyc de AMD para proteger máquinas virtuales

Investigadores alemanes han hallado un método para acabar con los mecanismos de seguridad utilizados por los procesadores Epyc de AMD para cifrar automáticamente las máquinas virtuales en la memoria, esto quiere decir que se pueden filtrar los datos en texto plano de un invitado cifrado mediante un hypervisor secuestrado y peticiones HTTP simples realizadas desde un segundo invitado.

Los procesadores Epyc y Ryzen Pro de AMD incluyen una característica llamada Secure Encrypted Virtualization (SEV), que se encarga de cifrar y descifrar las máquinas virtuales al vuelo mientras están almacenadas en la memoria RAM. Su misión es que la máquina anfitriona, el hipervisor y el malware almacenado en la máquina anfitriona no puedan alcanzar a las invitadas debido a que estas últimas están cifradas y por lo tanto protegidas. A cada máquina virtual se le asigna un identificador de espacio de direcciones que está vinculado a una clave criptográfica propia de cada invitado que se encarga de cifrar y descifrar los datos a medida que la máquina virtual va acaparando tanto recursos de RAM como de CPU.

Se supone que Secure Encrypted Virtualization tendría que ofrecer una fuerte protección para las máquinas virtuales, incluso frente a hipervisores que han sido secuestrados para ejecutar operaciones maliciosas, abarcando también el kernel, drivers y código ejecutado con altos privilegios. Sin embargo, una técnica llamada SEVered puede, según los investigadores que la han descubierto, ser usada por un administrador malintencionado a nivel del anfitrión para eludir las protecciones que ofrece y copiar la información de un cliente o una máquina virtual.

Los investigadores, que trabajan para la empresa Fraunhofer AISEC, han dicho que el problema es que personas con acceso al anfitrión pueden alterar las asignaciones en los mapeados de la memoria física utilizada por un invitado mediante tablas de paginación estándares, de manera que Secure Encrypted Virtualization no pueda aislar y cifrar adecuadamente las partes de la máquina virtual en la RAM. “Mientras que la traducción de la Dirección Virtual de Invitado (GVA) de la máquina virtual a la Dirección Física del Invitado (GPA) es controladora por la propia máquina virtual y opaca al hipervisor, el hipervisor permanece como responsable del Segundo Nivel de Traducción de Direcciones, lo que significa que mantiene la GPA de la máquina virtual a la Dirección Física de Host mapeando en la memoria principal. Esto permite cambiar la disposición de la memoria de la máquina virtual y el hipervisor. Usamos esta capacidad para engañar a un servicio en la máquina virtual, como un servidor web, para que devuelva páginas arbitrarias de la máquina virtual en texto plano a petición de un recurso externo.”

Para mostrar la explotación de fallo, los investigadores han probando un procesador AMD Epyc 7251 con SEV habilitado montado en un ordenador que ejecutaba Debian, la conocida distribución Linux. En el sistema se ejecutaron dos servicios: un servidor HTTP Apache y otro OpenSSH en máquinas virtuales separadas. Mediante un hipervisor KVM modificado pudieron observar cuándo el software de un invitado accedía a la RAM física. Al realizar una gran cantidad de peticiones a los servicios, como por ejemplo la recuperación una página web de Apache, el hipervisor puede ver qué páginas de la memoria física están siendo utilizadas para guardar el fichero.

Luego se cambia las asignaciones de la página, por lo que una página de la memoria cifrada en otra máquina virtual es usada por la que tiene Apache en ejecución para enviar una página web solicitada, y por lo tanto envía automáticamente una página de memoria descifrada de otra máquina virtual en su lugar. Explicado de otra manera, lo que hace Apache es filtrar los datos otro invitado. Con el tiempo los investigadores fueron capaces de extraer una memoria completa de 2GB de la máquina virtual objetivo.

Como medida de mitigación, según los investigadores, AMD podría aislar la transición entre el proceso de dirección física del anfitrión y el invitado. La mejor solución sería proporcionar integridad completa y protección de frescura para las páginas del invitado adicionales al cifrado, como se realiza en Intel SGX, pero esto tendría un alto coste de silicio, así que como alternativa se puede combinar de forma segura el hash del contenido de la página con la GPA asignada por el invitado.

Fuente: The Register

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.