Mostrando entradas con la etiqueta virtualización. Mostrar todas las entradas
Mostrando entradas con la etiqueta virtualización. Mostrar todas las entradas

viernes, 17 de agosto de 2018

Foreshadow, nuevo ataque basado en la ejecución especulativa

A Spectre y Meltdown se les suma un nuevo ataque (en realidad son varios) del tipo "ejecución especulativa". Las consecuencias, al igual que los anteriores ataques, es la capacidad de leer zonas de la memoria a las que no se debería de tener acceso.

Este tipo de ataques se basan, como ya hemos mencionado, en la ejecución especulativa. ¿Qué es? Es una técnica de optimización que utilizan los microprocesadores para ir "adelantando" trabajo. Mientras que un grupo de instrucciones se está ejecutando, otro hilo del procesador puede ejecutar instrucciones futuras o acceder a recursos adicionales basado simplemente en la especulación, es decir, en "creer" que el proceso va a necesitar esos cálculos o recursos en un futuro. Naturalmente, eso es una apuesta con sus correspondientes probabilidades, siendo normal y factible que todo ese trabajo que se ha adelantado no sirva para nada, dado que el proceso puede derivar perfectamente en otro cauce de ejecución.



Por poner un ejemplo más mundano, supón que un día ves con tus amigos dos capítulos de una serie, preparáis las bebidas, palomitas y os acopláis en el sofá. Al día siguiente hacéis lo mismo, al otro también y como supones que eso va a ocurrir al siguiente del siguiente (porque a la serie le quedan dos capítulos para que termine), preparas el refrigerio y acomodas el salón antes de que tus amigos aparezcan, pero llega el momento y tus amigos no llegan. ¿Qué haces? Te comes el refrigerio tu sólo porque no ha servido para lo que pensabas. Has adelantado trabajo "especulando" qué podría ocurrir.

Las víctimas de "Arquitectura de Computadores I, II y III", saben que diseñar microprocesadores de cierta complejidad es una tarea destinada a unos pocos seres humanos con cierto volumen craneal, necesario para evitar la expansión cerebral que produce el calentamiento inherente al diseño de estos ingenios. Y como con todo lo que conlleva la palabra humano: nada es perfecto. Así que cuando diseñaron la forma en la que se traducen direcciones de la memoria virtual de un proceso de usuario a memoria física (o real), incluyeron también la posibilidad de mapear la memoria del kernel y de paso, la de otros procesos. ¿Qué podría salir mal?

Ojo, que esto no significa que a las bravas puedas leerlo. No, no, no. De ningún modo. Un proceso de usuario no puede venirse arriba y decir: "Venga, voy a aprovechar que tengo pendiente una lectura de disco y me voy a guardar cuatro páginas enteras de memoria del kernel y de paso un par del proceso bash del vecino". Para ello existe un mecanismo que comprueba si dicho proceso posee derechos de acceso a esas partes de la memoria. Una especie de aduana digital donde se comprueba la mercancía que se está intentando llevar un proceso. "Oiga, pollo, pare, pare. ¿De donde ha sacado usted esos 256 bytes con pinta de clave RSA privada. ¿Ah, que es de un amigo? ¡Claro!, como no. Venga por aquí."


Vale, vale, pero ¿Cómo se explota?

Bien, hemos comentado a muy alto nivel que todo esto se basa en adelantar trabajo, ya sea ejecutando de antemano saltos en el código que podrían o no ejecutarse (predicción de saltos), procesar conjuntos de instrucciones que se pueden ejecutar de forma independiente al conjunto en ejecución actual (ejecución fuera de orden), etc. Y por otro lado, hemos dicho que en la memoria de un proceso, por diseño, se mapean las direcciones de la memoria del kernel y otros procesos (debido a que se está traduciendo memoria virtual a física y viceversa). 

Pues el problema principal de seguridad es que cuando se está produciendo la ejecución especulativa, no se están revisando los privilegios de un proceso respecto a esa zona de memoria. Se dejan para después, cuando se hace efectiva la ejecución adelantada. Mientras tanto, los datos de esas zonas de memoria a las que no se debería acceder, permanecen en la memoria caché, donde mediante la aplicación de ciertas técnicas, pueden ser leídas. Esto es en lo que, de forma general, se basan este tipo de vulnerabilidad.


Foreshadow y Foreshadow-NG

