Canal encubierto entre dos VM usando el caché compartido de la CPU

Un grupo de investigadores ha demostrado que puede extraer información de una máquina virtual de Amazon Web Services a través de la memoria caché de una CPU que comparte con otras VM en la nube.

Un documento titulado (traducido) "Hola desde el otro lado: SSH sobre los canales encubiertos del robusto caché en la nube (PDF)" explica los retos de la extracción de datos de caché de la CPU, un recurso muy usado en el que el sistema operativo, el hipervisor y las aplicaciones llevan a cabo operaciones frecuentes. Toda esa actividad hace mucho ruido, desafiando los intentos de crear un canal de comunicaciones persistente.

Hasta ahora, como afirman los investigadores, han construido "un canal encubierto de alto rendimiento que puede mantener velocidades de transmisión de más de 45 Kbps en Amazon EC2". Incluso lo han cifrado: la técnica establece una red TCP dentro de la caché y transmite datos usando SSH.

Los resultados son impresionantes, recientemente en la Black Hat Asia se dio una charla en la que se detalló su trabajo y se demostró incluso cómo transmitir video de VM a VM usando la memoria caché de un host.

El paper explica que este material no es totalmente nuevo, pero hasta ahora no ha sido totalmente exitoso porque se ha asumido que "el código de corrección de errores se puede aplicar directamente, y la suposición de que el ruido efectivamente elimina los canales encubiertos".

Los autores derriban ambos argumentos, el primero por encontrar una manera de manejar los errores y el segundo con la creación de un método efectivo de programación de la comunicación entre dos máquinas virtuales.

El documento detalla estos esfuerzos que denomina "Cache-based Jamming Agreement" y ofrecen el código en GitHub para que quién quiera pueda construir su propio canal encubierto en caché, ya sea en el local o en la nube.

Conseguir esto en la nube no es trivial, porque primero se debe averiguar cómo obtener dos máquinas virtuales que se ejecutan en el mismo host, aunque un documento de 2015 titulado "A Placement Vulnerability Study en Multi-Tenant Public Clouds" encontró que es posible en Amazon, Google y Azure y es citado por los autores del paper.

Digamos que este ataque puede parece un poco "exótico", pero también demuestra por qué muchos usuarios están dispuestos a pagar por tener las instancias dedicadas en su nube. También podemos ver que el multi-tenancy todavía tiene un largo camino por recorrer.

Fuente: Researchers steal data from CPU cache shared by two VMs

Comentarios