Vulnerabilidad de CPU de ejecución transitoria - Transient execution CPU vulnerability

Las vulnerabilidades de CPU de ejecución transitoria son vulnerabilidades en un sistema informático en el que se explota una optimización de ejecución especulativa implementada en un microprocesador para filtrar datos secretos a una parte no autorizada. El ejemplo clásico es Spectre que dio nombre a este tipo de ataque de canal lateral , pero desde enero de 2018 se han identificado muchas vulnerabilidades diferentes.

Visión general

Las computadoras modernas son dispositivos altamente paralelos, compuestos por componentes con características de desempeño muy diferentes. Si una operación (como una bifurcación) aún no se puede realizar porque alguna operación lenta anterior (como una lectura de memoria) aún no se ha completado, un microprocesador puede intentar predecir el resultado de la operación anterior y ejecutar la operación posterior de forma especulativa , actuando como si la predicción fuera correcta. La predicción puede basarse en el comportamiento reciente del sistema. Cuando se completa la operación anterior y más lenta, el microprocesador determina si la predicción fue correcta o incorrecta. Si fue correcto, la ejecución continúa sin interrupciones; si era incorrecta, el microprocesador revierte las operaciones ejecutadas especulativamente y repite la instrucción original con el resultado real de la operación lenta. Específicamente, una instrucción transitoria se refiere a una instrucción procesada por error por el procesador (incriminando el predictor de rama en el caso de Spectre ) que puede afectar el estado de la microarquitectura del procesador, dejando el estado de la arquitectura sin rastro de su ejecución.

En términos del comportamiento directamente visible de la computadora, es como si el código ejecutado especulativamente "nunca hubiera sucedido". Sin embargo, esta ejecución especulativa puede afectar el estado de ciertos componentes del microprocesador, como la memoria caché , y este efecto puede descubrirse mediante la supervisión cuidadosa de la sincronización de las operaciones posteriores.

Si un atacante puede hacer que el código ejecutado especulativamente (que puede ser escrito directamente por el atacante, o puede ser un dispositivo adecuado que haya encontrado en el sistema de destino) opere con datos secretos a los que no está autorizado a acceder, y tiene una diferente efecto sobre la caché para diferentes valores de los datos secretos, es posible que puedan descubrir el valor de los datos secretos.

A partir de 2017, se identificaron múltiples ejemplos de tales vulnerabilidades, y la publicación comenzó a principios de 2018.

En marzo de 2021, los investigadores de seguridad de AMD descubrieron que el algoritmo Predictive Store Forwarding en las CPU Zen 3 podría ser utilizado por aplicaciones maliciosas para acceder a datos a los que no deberían acceder. Según Phoronix, la desactivación de la función tiene poco impacto.

En junio de 2021, se descubrieron dos nuevas vulnerabilidades, Speculative Code Store Bypass (SCSB, CVE-2021-0086 ) y Floating Point Value Injection (FPVI, CVE-2021-0089 ), que afectan a todas las CPU x86-64 modernas de Intel y AMD. . Para mitigarlos, el software debe reescribirse y recompilarse. Las CPU ARM no se ven afectadas por SCSB, pero algunas arquitecturas ARM se ven afectadas por FPVI.

En agosto de 2021, no se reveló una vulnerabilidad llamada "Ejecución transitoria de accesos no canónicos" que afectaba a ciertas CPU de AMD. Requiere las mismas mitigaciones que la vulnerabilidad de MDS que afecta a ciertas CPU de Intel. Se le asignó CVE-2020-12965 . Dado que la mayoría del software de software x86 ya está parcheado contra MDS y esta vulnerabilidad tiene exactamente las mismas mitigaciones, los proveedores de software no tienen que abordar esta vulnerabilidad.

En octubre de 2021, por primera vez, se reveló que una vulnerabilidad similar a Meltdown afectaba a todas las CPU de AMD; sin embargo, la compañía no cree que sea necesario aplicar nuevas mitigaciones y las existentes ya son suficientes.

Resumen de vulnerabilidades y mitigaciones

Tipo de mitigación Exhaustividad Eficacia Impacto en el rendimiento
Hardware Lleno Lleno Ninguno ... Pequeño
Actualización del microcódigo de firmware Parcial Parcial ... Completo Ninguno ... Grande
OS / VMM Parcial Parcial ... Completo Pequeño grande
Recompilación de software Pobre Parcial ... Completo Mediano grande

Las mitigaciones de hardware requieren un cambio en el diseño de la CPU y, por lo tanto, una nueva iteración del hardware, pero imponen una pérdida de rendimiento cercana a cero. Las actualizaciones de microcódigo alteran el software en el que se ejecuta la CPU, lo que requiere que se publiquen e integren parches en cada sistema operativo y para cada CPU. Las mitigaciones de OS / VMM se aplican a nivel del sistema operativo o de la máquina virtual y (según la carga de trabajo) a menudo incurren en una pérdida de rendimiento bastante significativa. La recompilación de software requiere volver a compilar cada pieza de software y, por lo general, implica un impacto severo en el rendimiento.

