Meltdown y Spectre: saber sobre estas vulnerabilidades que afectan prácticamente a todas las CPU

Parece lógico que uno de los dos exploits basados ​​en hardware para sacudir el mundo de la CPU se llamara Meltdown. Porque durante las últimas 24 horas más o menos, parece que estuve a punto de tratar de estar al día con toda la información nueva que ha salido a la luz sobre este y el bien llamado Specter exploit. Baste decir que es el tipo de semana que no hemos visto durante mucho tiempo en la industria de la tecnología. Pero me estoy adelantando a mí mismo, así que comencemos desde el principio.

Los investigadores de seguridad que trabajan para el grupo Project Zero de Google, junto con otros grupos de investigación e instituciones académicas, descubrieron una serie de riesgos de seguridad de largo alcance que involucran la ejecución especulativa. La ejecución especulativa es una de las piedras angulares de la ejecución de alto rendimiento en las CPU modernas, y se encuentra esencialmente en todos los diseños de CPU más efectivos que un microcontrolador integrado. Como resultado, prácticamente cada CPU de alto rendimiento en el mercado o que se ha producido en las últimas décadas es vulnerable a uno o más de los escenarios de explotación diferentes.

La preocupación inmediata es un exploit que se llama Meltdown, que afecta principalmente a las CPU de Intel, pero también se ha confirmado que afecta algunos diseños de CPU ARM también. Con Meltdown, es posible que el código malicioso abuse de las implementaciones de ejecución especulativa de Intel y ARM para que el procesador pierda información de otros procesos, particularmente del kernel del sistema operativo que todo lo sabe. Como resultado, Meltdown puede usarse fácilmente para espiar otros procesos y escabullir información que debería restringirse al núcleo, a otros programas u otras máquinas virtuales.

Mientras tanto, una segunda clase de ataques se llama Spectre, y la cantidad de procesadores en riesgo de explotación es aún mayor. Esencialmente, todos los procesadores de alto rendimiento que se hayan fabricado (Intel, AMD, ARM y POWER) se consideran vulnerables aquí. Al igual que Meltdown, un ataque de Spectre abusa de la ejecución especulativa con el fin de obtener información que debe restringirse. Sin embargo, lo que diferencia a Spectre es que es un ataque menos directo pero mucho más insidioso; mientras que Meltdown se basa en el abuso de implementaciones específicas de ejecución especulativa, se puede pensar en Spectre como un riesgo fundamental (previamente desconocido) de ejecución especulativa, que ahora se puede convertir en un arma. Spectre requiere más trabajo de instalación para forzar a una aplicación objetivo a filtrar información, pero la naturaleza fundamental del riesgo significa que Spectre se considera actualmente más difícil de mitigar y, en general, no se comprende tan bien.

Entre Meltdown y Spectre, el resultado final es que antes de los esfuerzos de reparación y mitigación, prácticamente todas las computadoras y todos los dispositivos móviles se consideran vulnerables a estos ataques. Y debido a que las causas se basan en la arquitectura del hardware en lugar del software, no se solucionan tan fácilmente como los errores del software. La buena noticia es que parece que el peor de estos ataques puede mitigarse en una combinación de actualizaciones de microcódigo de CPU y software. Sin embargo, la magnitud del problema, prácticamente todas las computadoras y dispositivos móviles actualmente en uso, significa que se requerirá un gran esfuerzo para mitigarlo.

Una liberación temprana conduce a una imagen incompleta

La forma en que se publicaron las noticias sobre Meltdown y Spectre no fue planificada, y como resultado, los investigadores, proveedores de hardware, proveedores de software y el público en general han estado tratando de ponerse al día sobre todo lo que está sucediendo. Ahora sabemos que los ataques Meltdown y Spectre fueron descubiertos el verano pasado, y desde entonces los proveedores y los investigadores de seguridad han estado coordinando su respuesta para comprender mejor las ramificaciones de los exploits y garantizar que todos tengan tiempo para desarrollar las correcciones y la orientación necesarias. Hasta ayer, la información sobre Meltdown y Spectre no debía publicarse hasta el martes 9 de enero, que habría sido el primer Parche Martes del año.

