Que es Meltdown y Spectre

Una de las novedades más importantes en la industria de la tecnología en los últimos años fue el descubrimiento de fallas de seguridad en los procesadores de los dispositivos que usamos a diario. Las fallas de seguridad denominadas fallas de diseño Meltdown y Spectre (diseño de hardware) se pueden explotar en cualquier computadora de escritorio, computadora portátil, tableta o teléfono que tenga procesadores diseñados y creados en las últimas dos décadas. Esto también significa que realmente no importa qué sistema operativo esté utilizando, puede ser explotado.

La explicación más simple de lo que podría hacer una combinación de estas dos fallas es dos cosas: ralentizar su computadora y darle acceso al atacante a sus datos personales. Los detalles técnicos se encuentran a continuación.

Como se mencionó anteriormente, estas vulnerabilidades pueden usarse debido a fallas en el diseño del hardware de los chips. Inicialmente, los investigadores descubrieron 3 defectos, dos de los cuales son Specter y el tercero es Meltdown. Para que un atacante pueda acceder a sus datos, tendría que explotar dos técnicas que aceleran su PC. Son ejecuciones especulativas y caché.

Ejecucion especulativa Es la capacidad del chip para "adivinar" el futuro, lo que le permite calcular más rápido. Los chips de hoy pueden ejecutar más de una instrucción al mismo tiempo, lo que significa que mientras la CPU está ejecutando la siguiente instrucción en línea, está calculando o adivinando la siguiente. Por ejemplo, si tomamos una situación en la que decimos que si "el cielo es azul" es cierto, imprímalo con sol o si "el cielo es azul" es falso si imprime nublado (esto puede mostrarse fácilmente con unas pocas filas de código, lo cual no hacer). Lo que hace la ejecución especulativa es que comienza a calcular ambos casos, si es cierto y si es falso al mismo tiempo, por lo que una vez que se completa la condición (una vez que "sky is blue" es verdadero o falso) el chip ya sabe cuál será el siguiente paso. El paso será y será capaz de ejecutarlo sin tener que hacer cómputo en eso. Un ejemplo similar es cuando el chip reconoce que un cierto cálculo se realiza con frecuencia, por lo que utiliza su "tiempo libre" para continuar haciendo el cálculo, de modo que cuando el programa lo necesite ya se habrá calculado.

Almacenamiento en caché es una característica que acelera el proceso de obtención de datos de la RAM. A pesar de que cada dispositivo tiene una RAM, independientemente de si es de 1 gigabyte o 64, el tiempo que tarda el chip en obtener algunos datos de la RAM real es un proceso largo (en términos informáticos, en nuestros términos es menos que un abrir y cerrar de ojos). un ojo). Esto puede no parecer largo, pero si tenemos en cuenta que la CPU realiza millones de cálculos cada segundo y necesita una gran cantidad de datos para pasar, obtener datos de la RAM ciertamente ralentizará mucho las cosas. Una solución para esto fue agregar una memoria RAM al chip real. A pesar de que esta memoria RAM es solo de unos pocos megabytes, el chip almacena los datos que planea usar en un futuro próximo (el futuro cercano para un chip puede ser de unos pocos milisegundos) o los datos que la CPU utiliza con frecuencia, por lo que los almacena en el caché. .

La explotación de estas dos técnicas causará un problema una vez que comiencen a acceder al memoria protegida. Uno de los elementos esenciales en la seguridad de una PC es la memoria protegida. Lo que esto significa es que partes de los datos se almacenan protegidas y la única que tiene acceso a ellos es el programa que los usa. Todos los demás programas deben pasar por una verificación de seguridad llamada verificación de privilegios. El proceso de verificar si un programa tiene privilegios para acceder a los datos en la memoria protegida lleva mucho tiempo, más tiempo que el que tarda la CPU en acceder a los datos. Entonces, si los datos se almacenan en el caché y la CPU con su ejecución especulativa comienza a computarlos, pero aún los almacena en el caché. Por lo tanto, al explotar estas fallas, los atacantes no podrán ver sus datos, pero podrán resolverlos al descubrir las ubicaciones. Este proceso se llama un ataque de canal lateral.

Meltdown y Specter en una combinación pueden hacer todo lo que se explica en los párrafos anteriores. Ambos pueden tener acceso a cierta seguridad de que eso no debería ser accesible, cada uno a su manera. Specter puede usarse con un determinado fragmento de código, en la mayoría de los casos JavaScript, en un sitio web que podría proporcionar al atacado las credenciales de inicio de sesión. Por otro lado, Meltdown podría usarse para obtener acceso a los datos de otros programas o usuarios en la misma máquina, o en situaciones donde se aloja un servidor virtual.

Todos los fabricantes ya están implementando actualizaciones para parchear las vulnerabilidades. Google y Firefox también han enviado actualizaciones para sus navegadores con la esperanza de que logren reforzar la seguridad. Una cosa debe ser clara> estas son fallas de hardware, lo que significa que cualquier software o actualización está funcionando en la parte superior del hardware. Nunca se lanzará una actualización segura, pero sin duda mantendrá a los fabricantes ocupados reparándolos para los chips de la generación futura.

En el siguiente artículo, explicaremos cómo protegerse (tanto como sea posible) de estos ataques.