Nombre de la vulnerabilidad

(alias)

CVE Arquitecturas y mitigaciones de CPU afectadas
Intel AMD
Lago de hielo Lago Cascade ,
Lago Comet
Lago Whisky ,
Lago Amber
Coffee Lake
(novena generación)
Coffee Lake
(8.a generación) *
Zen 1 / Zen 1+ Zen 2
Spectre v1
Bounds Check Bypass
2017-5753 Recompilación de software Recompilación de software
Inyección de destino de rama de Spectre v2
2017-5715 Hardware + SO Microcódigo + SO Microcódigo + SO Microcódigo + OS / VMM Hardware + SO / VMM
Error de predicción de retorno de SpectreRSB / ret2spec 2018-15572 SO
Carga de caché de datos de Meltdown
Rogue
2017-5754 No afectado Microcódigo No afectado
Spectre-NG v3a 2018-3640 No afectado Microcódigo
Omisión de almacenamiento especulativo de Spectre-NG v4
2018-3639 Hardware + SO / VMM Microcódigo + SO OS / VMM Hardware + SO / VMM
Presagio
L1 Terminal Fallo , L1TF
2018-3615 No afectado Microcódigo No afectado
Restauración de estado de FP perezoso de Spectre-NG
2018-3665 OS / VMM
Spectre-NG v1.1
Tienda de derivación de verificación de límites
2018-3693 OS / VMM

Derivación de protección de solo lectura (RPB) de Spectre-NG v1.2
Sin CVE y nunca ha sido confirmado por Intel No afectado
Foreshadow-OS
L1 Terminal Fault (L1TF)
2018-3620 No afectado Microcódigo + SO No afectado
Foreshadow-VMM
L1 Terminal Fault (L1TF)
2018-3646

Muestreo de datos de búfer de relleno de microarquitectura RIDL / ZombieLoad (MFBDS)
2018-12130

Muestreo de datos del puerto de carga de microarquitectura RIDL (MLPDS)
2018-12127 No afectado No afectado No afectado Microcódigo + SO
RIDL
la microarquitectura de muestreo de datos de memoria no almacenable en caché (MDSUM)
2019-11091 No afectado Microcódigo + SO

Muestreo de datos de búfer de almacenamiento de microarquitectura de Fallout (MSBDS)
2018-12126 Microcódigo No afectado No afectado Microcódigo + SO
Spectre SWAPGS 2019-1125 Igual que Spectre 1
RIDL / ZombieLoad v2
Transactional Asynchronous Abort (TAA)
2019-11135 No afectado Microcódigo + SO

Muestreo de desalojo de RIDL / CacheOut L1D (L1DES)
2020-0549 No afectado

Muestreo de registros vectoriales RIDL (VRS)
2020-0548
Inyección de valor de carga (LVI) 2020-0551 Recopilación de software
Quitar No afectado Aún no arreglado (disputado)

Muestreo de datos de búfer de registro especial CROSSTalk (SRBDS)
2020-0543 No afectado Microcódigo No afectado
Lado siego Sin CVE, se basa en sistemas sin parches.

La arquitectura Coffee Lake de octava generación en esta tabla también se aplica a una amplia gama de CPU Intel lanzadas anteriormente, sin limitarse a las arquitecturas basadas en Intel Core , Pentium 4 e Intel Atom a partir de Silvermont . Varias microarquitecturas de CPU no incluidas anteriormente también se ven afectadas, entre ellas IBM Power , ARM , MIPS y otras.

Futuro

Las vulnerabilidades de la clase Spectre permanecerán sin corregir porque, de lo contrario, los diseñadores de CPU tendrán que deshabilitar OoOE, lo que implicará una pérdida masiva de rendimiento.

Las CPU Intel más allá de Ice Lake, por ejemplo, Rocket Lake y Tiger Lake , no se ven afectadas por Fallout / MSBDS.

Notas

1. ^ El paso 5 de los procesadores escalables Intel® Xeon® de segunda generación basados ​​en la microarquitectura Cascade Lake se ve afectado tanto por MSBDS como por MLPDS.

Referencias

enlaces externos

  1. Vulnerabilidades asociadas con la ejecución especulativa de la CPU
  2. Una evaluación sistemática de los ataques de ejecución transitoria y las defensas.
  3. Un árbol dinámico de vulnerabilidades de ejecución transitoria para CPU Intel, AMD y ARM
  4. Ataques de ejecución transitorios por Daniel Gruss, 20 de junio de 2019
  5. Errores de CPU
  6. Intel: Terminología refinada de ejecución especulativa