En cambio, lo que sucedió es que a medida que los parches de mitigación para los exploits se comprometieron con el repositorio de kernel de Linux, la gente rápidamente comenzó a reconstruir la idea de que algo andaba mal. Con la especulación, tanto correcta como incorrecta, tomando el control rápidamente, los vendedores aumentaron su información y liberaciones de parches en los exploits hasta ayer. El resultado, como era de esperar de una publicación prematura, fue algo fortuito, estaba leyendo nuevos avisos hasta bien entrada la noche, e incluso ahora no todos han publicado avisos (o al menos no publicados que serían normales para los avisos completos).

Como resultado, todavía estoy reuniendo información, y es probable que para el momento en que haya terminado de escribir esto, algo en este artículo esté desactualizado o sea incorrecto. Pero a partir de ahora, esto es todo lo que sabemos a partir de esta mañana.

Antes de sumergirme en algunos de los aspectos técnicos más profundos de Meltdown y Spectre, creo que es mejor comenzar con una descripción general de alto nivel de dónde están las cosas. Esto incluye los riesgos que plantean estos exploits, cómo se mitigan y qué deben hacer los usuarios individuales (si acaso) sobre el problema.

La buena noticia es que a menos que sea un proveedor de servicios en la nube, el riesgo inmediato de estos ataques es muy bajo. La mala noticia es que debido a que estos exploits se basan en vulnerabilidades de hardware, se tomarán un tiempo para solucionarlo. Y hay muchos dispositivos que ejecutan muchos SO diferentes que necesitan ser reparados.

Cosas que sabemos

Estos son ataques locales: tanto Meltdown como Spectre son ataques locales que requieren la ejecución de código malicioso en una máquina de destino. Esto significa que estos ataques no son (directamente) ataques de ejecución remota de código estilo drive-by – piense en Nimda o Code Red – y que los sistemas no pueden atacarse simplemente conectándose a una red. Conceptualmente, están más cerca de los ataques de escalada de privilegios, una clase de ataques que lo ayudan a profundizar en un sistema al que ya tiene acceso. Dicho esto, sin embargo, los investigadores han demostrado que pueden realizar ataques basados ​​en Spectre usando JavaScript, por lo que es posible que un navegador web extraiga un archivo JavaScript malicioso y luego se ataque de esa manera.

Estos son ataques de solo lectura (divulgación de información): además de no ser directamente explotables remotamente, incluso si los ataques de Meltdown y Spectre se ejecutan en un sistema local, la naturaleza del exploit es que estos son ataques de solo lectura. Es decir, solo pueden leer información de un sistema. No pueden forzar directamente la ejecución del código en el kernel del sistema operativo, en otras máquinas virtuales u otros programas. Este tipo de ataques de revelación de información aún puede ser devastador dependiendo de qué información se filtró, y siempre existe el riesgo de usar esa información para luego encadenarla a un ataque de ejecución de código, por lo que aún son preocupantes. Pero el riesgo real es que las partes hostiles usen estos ataques para robar información, no para controlar un sistema.

La principal amenaza es para los entornos de alojamiento compartido: dado lo anterior, estos ataques son más amenazantes para los entornos de alojamiento compartido, donde múltiples usuarios son todos capaces de ejecutar código en un único sistema. Como resultado, los proveedores de servicios en la nube como Amazon y Microsoft ya han desplegado esfuerzos de mitigación de ataques a sus servicios. Los sistemas y dispositivos individuales, en comparación, tienen un riesgo práctico mucho menor. Un atacante aún necesita obtener código malicioso ejecutándose en un sistema individual antes de que pueda ejecutar un ataque; y si un atacante puede hacer eso, entonces un sistema individual ya está en una mala posición para empezar.

Meltdown y Spectre pueden ser mitigados en el software: debido a que los problemas raíz en el corazón de Meltdown y Spectre están en el nivel del hardware, idealmente, ese hardware necesita ser reemplazado. Como la sustitución de 20 años de sistemas no es remotamente práctica, sin embargo, al igual que otras erratas de CPU, se puede mitigar en una combinación de microcódigo de CPU y actualizaciones del sistema operativo. Proveedores como Microsoft, Apple y las distribuciones de Linux ya están en el proceso de implementar algunas de estas correcciones, incluida una actualización de seguridad fuera de banda ultra rara.

