Meltdown: consideraciones sobre el impacto en los sistemas clasificados

(Para Alessandro Rugolo)
04/04/18

Fusión de un reactor, un término cuyo significado es sinónimo de "colapso desastroso" o "catástrofe nuclear" ha entrado en el uso común debido a los problemas de seguridad destacados en algunos tipos de procesadores, incluidos prácticamente todos los procesadores Intel, parte de los procesadores AMD y etc., desde 2010 hasta hoy. Muy pocos procesadores no se ven afectados por esta vulnerabilidad (o desde Espectro, en cierto modo muy similar), entre ellos una buena parte de la ARM, SPARC y la frambuesa.

Pero, ¿de qué se trata? Que es realmente Fusión de un reactor? Y, sobre todo, ¿qué impacto puede tener en los sistemas de TI y, en particular, en los sistemas clasificados utilizados en el entorno militar?

Con este artículo intentaré aclarar esta vulnerabilidad y su posible impacto en el mundo de la seguridad.

Para empezar, es útil reiterar que la vulnerabilidad es el hardware y no el software. Esto marca una pequeña diferencia con respecto a lo que estamos acostumbrados a escuchar. En la práctica, para hacer una comparación con el mundo de los automóviles, es como si en (casi) todos los automóviles del mundo se descubriera que un detalle del motor debido a un defecto de diseño está sujeto a rotura, probablemente en tal caso las casas. los fabricantes se verían obligados a retirar el modelo infractor del mercado y compensar al consumidor, o retirar los coches a la fábrica para un reemplazo gratuito de la pieza.
Con Fusión de un reactor esto no ha sucedido, tal vez porque aún no hay una conciencia real de los derechos del consumidor y tal vez porque a pesar del clamor suscitado por las noticias aún son muy pocos los que son capaces de comprender la verdadera dimensión del problema.
En cualquier caso, repito que Fusión de un reactor afecta a ciertas familias de procesadores de diferentes marcas, independientemente del sistema operativo instalado en él.

El mal funcionamiento

Para entender cómo funciona Fusión de un reactor necesitamos saber cómo funciona un sistema operativo, al menos en sus líneas esenciales.
En primer lugar, es útil decir que la tarea principal de un sistema operativo es proporcionar una serie de servicios de seguridad y garantías para que los programas que se ejecutan arriba se comporten como lo quiere el diseñador de seguridad.

El enfoque de diseño para la seguridad se siente particularmente en los sistemas militares o, más generalmente, en los sistemas que se ocupan de la información que tiene un alto valor.

Una de las principales características de los Sistemas Operativos consiste en la capacidad de garantizar la "separación de memoria" entre los diferentes procesos y usuarios, ya que cada usuario o proceso debe poder acceder solo a la memoria que le está reservada.
Los Sistemas Operativos modernos, para que puedan ser utilizados, también para aprovechar al máximo las características de las CPU de nueva generación, han introducido algunas características que aceleran ciertas operaciones, teóricamente, sin disminuir su seguridad.

1. La primera de estas características es la capacidad de ejecutar múltiples procesos en paralelo, o realizar diferentes tareas o para diferentes usuarios o programas, dándoles la impresión de que son los únicos que tienen acceso a todo el potencial de la computadora. Para ello, es necesario utilizar técnicas especiales de asignación de memoria que se denominan "memoria de página virtual".

2. Para evitar que los usuarios o procesos se molesten entre sí y causen daños al escribir datos en un espacio de memoria ya utilizado, quizás por el Sistema Operativo, se ha introducido el concepto de "dominio de protección". En la práctica, el Sistema Operativo asigna a cada usuario o proceso un nivel al que se asocia la posibilidad de utilizar una determinada área de memoria. Cuando un proceso intenta acceder a un área de la memoria para la que no está autorizado, generalmente se "termina".

3. La tercera característica ligada a la arquitectura de los nuevos procesadores, normalmente equipados con varias unidades de cómputo, consiste en la posibilidad de ejecutar instrucciones u operaciones en paralelo o, en ciertos casos, ejecutar la misma instrucción en diferentes valores para acelerar determinadas operaciones. Estas son características conocidas como "canalización de instrucciones" y "ejecución especulativa". Esta es la base del concepto de "ejecución fuera de orden", es decir, la ejecución de instrucciones de programa que aún no son necesarias pero que probablemente deberán ejecutarse.

4. Finalmente, para aprovechar la enorme velocidad de cálculo de los procesadores modernos, se han introducido tipos particulares de memoria, cuyo acceso en escritura y lectura ocurre en tiempos mucho más cortos que la memoria presente en un disco duro normal. La presencia de estas memorias denominadas "cachés", asociadas al análisis de los datos más utilizados, permite que el procesador no se quede en paro con demasiada frecuencia esperando que se proporcionen los datos necesarios que se encuentran en el disco duro.