Foreshadow fue descubierta por un grupo de investigadores procedentes de varias universidades y centros de investigación. Pertenece a la familia de fallos sobre los que ya hemos hablado, ataques sobre la ejecución especulativa. En particular, este ataque se centra sobre una característica en particular SGX (Software Guard Extensions). Esta tecnología permite a un proceso de usuario proteger una zona de memoria incluso del acceso por parte de procesos más privilegiados. 

Por poner un ejemplo, supongamos que mapeamos 16 kilobytes de memoria y la protegemos mediante SGX, pues se supone que ni siquiera un proceso root podría tener acceso a ese fragmento de datos. Esto permite un nivel de protección muy útil cuando queremos proteger datos de importancia sin recurrir a cifrado.

El grupo que descubrió el fallo reportó los detalles a Intel para que contrastaran los hallazgos. Pues además de confirmar el fallo, el propio equipo de Intel ha descubierto una nueva forma de ataque que han denominado "L1 Terminal Fault" y que posibilitaría la lectura completa de la caché L1. 

La caché L1 es la más cercana al procesador (existe una jerarquía de memorias caché, clasificadas según la "cercanía" al procesador), lo que significa que posee poca capacidad relativa de memoria pero una alta velocidad en la recuperación de datos e instrucciones. Esto se traduce en una memoria muy viva, con datos de procesos que están siendo ejecutados en ese momento y por supuesto, muy relacionada con la ejecución especulativa de estos últimos. Razón por la cual, con los elementos que ya hemos explicado, la hace objeto de la tormenta perfecta.

Consecuencias. Es posible leer la caché L1, pieza útil en mecanismos como el ya descrito SGX, memoria del kernel y máquinas virtuales, además de memoria del modo SMM (System Management Mode) que regula funciones de muy bajo nivel relacionadas con el hardware subyacente, por ejemplo, la gestión de energía, etc. Como apuntan en el estudio, esto tiene importantes consecuencias en la nube, donde el uso de la virtualización forma la espina dorsal del paradigma. 

Intel ha actualizado el microcódigo de los procesadores afectados, aunque señala que habrá que actualizar sistemas operativos y las soluciones de virtualización para impedir la explotación del fallo. Tanto Microsoft como el kernel Linux han aportado ya una solución para la causa en la parte que les toca. 

Se han asignado los siguientes CVEs para las distintas variedades del ataque:

- CVE-2018-3615 para el ataque sobre SGX
- CVE-2018-3620 para la memoria del kernel y SMM
- CVE-2018-3646 para el que afecta a máquinas virtuales

Podéis encontrar una amplia lista de procesadores afectados en esta página.


Bonus track:

Foreshadow es una palabra inglesa que hace mención a una figura o recurso literario que anticipa al lector unos hechos que han de producirse, pero de una forma tan sutil que impide que este se haga una idea directa y clara de ese futuro. En español se denominaría: presagio.






David García
@dgn1729
Más información:






jueves, 8 de junio de 2017

Corregidas vulnerabilidades en VMware vSphere Data Protection

VMware ha publicado actualizaciones de seguridad para corregir dos vulnerabilidades críticas en VMware vSphere Data Protection.

VMware es un software que permite ejecutar diferentes sistemas operativos en un mismo PC de forma virtual. vSphere Data Protection pertenece a la gama de productos de la compañía y proporciona copias de seguridad en disco de máquinas virtuales a nivel de imagen y sin agentes. También ofrece protección con reconocimiento de aplicaciones para aplicaciones Microsoft.

El boletín VMSA-2017-0010 se refiere a dos vulnerabilidades en VMware vSphere Data Protection (VDP) 6.1.x, 6.0.x, 5.8.x y 5.5.x. La primera con CVE-2017-4914 reside en un error de deserialización en Java que podría permitir a un atacante ejecutar comandos en el sistema.

Por otra parte, con CVE-2017-4917, reside en que vSphere Data Protection almacena localmente las credenciales vCenter Server con un cifrado reversible. Esto podría permitir a un atacante obtener las credenciales en texto plano.

VMware ha publicado versiones actualizadas para evitar los problemas disponibles desde:
vSphere Data Protection (VDP) 6.1.4

vSphere Data Protection (VDP) 6.0.5

Más información:

VMSA-2017-0010
vSphere Data Protection (VDP) updates address multiple security issues.

New VMware Security Advisory VMSA-2017-0010 and Updated Security Advisory VMSA-2016-0024.1