Meltdown y Spectre pueden ser mitigados en el software: debido a que los problemas raíz en el corazón de Meltdown y Spectre están en el nivel del hardware, idealmente, ese hardware necesita ser reemplazado. Como la sustitución de 20 años de sistemas no es remotamente práctica, sin embargo, al igual que otras erratas de CPU, se puede mitigar en una combinación de microcódigo de CPU y actualizaciones del sistema operativo. Vendedores como Microsoft, Apple y las distribuciones de Linux ya están en el proceso de implementar algunas de estas correcciones, incluida una actualización de seguridad ultra-rara fuera de banda de Microsoft la noche del miércoles.

… pero tomará algo de tiempo: sin embargo, debido a que la información sobre el exploit se publicó antes de lo planeado, no todos los esfuerzos de mitigación están listos. La mitigación completa requiere actualizaciones de software y microcódigos, y como Intel ha notado en sus propios anuncios, los esfuerzos de mitigación tomarán días y semanas.

La mitigación de Meltdown tendrá un impacto variable en el rendimiento: en pocas palabras, los esfuerzos de mitigación para Meltdown implican una mejor separación de los programas de espacio de usuario del núcleo del sistema operativo. Como resultado, los cambios de contexto entre el espacio de usuario y el kernel serán más caros. Sin embargo, el impacto real en el rendimiento de este proceso va a variar con la carga de trabajo y la arquitectura de la CPU.

Es una mala semana para ser Intel: Intel ha sido el proveedor de CPU dominante para los proveedores de servicios en la nube, quienes a su vez corren el mayor riesgo de Meltdown y Spectre. Junto con el hecho de que Intel se ve mucho más afectado por el ataque de fusión más acuciante que cualquier otro proveedor, y esto significa que los clientes de servidores de alto margen de Intel están asumiendo la mayor parte del riesgo de estos ataques. Y eso a su vez se refleja pobremente en Intel.

Mientras tanto, en cuanto a qué CPUs se ven afectadas, la nota más reciente de Intel confirma que todo lo relacionado con la arquitectura Core se basa en la primera generación (Nehalem). Tenga en cuenta que esto no excluye a los procesadores anteriores tampoco.

Es una mejor semana para ser AMD (pero no excelente): a la inversa, AMD está teniendo una semana mucho mejor. Lo mejor que se puede determinar es que sus CPU no son vulnerables a los ataques de Meltdown, el único proveedor entre los 3 grandes que no se verá afectado. Y siendo Meltdown el riesgo más apremiante, esto significa que AMD y sus usuarios no están tan expuestos como los usuarios de Intel. Sin embargo, las CPU de AMD siguen siendo vulnerables a los ataques de Spectre, y en el largo plazo todavía hay muchas incógnitas sobre qué tan peligroso es Specter y qué tan bien se puede mitigar.

Cosas que no sabemos

Cuando las actualizaciones de mitigación completas estarán disponibles para una plataforma en particular: como se indicó anteriormente, implementar actualizaciones para mitigar los exploits llevará días y semanas. Por el lado de la PC, la actualización de Microsoft es solo una pieza del rompecabezas, aunque podría decirse que la más importante, ya que puede mitigar Meltdown sin una actualización de microcódigo. Sin embargo, todavía estamos esperando actualizaciones de microcódigo para mitigar mejor los procesadores Spectre en Intel (y también se ve así para los procesadores AMD).

De lo contrario, en el aspecto móvil de los modales, Google ha anunciado que ya implementaron las actualizaciones de Android con las mitigaciones recomendadas de ARM para los dispositivos Nexus y Pixel admitidos, pero estas actualizaciones no incluyen todas las correcciones previas necesarias del kernel de Linux.

El impacto en el rendimiento de estas mitigaciones no está claro: si se sigue el punto sobre la mitigación de Meltdown, no está claro cuál será el impacto total en el rendimiento de esto. Las operaciones individuales y las cargas de trabajo podrían ser potencialmente más de un 30% más lentas, pero depende en gran medida de la frecuencia con la que una tarea cambie de contexto al kernel. Espero que el impacto promedio en el mundo real sea menor, especialmente para los usuarios de computadoras de escritorio. Sin embargo, los usuarios del servidor y sus cargas de trabajo únicas pero con un enfoque restringido podrían verse mucho más afectadas si tienen una mala suerte.

Mientras tanto, el impacto en el rendimiento de las mitigaciones de Spectre se comprende aún menos, en parte porque los esfuerzos para mitigar Spectre están en curso. Según lo que publicaron los proveedores de hardware, el impacto debería ser mínimo. Pero además de la necesidad de pruebas empíricas, eso podría cambiar si Specter requiere esfuerzos de mitigación más dramáticos.

