SWAPGS Attack, un “nuevo Spectre” que afecta a procesadores Intel
Se ha descubierto una nueva variante de Spectre (Variant 1) que afecta a procesadores Intel modernos y, probablemente, algunos procesadores AMD. Microsoft y Red Hat han sido los encargados de dar la alarma, puesto que SWAPGS es una vulnerabilidad que podría permitir a un atacante local sin privilegios acceder a información privilegiada almacenada en la memoria del kernel privilegiado del sistema operativo, incluidas contraseñas, tokens y claves de cifrado que de otro modo serían inaccesibles.
La ejecución especulativa es un componente central del diseño de los microprocesadores modernos que ejecutan especulativamente instrucciones basadas en suposiciones que son consideradas como posiblemente ciertas. Si las suposiciones resultan válidas, la ejecución continúa; de lo contrario, se descarta. Una ejecución especulativa como esta también tiene efectos secundarios que no se restauran cuando se desenrolla el estado de la CPU, lo que lleva a la divulgación de información a la que luego se puede acceder por medio de ataques de canal lateral.
Los usuarios de Linux somos menos vulnerables a SWAPGS
La instrucción SWAPGS es una instrucción de sistema privilegiada que intercambia los valores en el registro GS con los valores MSR y solo está disponible en dispositivos con arquitectura x86-64. El ataque SWAPGS rompe el aislamiento de la tabla de páginas del núcleo (KPTI) proporcionado por las CPU modernas y se puede utilizar para filtrar la memoria del núcleo sensible del modo de usuario no privilegiado. El nuevo ataque evita todas las mitigaciones conocidas implementadas después del descubrimiento de las vulnerabilidades de Spectre y Meltdown a principios de 2018 que ponen en riesgo prácticamente todos los ordenadores del mundo.
Sin publicar ningún comunicado importante, Microsoft lanzó el parche para protegernos de SWAPGS en su actualización de julio de 2019. Google tiene preparado un parche para su ChromeOS que lanzará pronto. Por otra parte, los usuarios de Linux estamos un poco más seguro porque, según los investigadores de seguridad, aunque el kernel de Linux también contiene un componente que puede ser explotado, hacerlo en Linux es un poco más difícil que en sistemas Windows.
Lo bueno o lo que nos debe tranquilizar a todos es que el fallo debe ser explotado localmente, por lo que no corremos ningún peligro si solo dejamos que nuestro equipo lo toquen personas de confianza.