Investigadores de las universidades de Carolina del Norte y de Wisconsin juntamente con investigadores de RSA han llevado a cabo una investigación en la cual han sido capaces de a partir de una máquina virtual extraer claves criptográficas en otra máquina virtual funcionando en el mismo hardware. Este descubrimiento pone en tela de juicio la seguridad de muchos de los sistemas cloud actuales.

vm-ataque-sidechannel 

 

En un entorno de laboratorio,y atacando desde una Máquina Virtual (VM) a otra VM funcionando sobre el mismo hardware, los investigadores han sido capaces de recuperar la clave privada en la VM víctima, correspondiente a una clave pública de 4096-bit generada con el algoritmo ElGamal usando la librería libgcrypt 1.5.0. El ataque para conseguir la clave privada se basa en el análisis del side-channel a través del cual los atacantes pueden obtener la clave privada estudiando el consumo de energía, las emanaciones electromagnéticas, el cache del procesador entre otros indicadores del sistema y relacionandolos con la actividad y procesos de la VM atacada.

Este ataque de momento solo ha tenido éxito cuando las dos máquinas virtuales se encuentran funcionando sobre el mismo hardware, lo cual puede complicar el atacar a objetivos seleccionados, pero no evita el riesgo para objetivos aleatorios. Para llevar a cabo el ataque, los investigadores han utilizado un entorno lo más similar posible al utilizado por Amazon EC2, como el hypervisor Xen o el software criptográfico GNU Privacy Guard.

El ataque se basa, a grandes rasgos, en desde la VM atacante generar en el cache unos bloques de tamaño controlado, que inmediatamente para de ejecutar. En ese momento espera que la otra VM ejecute en el mismo core sus instrucciones. Del siguiente análisis del cache y de ver que bloques maliciosos han sido reemplazados puede llevar al atacante a determinar que instrucciones ejecuta la víctima en ese core. A partir de un análisis exhaustivo de estos datos durante un largo periodo de tiempo los investigadores fueron capaces de obtener la clave privada.

Para evitar este ataque los investigadores proponen utilizar entornos hardware diferenciados para tareas de alto riesgo, la utilización de algoritmos resistentes a este ataque y protecciones del tipo de planificación del uso de los núcleos que pueden evitar la falsificación de los procesos en cache en una máquina virtual.

Fuente