Investigadores de la Universidad Técnica de Graz (Austria) información sobre un nuevo método de ataque a través de canales secundarios (), que permite extraer información confidencial de otros procesos, del sistema operativo, de máquinas virtuales y de enclaves seguros (TEE, Trusted Execution Environment). El problema afecta únicamente a los procesadores Intel. Los componentes para bloquear el problema en la actualización de microcódigo .
El problema pertenece a la categoría MDS (Microarchitectural Data Sampling) y es una versión modernizada de en mayo del ataque ZombieLoad. ZombieLoad 2.0, al igual que otros ataques de la clase MDS, se basa en la aplicación de métodos de análisis a través de canales secundarios sobre datos en estructuras microarquitectónicas (por ejemplo, en los búferes de llenado (Line Fill Buffer) y almacenamiento (Store Buffer), donde se almacenan temporalmente los datos utilizados en la ejecución de operaciones Load y Store).
La nueva variante del ataque ZombieLoad en la fuga que ocurre al trabajar con el mecanismo de interrupción asíncrona de operaciones (TAA, TSX Asynchronous Abort), implementado en la extensión TSX (Transactional Synchronization Extensions), que proporciona medios para trabajar con memoria transaccional, permitiendo mejorar el rendimiento de aplicaciones multiproceso mediante la exclusión dinámica de operaciones de sincronización innecesarias (se soportan transacciones atómicas que pueden ser aceptadas o interrumpidas). En caso de una interrupción, las operaciones realizadas con la región transaccional de la memoria son revertidas.
La interrupción de la transacción se lleva a cabo de manera asíncrona, y durante este tiempo otros hilos pueden acceder a la caché, que también se utiliza en la región transaccional de memoria que se descarta. En el momento desde el inicio hasta la finalización real de la interrupción asíncrona de la transacción, no se descartan situaciones en las que el procesador, durante la ejecución especulativa de la operación, puede leer datos de los búferes internos microarquitectónicos y transferirlos a la operación que se ejecuta especulativamente. Luego se detectará un conflicto y la operación especulativa será desechada, pero los datos permanecerán en la caché y podrán ser extraídos utilizando métodos de recuperación de caché a través de canales secundarios.
El ataque consiste en abrir transacciones TSX y crear condiciones para su interrupción asíncrona, durante la cual se generan circunstancias para la fuga de contenido de los búferes internos, llenos de forma especulativa con datos de las operaciones de lectura de memoria que se están ejecutando en el mismo núcleo de la CPU. La fuga está limitada al núcleo físico actual de la CPU (donde se ejecuta el código del atacante), pero dado que los búferes microarquitectónicos se comparten entre diferentes hilos en modo Hyper-Threading, puede producirse una fuga de operaciones de memoria que se ejecutan en otros hilos de la CPU.
Ataque a ciertos modelos de las generaciones octava, novena y décima de procesadores Intel Core, así como Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W y la segunda generación de Intel Xeon Scalable. También son susceptibles al ataque los nuevos procesadores Intel basados en la microarquitectura Cascade Lake presentada en abril, que inicialmente no era vulnerable a los ataques RIDL y Fallout. Además de Zombieload 2.0, los investigadores también identificaron la posibilidad de eludir los métodos de protección previamente propuestos contra los ataques MDS, basados en el uso de la instrucción VERW para limpiar el contenido de los búferes microarquitectónicos al regresar del núcleo al espacio del usuario o al transferir el control al sistema huésped.
En el informe de Intel se afirma que en sistemas con cargas de trabajo heterogéneas, la posibilidad de llevar a cabo el ataque se ve dificultada, ya que la fuga de estructuras microarquitectónicas abarca toda la actividad del sistema y el atacante no puede influir en la fuente de los datos extraídos, es decir, solo puede acumular la información que aparece como resultado de la fuga y tratar de identificar entre esos datos la información útil, sin la posibilidad de interceptar intencionadamente los datos relacionados con direcciones de memoria específicas. Sin embargo, los investigadores han publicado , que funciona en Linux y Windows, y también se ha demostrado la posibilidad de aplicar el ataque para determinar el hash de la contraseña del usuario root.
realizar el ataque desde el sistema huésped para acumular datos que aparecen en las operaciones de otros sistemas huéspedes, del entorno host, del hipervisor y de los enclaves Intel SGX.

Las correcciones para bloquear la vulnerabilidad se han incluido en la base de código del núcleo de Linux y han sido parte de las versiones . Actualizaciones con el núcleo y microcódigo también ya se han lanzado para las principales distribuciones (, , , , , ). El problema fue identificado en abril y la corrección fue coordinada por Intel con los desarrolladores de sistemas operativos.
El método más simple para bloquear Zombieload 2.0 es desactivar el soporte TSX en el CPU. La corrección propuesta para el núcleo de Linux incluye varias opciones de protección. La primera opción propone el parámetro "tsx=on/off/auto", que permite controlar la activación de la extensión TSX en el CPU (el valor auto desactiva TSX solo para CPUs vulnerables). La segunda opción de protección se activa con el parámetro "tsx_async_abort=off/full/full,nosmt" y se basa en limpiar los búferes microarquitectónicos durante el cambio de contexto (el flag nosmt desactiva además SMT/Hyper-Threads). Para verificar si el sistema es vulnerable, en sysfs se proporciona el parámetro "/sys/devices/system/cpu/vulnerabilities/tsx_async_abort".
Además, en microcódigo otra más () en los procesadores Intel, que también está bloqueada en la reciente núcleo de Linux. La vulnerabilidad permite a un atacante no privilegiado inducir una denegación de servicio, llevando al sistema a un estado de "Error de Comprobación de Máquina".
El ataque también desde un sistema invitado.
Fuente: opennet.ru
