Se ha presentado una nueva clase de vulnerabilidades en los procesadores Intel

La empresa Intel ha publicado información sobre el nuevo clase de vulnerabilidades en sus procesadores — MDS (Microarchitectural Data Sampling). Al igual que los ataques anteriores de la clase Spectre, los nuevos problemas pueden llevar a la filtración de datos confidenciales del sistema operativo, máquinas virtuales y procesos ajenos. Se afirma que los problemas fueron inicialmente detectados por empleados y socios de Intel durante una auditoría interna, tras lo cual investigadores independientes informaron sobre problemas similares en Intel. Los procesadores AMD y ARM no están afectados por esta problemática.

Basado en los problemas identificados por los investigadores de la Universidad Técnica de Graz (Austria) se han desarrollado varios ataques prácticos por canales laterales:

  • ZombieLoad (PDF) — permite extraer información confidencial de otros procesos, el sistema operativo, máquinas virtuales y entornos seguros (TEE, Trusted Execution Environment). Por ejemplo, se demostró la posibilidad de determinar el historial de apertura de páginas en Tor browser, ejecutándose en otra máquina virtual, así como identificar las claves de acceso y contraseñas utilizadas en aplicaciones;


  • RIDL (PDF) — permite organizar la filtración de información entre diversas áreas aisladas en los procesadores Intel, como buffers de llenado, buffers de almacenamiento y puertos de carga. Se presentan ejemplos de ataques que facilitan filtraciones desde otros procesos, el sistema operativo, máquinas virtuales y entornos seguros. Por ejemplo, se mostró cómo conocer el contenido del hash de la contraseña root desde /etc/shadow mediante intentos de autenticación periódicos (el ataque tomó 24 horas);

    Reproducir video

    Además, se presenta un ejemplo de ataque utilizando JavaScript y WebAssembly al abrir una página maliciosa en el motor SpiderMonkey (en navegadores modernos completos, este tipo de ataque es poco probable debido a las limitaciones en la precisión del temporizador y las medidas de protección contra Spectre);

    Reproducir video
  • Fallout (PDF) — permite leer datos que han sido recientemente escritos por el sistema operativo y determinar la disposición de la memoria del sistema operativo para facilitar la ejecución de otros ataques;
  • Store-To-Leak Forwarding — explota optimizaciones del CPU en su manejo de buffers de almacenamiento y puede ser utilizado para eludir el mecanismo de aleatorización del espacio de direcciones del núcleo (KASLR), para monitorear el estado del sistema operativo o para organizar filtraciones en combinación con dispositivos basados en métodos Spectre.

Identificados una vulnerabilidad:

  • CVE-2018-12126 — MSBDS (Muestreo de Datos del Buffer de Almacenamiento Microarquitectónico), recuperación del contenido de los buffers de almacenamiento. Se utiliza en el ataque Fallout. El nivel de peligrosidad está determinado en 6.5 puntos (CVSS);
  • CVE-2018-12127 — MLPDS (Muestreo de Datos del Puerto de Carga Microarquitectónico), recuperación del contenido de los puertos de carga. Se utiliza en el ataque RIDL. CVSS 6.5;
  • CVE-2018-12130 — MFBDS (Muestreo de Datos del Buffer de Relleno Microarquitectónico), recuperación del contenido de los buffers de relleno. Se utiliza en los ataques ZombieLoad y RIDL. CVSS 6.5;
  • CVE-2019-11091 — MDSUM (Muestreo de Datos Microarquitectónicos de Memoria No Cachéable), recuperación del contenido de la memoria no cachéable. Se utiliza en el ataque RIDL. CVSS 3.8.

Esencia problemas identificados en la aplicación de métodos de análisis por canales laterales a datos en estructuras microarquitectónicas a las que las aplicaciones no tienen acceso directo. Se trata de estructuras de bajo nivel, como buffers de relleno (Line Fill Buffer), buffers de almacenamiento (Store Buffer) y puertos de carga (Load Port), que son bloques más pequeños que la caché de primer nivel (L1D), la caché de carga de datos (RDCL) o L1TF (L1 Terminal Fault), y que, por lo tanto, contienen menos información y se actualizan con mayor intensidad.

Se ha presentado una nueva clase de vulnerabilidades en los procesadores Intel