Bueno, la pregunta es simple. Si es cierto que las características antes mencionadas fueron introducidas para explotar las características de los nuevos procesadores, igualmente es cierto que lo hecho ha aumentado significativamente la complejidad de los sistemas y en consecuencia la posibilidad de introducir vulnerabilidades no triviales, y este es el caso de Fusión de un reactor.
Ahora, necesitamos saber que uno de los usuarios de la computadora es el sistema operativo, se considera "usuario privilegiado" y puede realizar operaciones particulares, no otorgadas a un usuario genérico.

Fusión de un reactor permite superar el concepto de "separación de memoria", permitiendo que un proceso o usuario no autorizado tome conciencia de los datos presentes en un espacio que no es de memoria explotando un tipo de ataque denominado "ataque de canal lateral", en particular un tipo de ataque ataque de canal lateral llamado "ataque de canal lateral de chaché" que consiste en deducir el contenido de la memoria caché midiendo los tiempos de carga de los datos por otro proceso en ejecución.

Fusión de un reactor logra hacer esto utilizando a su favor las características de los procesadores de bits 64 modernos vistos anteriormente para lograr su objetivo o robar datos del área de memoria asignada a los procesos del kernel del sistema operativo.

Dado el propósito de este artículo y la complejidad del argumento, no tiene sentido continuar describiendo los detalles de la operación de este tipo de ataque, sino más bien tratar de comprender las implicaciones de seguridad de este ataque en relación con los sistemas de información militar.
Debe hacerse una primera consideración sobre el concepto de verificación y certificación de los sistemas.
Esto se debe a que, como espero que ahora esté claro, casi todos los procesadores en combinación con los sistemas operativos más usados ​​están sujetos a ataques. Fusión de un reactorEstos incluyen el cliente Windows 7 y los sistemas operativos de servidor de bits 2008 R2 64, que si visita el sitio de Common Criteria, los sistemas certificados están certificados para su uso en los sistemas clasificados de la mayoría de las naciones del mundo. .

¿Es posible que durante las pruebas nadie notara el comportamiento inseguro de los sistemas?
¿Es necesario repensar cómo los Centros de Validación realizan las pruebas, quizás demasiado concentrados en probar lo que declararon los fabricantes, sin investigar (mucho) más allá?
Sin embargo, hay claros indicios de posibles problemas en las arquitecturas de los procesadores desde el 1995 distante, por parte de la Agencia de Seguridad Nacional.

Una segunda consideración se refiere a la posibilidad de aplicar parches de seguridad.
Tan pronto como se supo de Fusión de un reactor, las principales compañías de software han intentado remediar los cambios de software a los problemas de hardware arquitectónico.
Entre estos, Microsoft lanzó inmediatamente el parche, pero ¿con qué resultado? Las noticias de hackers en un artículo hace unos días publicó el estudio del investigador independiente Ulf Frisk que mostraba cómo el parche solo empeoraba la situación, permitiendo que el robo de datos ahora sea incluso más rápido de lo que era sin aplicar el parche.
Este es otro punto a considerar cuidadosamente: la aplicación de un parche, incluso si es posible (¡y no siempre es así sin recertificar el sistema!), Podría ser incluso más dañino que dejar las cosas como están.

Entonces, ¿cómo debemos lidiar con problemas tan profundamente inherentes a la arquitectura de sistemas?

¿Qué certezas, como las garantías, pueden darnos sistemas militares que potencialmente han sido objeto de ataques similares a Fusión de un reactor por años?

sabemos Fusión de un reactor públicamente desde julio de 2017, pero no sabemos si alguna organización conocía y explotó previamente esta vulnerabilidad, potencialmente inherente a los procesadores de nueva generación a partir de 2010. No tengo una respuesta, solo una sugerencia: en el mundo de hoy, nada es más seguro, tal vez porque una persona, incluso una persona entrenada, apenas puede manejar la complejidad de los sistemas.

En cualquier caso, como se trata de seguridad nacional, tal vez sería recomendable fortalecer las estructuras involucradas en el análisis de los sistemas de información y vulnerabilidades, también haciendo uso de las universidades, en lugar de confiar en las declaraciones de las empresas que producen hardware y software.

¿Puede la Inteligencia Artificial ayudarnos ... o quizás, más probablemente, complicar aún más el problema?

 
Para obtener más información:

- https://meltdownattack.com/meltdown.pdf
- https://thehackernews.com/2018/03/microsofts-meltdown-vulnerability.html
- Introducción a los procesadores INTEL: https://www.tomshw.it/differenze-i-processori-intel-75496
- Descripción general de procesadores ARM: https://www.ilsoftware.it/articoli.asp?tag=Differenza-tra-processori-ARM...
- Introducción a los procesadores SPARC: http://www.pcpedia.it/Il-Processore/ultrasparc.html
- Descripción general de los procesadores de frambuesa: https://opensource.com/resources/raspberry-pi
- https://www.commoncriteriaportal.org