Antonio Ropero
Twitter: @aropero

sábado, 18 de febrero de 2017

Elevación de privilegios en la maquina anfitriona en Xen

Se ha anunciado un problema de seguridad en Xen que podría permitir a un administrador de un sistema huésped conseguir información sensible o privilegios elevados en la máquina anfitriona.

Xen es un proyecto colaborativo de la fundación Linux centrado en la virtualización de hardware. Las tecnologías creadas son Xen Hypervisor (el estándar de virtualización del mundo del código abierto), Xen Cloud Platform (plataforma de soluciones en la red basada en la tecnología anterior) y Xen ARM, destinada a dispositivos móviles.

El problema anunciado, con CVE-2017-2615, reside en un acceso a memoria fuera de límites en qemu en la emulación de tarjetas de vídeo Cirrus, que podría permitir a usuarios administradores en el sistema invitado obtener información sensible de la memoria o conseguir privilegios elevados en el sistema anfitrión.

Se ven afectados los sistemas Xen que se ejecutan en x86 con invitados HVM, con el proceso qemu ejecutándose en dom0. Sólo los invitados que dispongan de la tarjeta de video emulada "Cirrus" pueden aprovechar la vulnerabilidad. La tarjeta de vídeo emulada no predeterminada "stdvga" no es vulnerable. Los sistemas ARM no son vulnerable, así como los que solo usan invitados PV.

Se han publicado las siguientes actualizaciones:
Para mainline qemu, qemu-xen master,4.8

Para qemu-xen 4.4, 4.5, 4.6, 4.7

Para qemu-xen-traditional

Más información:

Xen Security Advisory CVE-2017-2615 / XSA-208
oob access in cirrus bitblt copy


Antonio Ropero

Twitter: @aropero

lunes, 14 de noviembre de 2016

Vulnerabilidad crítica en VMware Workstation y Fusion

VMware ha publicado una actualización de seguridad para corregir vulnerabilidades en VMware Workstation y Fusión que podrían permitir desde un sistema invitado ejecutar código arbitrario en el sistema anfitrión. 

VMware es un software que permite ejecutar diferentes sistemas operativos en un mismo PC de forma virtual. Entre otras aplicaciones, VMware es muy utilizado en seguridad informática por la versatilidad que ofrece. Por ejemplo, se suele utilizar de forma habitual en la investigación del malware, ya que permite ejecutar y analizar los especímenes en entornos virtuales controlados.

El problema, considerado crítico, reside en la funcionalidad arrastrar y soltar (drag-and-drop) de VMware Workstation y Fusion por una vulnerabilidad de acceso a memoria fuera de límites. Como contramedida en Workstation Pro y Fusion, el problema no puede explotarse si las funcionalidades de arrastrar y soltar y de copiar y pegar están desactivadas. Esta contramedida no está disponible en Workstation Player.

Está vulnerabilidad está considerada crítica, pues es de las más graves que pueden darse en entornos virtuales: escapar del entorno virtual y lograr ejecutar código en el sistema anfitrión. Se ha asignado el CVE-2016-7461.

El fallo fue reportado a través del evento PwnFest, una competición de hacking (similar al conocido Pwn2Own) que tuvo lugar en Corea del Sur en el marco de la conferencia de seguridad Power Of Community 2016. Fue descubierto por los investigadores Qinghao Tang y Xinlei Ying del equipo Qihoo 360’s Marvel Team y JungHoon Lee (lokihardt) que fueron recompensados con un premio de 150.000 dólares. VMware recibió los detalles de la vulnerabilidad directamente de los investigadores.


Afecta a Workstation Pro y Player 12.x en todos los sistemas y a Fusion y Fusion Pro 8.x en Mac OS X.

VMware ha publicado versiones actualizadas para evitar el problema disponible desde:
VMware Workstation Pro 12.5.2
VMware Workstation Player 12.5.2
VMware Fusion Pro / Fusion 8.5.2

Más información:

VMSA-2016-0019
VMware Workstation and Fusion updates address critical out-of-bounds memory access vulnerability

VMware Workstation target at the PwnFest hacking competition

Power of Community

PwnFest


Antonio Ropero
Twitter: @aropero

sábado, 30 de julio de 2016

Vulnerabilidades en Xen

Se han anunciado dos problemas de seguridad en Xen que podrían permitir a un atacante provocar condiciones de denegación de servicio en otros sistemas huéspedes o elevar privilegios en la máquina anfitriona.

