Estoy ejecutando una máquina virtual/contenedores, ¿hasta qué punto soy vulnerable?

Estoy ejecutando una máquina virtual/contenedores, ¿hasta qué punto soy vulnerable?

¿Es posible que una máquina virtual como VirtualBox tenga el "espectro" de vulnerabilidad de seguridad? Creo que la VM tal vez realice una ejecución desordenada, pero en mi opinión no es posible echar un vistazo al caché para leer el resultado.

¿Existe alguna explicación de cómo es posible leer el caché de una CPU virtual?

Respuesta1

Sí, Spectre puede cruzar los límites de host/invitado, invitado/host e invitado/invitado porque se trata de una falla a nivel de CPU que significa que se puede filtrar información potencialmente confidencial a través de cualquier cosa que se ejecute en un núcleo de CPU.

La mayoría de las noticias en Internet hablan de que los proveedores de la nube son los más afectados por esto, ya que tienen grupos masivos de sistemas virtualizados y potencialmente se podría abusar de ellos para filtrar información confidencial.

La mayoría de los grandes proveedores ya deberían haber sido parcheados contra las fallas, lo mejor que pueden, pero este será un problema que vivirá con nosotros durante algún tiempo.

Seguridad.SE tiene unPreguntas y respuestas canónicascon respecto a esto y menciona VM:

Estoy ejecutando una máquina virtual/contenedores, ¿hasta qué punto soy vulnerable?

segúnLa respuesta de Steffen Ullrich

  • Los ataques Meltdown no atraviesan las máquinas virtuales, solo filtran la memoria del kernel a los procesos locales.
  • Spectre puede funcionar en máquinas virtuales.

Además, desdeSteffen otra vez, Meltdown y Spectre funcionan con contenedores, ya que los contenedores dependen del kernel host.

Las máquinas virtuales utilizan la CPU real de su sistema con algunas instrucciones privilegiadas atrapadas y que pueden redirigirse. Utiliza los mismos cachés e instrucciones que el host. Es esencialmente otra capa dentro de la CPU física de su sistema.

La virtualización sólo es rápida porque utiliza la CPU física con la menor abstracción posible y depende del hardware de la CPU para proporcionar aislamiento. Cosas que qemu puede haceremulaciónlo cual sería más seguro ya que no es una CPU de hardware, pero símuchomás lento y es diferente de la virtualización.

Desde elPublicación canónica de Security.sede nuevo:

Spectre funciona en un nivel diferente y no permite el acceso a los datos del espacio del kernel desde el espacio del usuario. En este ataque, el atacante engaña a la ejecución especulativa para ejecutar de forma predictiva instrucciones erróneas. En pocas palabras, el predictor se ve obligado a predecir un resultado de rama específico (si -> verdadero), lo que resulta en solicitar un acceso a la memoria fuera de límites que el proceso víctima normalmente no habría solicitado, lo que resulta en una ejecución especulativa incorrecta. Luego, por el canal lateral, recupera el valor de esta memoria. De esta forma, la memoria que pertenece al proceso víctima se filtra al proceso malicioso.

Entonces, porque la VM se ejecuta en hardware de CPU real y todo lo que necesita hacer es ejecutar un bucle particular para "entrenar" el motor de ejecución especulativa. Luego puede utilizar una sincronización precisa para observar las cachés en busca de patrones particulares de acceso indicativos del proceso host o invitado (u otra VM) que busca explotar.

Esto significa que una máquina es explotable en todas direcciones. De host a VM, de VM a host y de VM a VM.

Sí, de ninguna manera es fácil y es algo difícil de lograr, ya que el núcleo de la CPU de la VM podría cambiar según el capricho del host y el host también podría programar tareas en diferentes núcleos, pero durante un largo período de tiempo hay suficiente información. podría filtrarse para revelar una clave secreta de algún sistema o cuenta importante. Con suficiente tiempo y algún software adecuadamente sigiloso, todo está potencialmente abierto.

Si desea una máquina virtual "segura", debe garantizar que sus núcleos estén aislados. La única forma real de bloquear este ataque sería "forzar" al host y a las máquinas virtuales a utilizar solo ciertos núcleos para que nunca se ejecuten en el mismo hardware, pero esto generaría un aumento efectivo en el costo, ya que no sería posible tener tantas máquinas virtuales en un host determinado. Nunca podrá ejecutar más máquinas virtuales de las que tiene núcleos disponibles, lo cual es algo que esperaría que se hiciera en servidores de "baja carga", ya que muchos sistemas permanecen inactivos durante el 90% de su vida.

Respuesta2

El simulador gem5 simula la microarquitectura de la CPU y puede usarse para estudiar Spectre

Si está interesado en estudiar/reproducir vulnerabilidades únicamente con emulación, sin usar la CPU del host, no creo que QEMU sea lo suficientemente detallado como para observarlas, ya que no simula la canalización de la CPU.

gem5sin embargo, se utiliza para estimar el rendimiento del sistema en investigación y desarrollo, y simula suficientes componentes internos de la CPU para que usted pueda observar Spectre en un entorno completamente limpio y controlado.

Se ha publicado una interesante demostración de x86_64 con visualización en:http://www.lowepower.com/jason/visualizing-spectre-with-gem5.html

La desventaja de gem5 es que es mucho más lento que QEMU y la simulación es más detallada.

información relacionada