Por nuestra parte, todavía estamos esperando algunas actualizaciones de microcódigos, e incluso entonces es un proceso de tratar de descubrir lo que un caso promedio incluso conllevará. Definitivamente es algo en lo que pretendemos profundizar en el verdadero estilo de AnandTech una vez que tengamos las actualizaciones requeridas.

Finalmente, por su parte, el grupo Azure de Microsoft ha publicado sus propias cifras en sus avisos a los clientes, señalando que el impacto en el rendimiento que han encontrado hasta ahora es bastante limitado.

La mayoría de los clientes de Azure no deberían ver un impacto notable en el rendimiento con esta actualización. Hemos trabajado para optimizar la ruta de E / S de la CPU y del disco y no vemos un impacto notable en el rendimiento una vez aplicada la corrección. Un pequeño grupo de clientes puede experimentar algún impacto en el rendimiento de la red.

No está claro cuáles son las ramificaciones de seguridad de Spectre: mientras Meltdown es la amenaza más inmediata, cómo funciona y cómo mitigarla están bastante bien documentadas. Sin embargo, Specter es un comodín definitivo en este momento. Hay varios ataques de prueba de concepto tal como están, pero en términos más generales, los ataques de Spectre son una nueva clase de ataques que no se parecen a nada que los vendedores hayan visto antes. Como resultado, nadie está completamente seguro de que comprenda las ramificaciones de seguridad completas del exploit. Existe el riesgo de que los ataques de Spectre puedan ser utilizados por más de lo que se entiende actualmente.

Tampoco está claro qué tan bien se puede mitigar Spectre: el corolario de no comprender por completo la superficie de ataque de Spectre es que tampoco se comprende completamente la defensa en contra de él. Los investigadores que están detrás del ataque, por su parte, no están convencidos de que las actualizaciones de software o microcódigo sean suficientes para resolver completamente el problema, y ​​aconsejan que por el momento se las trate como soluciones inmediatas. Los tipos específicos de ataques de Spectre pueden mitigarse con cuidado, pero esas protecciones pueden no ser útiles contra otros tipos de ataques de Spectre. Es un área donde se necesita hacer más investigación.

¿Qué pueden hacer los usuarios ahora?

Finalmente, está la cuestión de qué deberían hacer los propietarios de sistemas y dispositivos sobre los ataques de Meltdown y Spectre. La debilidad fundamental que permite estos ataques de ejecución especulativa es en el hardware en sí mismo, por lo que, en lugar de reemplazar los dispositivos, el problema no se puede resolver de verdad. Lo único que se puede hacer ahora es mitigar el problema con los parches de software y microcódigo que intentan resolver el problema.

La solución es entonces una espada de doble filo para los usuarios: no hay mucho que puedan hacer, pero tampoco tienen mucho que hacer. Las actualizaciones de software y microcódigos para mitigar estos exploits se distribuirán como actualizaciones de software, por lo que mantener sus sistemas y dispositivos móviles actualizados con la última versión del sistema operativo es el paso más importante que uno puede tomar. Como se mencionó anteriormente, todos tienen o están en el proceso de implementar las actualizaciones de software necesarias para ayudar a mitigar esto. La otra cara es que, a falta de una herramienta de haz de iones enfocado, no hay mucho más que los usuarios puedan hacer. Este es un problema cuya resolución va a ser impulsada por el proveedor.

Más por venir

La ejecución especulativa es una característica bastante importante para impulsar el rendimiento en los procesadores modernos, pero como estos ataques han demostrado, incluso cuando (aparentemente) se implementa de manera ideal, puede tener algunas compensaciones de seguridad. Que en esta era actual de la informática, ya no puede ser una solución aceptable.

También veré más detalladamente Meltdown y Spectre, y cómo, si bien ambos son ataques a la ejecución especulativa, son tipos muy diferentes de ataques. Meltdown es la mayor preocupación en este momento debido a su relativa facilidad para explotarlo. Pero como señalan los autores del artículo de Spectre, esta es una vulnerabilidad más fundamental que nos acompañará mucho más tiempo. Lo que significa para la seguridad del sistema aún está por verse, pero desde el punto de vista de la ciencia de la computación, espero que estos últimos descubrimientos tengan un gran impacto en cómo se diseñan las CPU futuras.

Traducido del Ingles con Google Translate

Fuente | anandtech.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *