L1D Eviction Sampling, L1DES o también conocido CacheOut es una de las nuevas amenazas que se suman a la lista de conocidos que permiten la posibilidad de atacar las CPU Intel a través de la ejecución de código especulativo. Siendo esta la tercera vez en menos de un año en la que Intel ha presentado un nuevo conjunto de vulnerabilidades relacionadas con la funcionalidad especulativa de sus procesadores.
Ya que el inicio de los problemas de Intel inicio con Spectre y Meltdown, y que despuƩs dieron paso con mƔs vulnerabilidades identificadas desde entonces, incluyendo SPOILER, Foreshadow, SwapGS, ZombieLoad, RIDL y Fallout. Pues los nuevos ataques afectan a las CPU Intel fabricadas antes del cuarto trimestre de 2018.
A diferencia de las vulnerabilidades de MDS (Microarchitectural Data Sampling), segĆŗn el sitio web CacheOut:
Un atacante puede utilizar los mecanismos de almacenamiento en cachĆ© de las CPU para seleccionar especĆficamente los datos que se van a filtrar.
Sus descubridores ven la vulnerabilidad CacheOut como otro ataque a la ejecución especulativa y una consecuencia indirecta de Spectre y Meltdown.
Y es que los investigadores de VUSec parecen haber descubierto la vulnerabilidad en paralelo, pues según el CVE, CacheOut es idéntico a una variante RIDL, a la que sus descubridores se refieren como L1DES (siguen el nombre oficial de Intel como L1D Eviction Sampling)
En un nivel alto, CacheOut fuerza la contención en el caché L1-D para desalojar los datos que apunta desde el caché. Describimos dos variantes.
Primero, en el caso de que el cachĆ© contenga datos modificados por la vĆctima, el contenido de la lĆnea de cachĆ© transita a travĆ©s de los LFB mientras se escribe en la memoria.
En segundo lugar, cuando el atacante desea filtrar datos que la vĆctima no modifica, el atacante primero desaloja los datos del cachĆ© y luego los obtiene cuando transita a travĆ©s de los buffers de llenado de lĆnea para satisfacer una lectura simultĆ”nea de la vĆctima.
Los mecanismos de defensa de colapso de Intel no tendrĆan ningĆŗn efecto contra CacheOut, pero ayudan a que la vulnerabilidad no podrĆa ser explotada a travĆ©s del navegador.
VUSec tambiƩn ofrece un exploit de prueba de concepto para la vulnerabilidad en Github. La vulnerabilidad lleva el CVE-2020-0549 como CacheOut.
Mientras que Intel también le asigna su propio código (INTEL-SA-00329) y lo clasifica como moderado (6.5). Según el propio Intel, los datos del caché de datos L1 (L1D) se pueden redirigir a un búfer L1D no utilizado (búfer de relleno).
Los datos se pueden filtrar y leer especĆficamente desde este bĆŗfer de relleno a travĆ©s de ataques de canal lateral. Por lo tanto, Intel llama a este mĆ©todo de lectura L1D Eviction Sampling y considera a las vĆctimas potenciales como un subconjunto de L1TF (Foreshadow y Foreshadow-NG). A diferencia de Foreshadow, los atacantes no deberĆan poder consultar especĆficamente direcciones fĆsicas con CacheOut.
La otra de las vulnerabilidades que se han revelado e Intel rastrea como Vector Register Sampling (VRS), es la menos critica ya que Intel dice que esta falla es menos grave debido a que la complejidad del ataque es alta y las posibilidades de que un atacante obtenga datos relevantes son bajas. AdemƔs de que VRS tambiƩn se considera una nueva variante del ataque RIDL.
VRS esta relacionada con una fuga en el Store Buffer de los resultados de las operaciones de lectura de los registros vectoriales que se modificaron durante la ejecución de las instrucciones vectoriales (SSE, AVX, AVX-512) en el mismo núcleo de la CPU.
La fuga ocurre en un conjunto de circunstancias muy especiales y es causada por el hecho de que una operación especulativa realizada, que lleva al reflejo del estado de los registros de vectores en el búfer de almacenamiento, se retrasa y termina después de que se despeja el búfer, y no antes.
Finalmente, Intel, anuncio que en cuestión de semanas tendrĆa preparadas las actualizaciones pertinentes para solucionar estos fallos.
Mientras que para las CPU AMD, ARM e IBM no se ven afectadas por estas vulnerabilidades.
Los exploits de las vulnerabilidades se pueden encontrar en los siguientes enlaces.