Un grupo de académicos ha revelado un nuevo “ataque de falla de software” en la virtualización cifrada segura de AMD (SEV) tecnología que podría ser potencialmente explotada por actores de amenazas para infiltrarse en máquinas virtuales (VM) cifradas e incluso realizar una escalada de privilegios.
El ataque tiene el nombre en clave CacheWarp (CVE-2023-20592) por investigadores del Centro CISPA Helmholtz para la Seguridad de la Información. Afecta a las CPU AMD que admiten todas las variantes de SEV.
“Para esta investigación, analizamos específicamente el TEE más nuevo de AMD, AMD SEV-SNP, basándonos en la experiencia de ataques anteriores al TEE de Intel”, dijo el investigador de seguridad Ruiyi Zhang a The Hacker News. “Encontramos la instrucción ‘INVD’ [flush a processor’s cache contents] podría ser objeto de abuso bajo el modelo de amenaza de AMD SEV”.
SEV, un extensión a la arquitectura AMD-V e introducido en 2016, está diseñado para aislar las máquinas virtuales del hipervisor cifrando el contenido de la memoria de la máquina virtual con una clave única.
La idea, en pocas palabras, es proteger la VM de la posibilidad de que el hipervisor (es decir, el monitor de la máquina virtual) pueda ser malicioso y, por lo tanto, no se pueda confiar en él de forma predeterminada.
SEV-SNP, que incorpora Secure Nested Paging (SNP), agrega “una sólida protección de la integridad de la memoria para ayudar a prevenir ataques maliciosos basados en hipervisores como reproducción de datos, reasignación de memoria y más para crear un entorno de ejecución aislado”. de acuerdo a a AMD.
Pero CacheWarp, según Zhang, permite anular las protecciones de integridad y lograr una escalada de privilegios y la ejecución remota de código en la máquina virtual de destino.
La instrucción `INVD` coloca todo el contenido modificado en el caché sin volver a escribirlo en la memoria. Por lo tanto, el atacante puede descartar cualquier escritura de las máquinas virtuales invitadas y la máquina virtual continúa con datos arquitectónicamente obsoletos. En el artículo, lo demostramos mediante dos primitivos, “timewarp” y “dropforge”.
Para el timewarp, podemos restablecer lo que el ordenador ha memorizado como siguiente paso. Esto hace que la computadora ejecute código que ejecutó antes porque lee de la memoria una llamada dirección de retorno obsoleta. De este modo, el ordenador retrocede en el tiempo. Sin embargo, el código antiguo se ejecuta con datos nuevos (el valor de retorno de otra función), lo que produce efectos inesperados. Usamos este método para evitar la autenticación OpenSSH, iniciando sesión sin conocer la contraseña.
Otro método, llamado “Dropforge”, permite al atacante restablecer los cambios realizados en los datos de las máquinas virtuales invitadas. Con una o varias caídas, el atacante puede manipular el flujo lógico de ejecución del invitado de forma explotable. Tome el binario `sudo` como ejemplo, un valor de retorno se almacena en la memoria (pila) para que el atacante pueda restablecerlo a un valor inicial. Sin embargo, el valor inicial “0” nos otorga privilegios de administrador incluso cuando no lo seamos.
Con esta combinación tenemos acceso ilimitado a la máquina virtual.
La explotación exitosa del error arquitectónico podría permitir a un atacante secuestrar el flujo de control de un programa volviendo a un estado anterior y tomar el control de la VM. AMD desde entonces lanzó una actualización de microcódigo para corregir el “mal uso de las instrucciones”.
“Un equipo de Google Project Zero y Google Cloud Security ha auditado “La versión más nueva de AMD TEE (SEV-SNP) el año pasado”, señaló Zhang. “AMD también afirma que SEV-SNP previene todos los ataques a la integridad. Sin embargo, nuestro ataque rompe la integridad del mismo.”
Los investigadores de CISPA, a principios de agosto, también revelaron un ataque de canal lateral de energía basado en software dirigido a CPU Intel, AMD y Arm denominado Collide+Power (CVE-2023-20583) que podría usarse como arma para filtrar datos confidenciales rompiendo las protecciones de aislamiento.