Microprocessors' vulnerabilitiesLa innovación en microprocesadores está en la base del progreso tecnológico: una industria que demanda velocidades de ejecución cada vez mayores, y que ha generado un progreso enorme a lo largo de las últimas décadas. Por eso, las nuevas vulnerabilidades descubiertas en los microprocesadores de todos nuestros dispositivos modernos y comunicadas de manera general ayer, Meltdown y Spectre, tienen un nivel de criticidad tan sumamente elevado, aunque en la práctica poco podamos hacer con respecto a ellas.

¿Qué deberíamos saber al respecto? Fueron descubiertas por investigadores en seguridad: la primera, Meltdown, se debe al trabajo independiente de tres equipos en la Universidad Técnica de Graz, en Cyberus Technology y en Google Project Zero; la segunda, Spectre, también en Google Project Zero y por el investigador Paul Kocher. El descubrimiento, como ocurre en muchas ocasiones en cuestiones relacionadas con la seguridad, se remonta a hace algunos meses, durante los cuales han podido presuntamente ocurrir cosas como que algunos de los implicados se preparasen para ofrecer seguridad a sus usuarios, y otros se dedicasen a vender rápidamente acciones de sus propias compañías.

¿En qué consisten? Todos los microprocesadores modernos utilizan una serie de capacidades de ejecución especulativa para los accesos de memoria: el microprocesador no solo lleva a cabo lo que le pedimos, sino que dedica una parte de sus recursos a especular que una condición determinada, por ejemplo, será verdadera, y a llevar a cabo los accesos a memoria correspondientes a que así fuese, y así optimizar su tiempo de ejecución. Si finalmente esa especulación no resulta cierta, las instrucciones ejecutadas especulativamente son descartadas. Sin embargo, aunque esa especulación y ese descarte no tienen ningún efecto en la ejecución de los programas (además de acelerarla, que no es poco), sí producen cambios en los componentes del microprocesador, tales como, por ejemplo, cargar determinados datos en la cache. La presencia de esos datos en la memoria cache o en otros componentes del microprocesador es detectable porque su acceso es más rápido que si no estuvieran ahí, y eso podría permitir el acceso a información sensible. Básicamente, hablamos de vulnerabilidades que, en el caso de Meltdown, rompen la frontera entre las aplicaciones del usuario y el sistema operativo, permitiendo así que un programa malicioso pueda acceder a la memoria y, por tanto, a datos de otros programas o del propio sistema operativo. En Spectre, más difícil de explotar que Meltdown pero también más difícil de parchear o solucionar, hablamos de la ruptura del aislamiento entre distintas aplicaciones, lo que permite que una aplicación maliciosa pueda engañar a otras aplicaciones sin errores para obtener datos de las mismas.

Todos los microprocesadores modernos utilizan ejecución especulativa, y de hecho, es una funcionalidad que está en la base de sus prestaciones y que los microprocesadores de Intel llevan a cabo de una manera particularmente agresiva. Los parches que se han puesto en marcha hasta el momento son una primera solución, ponen bajo control o eliminan las funciones especulativas, y provocan al hacerlo pérdidas de prestaciones de hasta un 30%. Renunciar a la ejecución especulativa no parece el camino a seguir, y la solución final podría demorarse bastante tiempo, durante el cual, indudablemente, surgirán actores capaces de explotar las vulnerabilidades en sistemas que no hayan sido parcheados.  Algo tan evidente como que debes aplicar los correspondientes parches de seguridad no es en realidad tan sencillo: aunque en muchos casos esos parches se aplican de manera automática, no todos los usuarios tienen la cultura adecuada como para aplicarlos regularmente. Pero además, la solución debe considerarse como algo temporal: a lo que nos dirigimos es a un replanteamiento fundamental sobre el uso de la ejecución especulativa en microprocesadores, un proyecto de nueva arquitectura que solucione estos problemas de la manera adecuada que llevará mucho tiempo.

¿Es normal que pasen estas cosas? Sí, desgraciadamente, es lo que tiene que la industria avance a la velocidad que avanza. ¿Quiere decir que todo es vulnerable? ¿Estás en riesgo? Si simplemente usas un dispositivo, lo normal será que no, porque las vulnerabilidades no son suficientes – o no en su estado actual – para, por ejemplo, comprometer tu máquina a través de su navegador. El riesgo fundamental es para los proveedores de servicios de computación en la nube, que por lo general ya habrán aplicado los correspondientes parches a costa de un descenso en su rendimiento, con todo lo que ello conlleva en términos de coste. Básicamente, un problema para el que no vas a poder hacer nada más – ni nada menos – que seguir una serie de instrucciones cuando estas vayan llegando, que debería servirte para extremar la precaución y las rutinas de seguridad – nunca es malo que lo hagas – y que se mueve a unos niveles que están muy por encima del usuario común.

 

Comments are closed.