Los ataques por canales laterales a estructuras microarquitectónicas son significativamente más difíciles de llevar a cabo en comparación con los métodos de recuperación del contenido de la caché y requieren el seguimiento y análisis de grandes volúmenes de datos para determinar su relación con direcciones específicas en la memoria (esencialmente, el atacante no puede interceptar datos específicos de forma intencionada, sino que puede acumular filtraciones durante un tiempo prolongado y utilizar métodos estadísticos para reconstruir ciertos tipos de datos). Además, el ataque solo afecta a datos en el mismo núcleo físico de CPU que el código del atacante.

Los métodos propuestos para identificar el contenido de estructuras microarquitectónicas se basan en que estas estructuras son utilizadas durante el procesamiento especulativo de excepciones (fault) u operaciones de carga y almacenamiento.
Durante la ejecución especulativa, el contenido de las estructuras internas se redirige para su procesamiento en registros o caché. Las operaciones especulativas no se completan y el resultado se descarta, pero el contenido redirigido se puede determinar mediante métodos de análisis de caché por canales laterales.

Los puertos de carga son utilizados por el procesador para obtener datos de la memoria o subsistema de entrada/salida y proporcionar la información obtenida a los registros de la CPU. Debido a la particularidad de la implementación, los datos de operaciones de carga previas permanecen en los puertos hasta que sean sobrescritos por nuevos datos, lo que permite determinar indirectamente el estado de los datos en el puerto de carga a través de manipulaciones con excepciones (fault) e instrucciones SSE/AVX/AVX-512 que cargan más de 64 bits de datos. En tales condiciones, las operaciones de carga iluminan especulativamente los valores obsoletos de datos desde las estructuras internas en operaciones dependientes. Similarmente se organiza la filtración a través del búfer de almacenamiento, que se utiliza para acelerar la escritura en la caché de la CPU e incluye una tabla de direcciones, valores y flags, así como través del búfer de llenado, que contiene datos que aún no están en la caché L1 (cache-miss), mientras se cargan desde cachés de otros niveles.

Se ha presentado una nueva clase de vulnerabilidades en los procesadores Intel

Problema afecta modelos de procesadores Intel, lanzados desde 2011 (comenzando desde la sexta generación). Las vulnerabilidades de hardware se bloquean a partir de ciertos modelos de octava y novena generación de Intel Core y segunda generación de Intel Xeon Scalable (se puede verificar a través del bit ARCH_CAP_MDS_NO en IA32_ARCH_CAPABILITIES MSR). Las vulnerabilidades también ya han sido solucionadas a nivel de firmware, microcódigo y sistemas operativos. Según Intel, la pérdida de rendimiento tras la activación de la corrección para la mayoría de los usuarios no excede 3%. Al desactivar la tecnología Hyper-Threading, la disminución del rendimiento puede alcanzar hasta el 9% en la prueba SPECint_rate_base, hasta el 11% en cálculos enteros intensivos y hasta el 19% al ejecutar aplicaciones Java en servidor (con HT activado, la disminución del rendimiento es casi inexistente). Las correcciones prácticamente no afectan al rendimiento de las operaciones relacionadas con la entrada/salida.

En el núcleo de Linux, la protección contra MDS se ha añadido en las actualizaciones 4.19.43, 4.14.119 y 4.9.176. El método de protección 5.1.2, 5.0.16,
se basa en construido sobre la limpieza del contenido de los búferes microarquitectónicos al regresar del núcleo al espacio de usuario o al transferir el control al sistema invitado, para lo cual se utiliza la instrucción VERW. Para que los parches funcionen, es necesario contar con soporte para el modo MD_CLEAR, implementado en la reciente actualización del microcódigo. Para una protección completa, también se recomienda desactivar el Hyper Threading. Para verificar la vulnerabilidad del sistema en el núcleo de Linux se ha agregado manejador «/sys/devices/system/cpu/vulnerabilities/mds». Para gestionar la activación de diferentes modos de bloqueo de vulnerabilidades en el núcleo, se ha añadido el parámetro «mds=», que puede aceptar los valores «full», «full,nosmt» (desactivación de Hyper-Threads), «vmwerv» y «off».

Las actualizaciones de paquetes ya han sido lanzadas para RHEL y Ubuntu, pero aún no están disponibles para Debian, Fedora y SUSE.
La solución para bloquear las fugas de datos de máquinas virtuales también se ha formado para el hipervisor Xen. Para proteger los sistemas de virtualización que ejecutan el comando L1D_FLUSH antes de transferir el control a otra máquina virtual, y para proteger enclaves Intel SGX, basta con la actualización del microcódigo.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster