Una vulnerabilidad para gobernarlos a todos…

¿Qué son Meltdown y Spectre?

Meldown y Spectre son dos vulnerabilidades vinculadas al hardware de los microprocesadores instalados en casi todos los dispositivos. Los fallos fueron descubiertos por varios equipos entre los que se encuentran expertos de Google Project Zero, de la firma de seguridad Cyberus, o de universidades, como Pensilvania, Maryland y Graz.

El problema tiene como raíz la llamada ejecución especulativa. Cuando un procesador ejecuta código y llega un punto en un algoritmo en el que las instrucciones se bifurcan en dos direcciones distintas dependiendo de los datos de entrada, esas instrucciones ahorran tiempo «especulando» con el camino por el que se seguirá ejecutando el proceso. Básicamente lo que hacen es tratar de adivinar lo que va a pasar, por dónde va a seguir ejecutándose el programa, y adelantarse para ganar terreno y ventaja. Si el procesador se da cuenta de que esa apuesta especulativa era errónea, retrocede en el hilo de ejecución y tira a la basura ese trabajo.

Ocurre cuando, por ejemplo, se hace click en un documento de texto y aparecen varias alternativas: abrir, copiar, eliminar… De este modo, el procesador traza la línea de código necesaria para cada una de ellas con la intención de adelantarse al usuario y funcionar más rápido. ¿El inconveniente? Que a cambio deja un rastro aprovechado por vulnerabilidades como Meltdown y Spectre.

Como indican los analistas, Meltdown tiene la forma de un escudo derretido porque, literalmente, «derrite» los límites de la seguridad establecido por el hardware. Mientras, Spectre es un fantasma porque aprovecha para colarse tras la ejecución especulativa.

En el blog de Eben Upton, fundador de Raspberri Pi -plataforma que no se encontraría afectada al no implementarla-, es posible encontrar una descripción técnica paso a paso de la ejecución especulativa,

¿Cómo funciona cada uno?

Meltdown: El primero abre una puerta a los datos ocultos en la memoria del núcleo, rompiendo el aislamiento entre el «modo kernel» y el «modo usuario». En otras palabras: permite que un proceso con bajos privilegios (cualquier programa descargado) pueda acceder al núcleo y ver los datos privados reservados para este en el sistema (como contraseñas).

Spectre: Mientras, el segundo va más allá y rompe el aislamiento entre diferentes aplicaciones. A veces cuando ejecutamos un programa en realidad iniciamos muchos a la vez, y eso es lo que permite a Spectre usar la ejecución especulativa anteriormente señalada para conocer todos los datos almacenados en la caché de ese mismo proceso. Lo único positivo (si lo hay) es que esta vulnerabilidad es mucho más compleja de explotar.

Continue reading «Una vulnerabilidad para gobernarlos a todos…»