Windows, Linux y macOS han recibido parches de seguridad, para proteger a los usuarios de los problemas relacionados con Meltdown y Spectre, de los procesadores actuales que han salido a la luz recientemente. Estos parches modifican la forma en la que el sistema operativo maneja la memoria virtual del procesador, ya que es precisamente ahí, donde reside el problema.
Las vulnerabilidades Meltdown y Spectre afectan a todos los procesadores actuales
Estos defectos de seguridad han sido llamados Meltdown y Spectre. Ambas vulnerabilidades se aprovechan del hecho de que todos los procesadores actuales ejecutan las instrucciones de forma especulativa, es decir que suponen que, por ejemplo, una condición dada será verdadera y ejecutarán las instrucciones correspondientes. Si más tarde resulta que la condición era falsa, las instrucciones ejecutadas especulativamente se descartan como si no tuvieran ningún efecto.
Aunque los efectos descartados de esta ejecución especulativa no alteran el resultado de un programa, sí realizan cambios en las características arquitectónicas de nivel más bajo de los procesadores. Por ejemplo, la ejecución especulativa puede cargar datos en la memoria caché, incluso si resulta que los datos nunca deberían haberse cargado en primer lugar. La presencia de los datos en la memoria caché se puede detectar. Otras estructuras de datos en el procesador, como el predictor de bifurcación, también se pueden sondear y medir su rendimiento, lo que se puede usar de manera similar para revelar información sensible.
Mejores procesadores del mercado (Enero 2018)
Meltdown es el problema que estimuló la llegada de los parches del sistema operativo. Esta debilidad utiliza la ejecución especulativa para filtrar datos del kernel a programas de usuario regulares. Todos los procesadores modernos, incluidos los de Intel, AMD y ARM, realizan especulaciones sobre los accesos a la memoria, aunque los procesadores de Intel lo hacen de una manera particularmente agresiva y por ello son los más vulnerables. Los chips Intel permiten a los programas de los usuarios utilizar de forma especulativa los datos del kernel y la verificación de acceso ocurre algo después de que la instrucción comienza a ejecutarse.
Los propietarios de los sistemas AMD y ARM no deberían estar tranquilos a causa de Spectre. Spectre es un ataque más general, basado en una gama más amplia de características de ejecución especulativa. Los ataques de espectre se pueden usar tanto para filtrar información desde el kernel a programas de usuario, como también desde hipervisores de virtualización a sistemas invitados.
[irp]
Además, Spectre no ofrece ninguna solución directa. La especulación es esencial para los procesadores de alto rendimiento, y aunque puede haber formas limitadas de bloquear ciertos tipos de ejecución especulativa, no se conocen las técnicas generales que defenderán contra cualquier fuga de información debido a la ejecución especulativa.