Investigadores de la Universidad de Ohio han desarrollado una serie de ataques basados en fallos de diseño de procesadores revelados por Spectre. El objetivo, SGX de Intel, una extensión de la arquitectura que permite ejecutar código de forma privada tal que ni siquiera el sistema operativo pueda observar.
Apenas hace dos meses de la presentación pública de Meltdown y Spectre, aquellas vulnerabilidades que han hecho historia en el mundo de la seguridad informática. Con consecuencias tan graves como poder leer la memoria reservada a otros procesos o incluso al sistema operativo, ocasionaron una gran polémica y consecuencias que durarán años. Tal y como analizamos en su día, ambas vulnerabilidades se deben a fallos de diseño en los procesadores, que con el objetivo de exprimir al máximo el silicio y aumentar el rendimiento, abrieron la puerta a una clase de vulnerabilidades que perdurarán años.
Precisamente, el ataque del que hablamos aprovecha estos fallos de diseño. Es una variación de Spectre (la que permitía leer memoria de los procesos con trozos de código vulnerables) orientada a leer memoria de enclaves SGX. ¿Y qué es un enclave SGX? Resumidamente, es una forma de ejecutar código en procesadores Intel que lo soporten, de forma que ni siquiera el sistema operativo o un hipervisor puedan acceder a la memoria involucrada en la ejecución. El objetivo más llamativo de SGX es ejecutar código sensible en un servidor remoto ejecutando software no confiable.
Superficie expuesta a ataques sin y con SGX. Extraída de software.intel.com. |
Esto vendría a intentar solucionar el gran problema de la computación en la nube: El que un tercero procese datos sensibles por ti. Aunque lo cierto es que la implementacion deja un poco que desear. Desde que salió, unas cuantas publicaciones han ido contándonos cómo básicamente SGX hace aguas por varios sitios, permitiendo leer del preciado enclave, que se presuponía privado. Por no hablar de que para convertirte en confiable y así poder ejecutar un enclave ajeno (de un cliente), hay que contactar con servidores propios de Intelcomo piezas imprescindibles del proceso de verificación… Pagando, por supuesto.
La familia de ataques SgxPectre no son una revolución conceptual. Tal y como dicen los autores de la publicación, los conceptos de estos ataques son básicamente los mismos en los que se fundamenta Spectre. De hecho, ni siquiera son una revolución en la aplicación de Spectre a SGX, ya que existen reportes sobre la vulnerabilidad de SGX a ataques derivados de Spectre publicados apenas unos días después de la publicación de éste último, incluyendo una prueba de concepto de un grupo de investigación del Imperial College de Londres. Esta publicación aporta una explicación exhaustiva de los ataques, y presenta un verificador de código para detectar los trozos de código vulnerables que permiten estos ataques.
Los usuarios de a pie apenas se verán afectados por estos ataques, ya que SGX se usa en extensiones del procesador relativamente modernas y sólo en procesadores Intel. Evidentemente un producto orientado al usuario final no se puede restringir a funcionar únicamente en procesadores Intel modernos. Aquellos que programen usando SGX deberán esperar al 16 de marzo, que es cuando Intel prometer publicar el SDKcorregido (SDK: kit de desarrollo de software, que estaba produciendo los trozos de código vulnerables). Esto junto con las mitigaciones ya publicadas para Meltdown y Spectre, deberían neutralizar estos ataques.