Investigadores de la Vrije Universiteit Amsterdam han dado a conocer un reciente ataque de canal lateral denominado SLAM que podría ser aprovechado para filtrar información confidencial de la memoria del kernel en las CPU actuales y futuras de Intel, AMD y Arm.
Este ataque representa una explotación integral de Spectre basada en una novedosa característica presente en las CPU de Intel llamada Linear Address Masking (LAM), así como en sus equivalentes análogos de AMD (conocidos como Upper Address Ignore o UAI) y Arm (referidos como Top Byte Ignore o TBI).
A pesar de que LAM se presenta como una medida de seguridad, el estudio revela irónicamente que esta característica degrada la seguridad y aumenta de manera «dramática» la superficie de ataque de Spectre, dando lugar a un ataque de ejecución transitoria que explota la ejecución especulativa para extraer datos sensibles mediante un canal encubierto en la caché.
Caracterizado como el primer ataque de ejecución transitoria dirigido a futuras CPU, SLAM se beneficia de un nuevo canal encubierto basado en una traducción de dirección no canónica que facilita la explotación práctica de gadgets Spectre genéricos para filtrar información valiosa. Este afecta a las siguientes CPU:
- CPU de AMD existentes vulnerables a CVE-2020-12965
- Futuras CPU de Intel que admitan LAM (tanto de paginación de 4 como de 5 niveles)
- Futuras CPU de AMD que admitan UAI y paginación de 5 niveles
- Futuras CPU de Arm que admitan TBI y paginación de 5 niveles
AMD también ha señalado las mitigaciones actuales de Spectre v2 para abordar la explotación de SLAM. En cambio, Intel tiene la intención de proporcionar orientación de software antes del lanzamiento futuro de procesadores Intel que admitan LAM. Mientras tanto, los mantenedores de Linux han desarrollado parches para desactivar LAM de forma predeterminada.
Estos resultados emergen aproximadamente dos meses después de que VUSec presentara Quarantine, un enfoque exclusivamente basado en software para mitigar ataques de ejecución transitoria y lograr un aislamiento de dominio físico mediante la partición de la caché de último nivel (LLC), asignando a cada dominio de seguridad acceso exclusivo a una porción diferente del LLC con el objetivo de eliminar canales encubiertos en el LLC.