Xen es un proyecto colaborativo de la fundación Linux centrado en la virtualización de hardware. Las tecnologías creadas son Xen Hypervisor (el estándar de virtualización del mundo del código abierto), Xen Cloud Platform (plataforma de soluciones en la red basada en la tecnología anterior) y Xen ARM, destinada a dispositivos móviles.

El primero de los problemas, con CVE-2016-6258, reside en un fallo en la actualización de entradas en la tabla de paginación que podría permitir a un usuario administrador local en un sistema huésped PV elevar sus privilegios en el sistema anfitrión. Se ven afectadas todas las versiones de Xen, aunque solo sobre sistemas huéspedes PV en hardware x86.

Se han publicado las siguientes actualizaciones:
Para xen-unstable, Xen 4.7.x
xsa182.patch:

Para Xen 4.6.x
xsa182-4.6.patch

para Xen 4.5.x, 4.4.x, 4.3.x
xsa182-4.5.patch

Por otra parte, con CVE-2016-6259, un usuario local en un sistema huésped PV 32-bits puede provocar un error en la comprobación de listas blancas en la característica Supervisor Mode Access Prevention (SMAP), lo que puede provocar la caída del hypervisor objetivo y condiciones de denegación de servicio en otros sistemas huésped. Se ven afectados sistemas x86 que soporten la característica SNAP (p.ej. Intel Broadwell y CPUs posteriores).

Se han publicado las siguientes actualizaciones:
Para xen-unstable, 4.7.x
xsa183.patch

Para Xen 4.6.x, 4.5.x
xsa183-4.6.patch

Más información:

Xen Security Advisory CVE-2016-6258 / XSA-182
x86: Privilege escalation in PV guests

Xen Security Advisory CVE-2016-6259 / XSA-183
x86: Missing SMAP whitelisting in 32-bit exception / event delivery



Antonio Ropero
Twitter: @aropero

domingo, 13 de diciembre de 2015

Vulnerabilidades de denegación de servicio en Xen

Se ha anunciado cuatro problemas de seguridad en Xen que podrían permitir a un atacante provocar condiciones de denegación de servicio en la máquina anfitriona.

Xen es un proyecto colaborativo de la fundación Linux centrado en la virtualización de hardware. Las tecnologías creadas son Xen Hypervisor (el estándar de virtualización del mundo del código abierto), Xen Cloud Platform (plataforma de soluciones en la red basada en la tecnología anterior) y Xen ARM, destinada a dispositivos móviles.

El primero de los problemas, con CVE-2015-8338, reside en determinadas llamadas HYPERVISOR_memory_op no limitan adecuadamente el límite de recursos empleados. Un usuario administrativo de un sistema huésped podría emplear esta vulnerabilidad para evitar el uso de la CPU y provocar condiciones de denegación de servicio en el sistema anfitrión. Afecta solo a versiones de Xen ARM.

Dos vulnerabilidades se deben a un tratamiento inadecuado de errores XENMEM_exchange (CVE-2015-8339 y CVE-2015-8340). Un usuario administrativo de un sistema huésped podría provocar una denegación de servicio en el sistema anfitrión. Afecta a todas las versiones desde la 3.2.

Por último, un problema cuando el sistema huésped está configurado para usar un PV bootloader que se ejecute como un proceso en el espacio del usuario en el dominio toolstack puede producir una pérdida del espacio de direcciones virtuales. Esto provoca que los archivos que contienen el kernel y el disco RAM inicial sean irrecuperables. Además el proceso toolstack puede quedarse sin memoria y crearse excesivos archivos en el dominio toolstack. Un usuario local de un sistema huésped podría provocar una denegación de servicio en el sistema anfitrión. Afecta a las versiones 4.1 y posteriores. (CVE-2015-8341).

Xen ha publicado actualizaciones para todos los problemas descritos. Dada la diversidad de parches y versiones afectadas se recomienda consultar los avisos de seguridad publicados, desde donde se encuentran disponibles:

Más información:

Xen Security Advisory CVE-2015-8338 / XSA-158
long running memory operations on ARM

Xen Security Advisory CVE-2015-8339,CVE-2015-8340 / XSA-159
XENMEM_exchange error handling issues

Xen Security Advisory CVE-2015-8341 / XSA-160
libxl leak of pv kernel and initrd on error




Antonio Ropero

Twitter: @aropero