¿Cómo protegen los proveedores de la gran nube contra los ataques de escape de VM?

21

Creo que es casi imposible decir que la computación en la nube, tal como la conocemos, depende del concepto de la robustez de las máquinas virtuales. Cuando se puede depender de la seguridad de las máquinas virtuales, se permite que las cargas de trabajo de varios clientes de un proveedor de la nube se ejecuten de forma segura en el hardware compartido, al mismo tiempo que se garantiza que si la seguridad de algo dentro de la máquina virtual de un cliente se ve comprometida, el sistema operativo host y amp; El firmware del servidor del proveedor no se verá afectado. Si es Amazon, Microsoft, Google, IBM o, en realidad, cualquier proveedor de la nube de cualquier tamaño, asegurarse de que el aislamiento de las VM de cada cliente permanezca sin compromisos es vital para sus operaciones y para los clientes que continúan confiando en sus ofertas de servicios.

Sin embargo, como sabemos, las máquinas virtuales son no a prueba de fugas . Periódicamente se han encontrado vulnerabilidades de seguridad en todas las principales tecnologías de máquinas virtuales que se me ocurren. VENOM para las máquinas virtuales Xen es probablemente el más famoso de estos, pero Hyper V , Productos VMware , y así sucesivamente también han sido afectados por vulnerabilidades. Por supuesto, estos defectos conocidos pueden ser reparados por los proveedores. Pero, sin duda, hay otras fallas que esperan ser descubiertas y (potencialmente) explotadas por los atacantes. De hecho, uno supondría que los atacantes cuentan con recursos suficientes, es decir, aquellos capaces de desarrollar nuevas vulnerabilidades y amp; explotaciones internas o comprando mercados valiosos / oscuros: tendrían un incentivo muy fuerte para dedicar una buena cantidad de tiempo / esfuerzo / dinero a encontrar o comprar nuevos que permitan romper las máquinas virtuales utilizadas por los principales proveedores de nube. Especialmente teniendo en cuenta el papel cada vez mayor que desempeña la computación en la nube en la infraestructura tecnológica de tantas compañías y amp; organizaciones que, a su vez, son todos objetivos potencialmente jugosos (por diversas razones) para atacantes sofisticados.

Entonces, ¿cómo protegen Amazon, Microsoft, etc. contra la amenaza que puede desarrollar un atacante sofisticado (ya sea APT patrocinadas por el estado, crimen organizado de alto nivel o lo que sea) para comprar ataques de escape VM nuevos y usarlos contra el infraestructura del proveedor y los clientes? La única medida obvia que se me queda es ejecutar sistemas personalizados de detección de intrusos basados en host en todos los servidores en la nube para tratar de detectar eventos de escape de VM cuando suceden, pero como todos sabemos ahora, HIDS no es tan infalible. ¿Qué otras medidas podrían / deberían tomar los proveedores de la nube para detectar, prevenir o mitigar el peligro de violaciones de contención de máquinas virtuales?

    
pregunta mostlyinformed 17.07.2016 - 02:04
fuente

2 respuestas

15

Hipervisores altamente personalizados y parcheados, cajones de arena alrededor de dichos hipervisores para mitigar los brotes y monitoreo intenso. Por supuesto, cualquier servidor dado solo alberga tantas máquinas virtuales, por lo que una ruptura se limita fundamentalmente a un número limitado de invitados, si es capaz de superar las protecciones fuera del hipervisor. Por ejemplo, QEMU se puede compilar con una cadena de herramientas endurecida, aislada usando chroots, modo 2 seccomp, controles de acceso obligatorios. Se puede parchear para que sea más seguro, usando filtros seccomp personalizados, deshabilitando el exceso de código o funciones, agregando controladores personalizados y reforzados. Los núcleos personalizados pueden configurarse y reforzarse para limitar la capacidad de un huésped escapado de comprometer el núcleo y escapar de los controles de acceso obligatorios.

Desafortunadamente, la respuesta a la pregunta puede responderse parcialmente con "ellos no". Muchos proveedores de la nube se comprometen regularmente, simplemente no lo saben o no lo revelan. Veo que esto sucede periódicamente, y no es bonito. A veces se usan 0 días y, a veces, se aprovechan los problemas públicos poco conocidos con los proveedores. Por ejemplo, el nivel superior de Amazon no se apaga al cambiar de cliente, lo que hace que sus GPU no borren la VRAM, lo que permite al siguiente cliente ver lo que estaba haciendo el anterior (robando secretos en OpenCL, todo lo que se envió a través de VNC o con el reenvío X11). etc). El equipo de seguridad de Amazon lo sabe, pero aún no lo ha solucionado. Ellos no les dicen esto a sus clientes. Esto demuestra una falta de esfuerzo en seguridad y una falta de conocimiento sobre los problemas de seguridad existentes. Con algo como esto, uno pensaría que se convertiría en una gran noticia para pocas personas, no es sorprendente que puedan ocurrir ataques a gran escala o avanzados contra proveedores de la nube sin que el público en general lo sepa. La falta de conocimiento y las noticias de los ataques llevan a la gente a preguntarse cómo demonios se mantienen seguras estas grandes empresas. No lo son.

A mi izquierda hay una ventana con vim abierto. En él se encuentra un código con un día de uso reciente para romper un hipervisor en un determinado proveedor de nube de tamaño mediano. No había protecciones en su lugar. Todo lo que sucedió fue el estallido que explotó y obtuvo acceso al host con los privilegios en los que se estaba ejecutando el hipervisor. No se implementaron soluciones de monitoreo o caja de arena. Un solo syscall obsoleto que causa una vulnerabilidad del kernel lleva a un kernel comprometido y una persistencia en la memoria (grsecurity lo habría mitigado, fwiw), y la posterior extracción de información. Esta empresa vale cientos de millones de dólares. Estoy seguro que innumerables personas han estado allí antes. Aunque esto no es una evidencia real y solo mi propia experiencia, es de esperar que muestre que los proveedores de nube grande en la nube no protegen contra el VM, con las excepciones mencionadas en el primer párrafo.

    
respondido por el anon 21.07.2016 - 07:31
fuente
1

La defensa principal contra los ataques de escape vm específicamente es defense-en-profundidad . Específicamente, si existen mecanismos defensivos variados y abundantes, un atacante activará lo suficiente de ellos para que el defensor pueda evitar que sucedan cosas malas. Incluso si un atacante logra salir de una vm en un hipervisor, todavía puede haber cosas que los atrapen ( Tripwire , anti- virus, Modsecurity , por ejemplo). Cree suficientes capas que no compartan vulnerabilidades y se vuelva extremadamente difícil, si no imposible, de romper.

Sin embargo, en muchos sentidos, tu pregunta da en el clavo en la cabeza. Un atacante hábil y motivado, capaz de crear un ataque único para todas las defensas, podría implantar un rootkit de hipervisor y el el anfitrión nunca lo sabría.

Un buen equipo de defensores debe ser capaz de comprender y utilizar una amplia variedad de herramientas / trucos para detener a los atacantes. Esperemos que esto sea suficiente para que comiences en la dirección correcta.

    
respondido por el Christian Foster 26.07.2016 - 18:27
fuente

Lea otras preguntas en las etiquetas