¿Los errores de la CPU Spectre y Meltdown afectan a AMD además de a Intel?

4

Si un servidor o una PC está ejecutando CPUs AMD, ¿se verán afectados por los errores Specter y / o Meltdown que afectan a los chips Intel?

¿Por qué o por qué no?

¿Qué hace que afecte a uno y no al otro? ¿Cómo juega un papel la arquitectura?

    
pregunta DCIndieDev 04.01.2018 - 19:31
fuente

3 respuestas

7

Specter funciona haciendo que la CPU ejecute especulativamente el código seleccionado por el atacante en el contexto del proceso objetivo. Para ello, el predictor de rama adivina incorrectamente la dirección de la próxima instrucción de rama y luego busca los efectos secundarios del código cuya ejecución se descartó. Cualquier CPU que realice una ejecución especulativa es vulnerable a Specter, aunque si el predictor de ramificación es lo suficientemente primitivo (por ejemplo, la predicción de "siempre toma la ramificación" del 68040) o no admite la predicción de ramificaciones indirectas, es mucho más difícil utilizar Specter.

Meltdown funciona mediante la lectura especulativa de una memoria protegida. En Intel, el estado de protección de la memoria no se comprueba hasta que la CPU decide que sí, la rama de "memoria protegida de lectura" de la ruta de ejecución es la correcta. Mientras tanto, habrán tenido lugar efectos secundarios observables. AMD indica que sus CPU verifican el estado de protección antes y no están afectados , y los autores de El artículo de Meltdown dice que no pudieron hacer que el ataque funcione en ARM .

    
respondido por el Mark 04.01.2018 - 20:29
fuente
1

En primer lugar, Meltdown solo afecta a las CPU de Intel. Es un exploit relativamente simple que afecta a todas las CPU Intel con ejecución fuera de orden, que es casi todo desde 1997, excepto algunas CPU Atom.

En cuanto a Specter, todavía hay mucha confusión sobre qué tipos de CPU se ven afectadas por él. Hay un artículo en tenfourfox sobre PowerPC donde se determinó que algunos chips PowerPC más antiguos como el 7447 no tienen suficiente ejecución fuera de orden para ser vulnerables a Specter. Especulo que las CPU AMD más antiguas, como las arquitecturas K6 o K7, también pueden no tener suficientes capacidades especulativas (ejecución fuera de orden) para verse afectadas.

Para que al menos una variación de Specter funcione, dos instrucciones deben ejecutarse de forma especulativa. El primero es un acceso de memoria a una ubicación que puede estar fuera de lo que el programa puede acceder, y luego el segundo es una instrucción de carga de memoria dependiente que utiliza los datos cargados por la primera instrucción como una dirección. Esto requiere que dos instrucciones se completen todas antes de tiempo. Al hacer este seguimiento de la dirección de esa segunda lectura de memoria que se basó en los datos a los que se accedió ilegalmente desde la primera lectura de memoria, se deja en la memoria caché y se puede extraer lentamente utilizando un método de prueba y error. La instrucción de acceso a la memoria ilegal debe ocurrir después de una rama que la CPU predice incorrectamente, de lo contrario el programa se bloquearía cuando esa instrucción se ejecutara realmente. Cuando la CPU se bifurca de una forma distinta a la esperada, simplemente descarga las instrucciones especulativamente ejecutadas y continúa, pero la caché sigue siendo afectada por el acceso a la memoria que causaron esas instrucciones.

No soy un experto en esto, así que probablemente haya algunos errores técnicos, pero el panorama general de lo que está sucediendo debería ser correcto.

    
respondido por el Alex Cannon 20.01.2018 - 04:14
fuente
0

En breve: Sí, pero no solo!

  

¿Qué hace que afecte a uno y no al otro? ¿Cómo juega un papel la arquitectura?

Todo esto se trata de algunas características conceptuales de CPU muy antiguas . (La primera publicación que encontré sobre ejecución especulativa : Esquemas dinámicos para la ejecución especulativa del código está fechado en 1998 . ¡Hace 20 años!

Los constructores de CPU utilizan una gran cantidad de características de mejora , que están documentadas, pero que evolucionaron (principalmente por iniciativa propia del constructor) ... De vez en cuando, al mejorar más, ¡alguna característica podría volverse defectuosa!

A medida que cada constructor implementa cada característica conceptual a su manera, mediante el diseño físico, manteniendo los detalles en secreto, desde hace 20 años ... Corriendo sobre actuaciones ... En fin, para presentaciones comparables, Debilidades similares aparecen a lo largo de cada rama de desarrollo ...

Por lo tanto, meltdown que parece ser un caso especial de spectre funcionará bajo la implementación de somes , pero no en otros ... Pero estoy bastante seguro de que aparecerán exploits nuevos, que se ejecutan en otros y no en somes ...

¡Pero eso es solo mi propia especificación !
;-)

Algunas lecturas

Una simple busque Specter ARM Intel NVidia en cualquier motor de búsqueda, le permitirá encontrar algunas publicaciones interesantes:

Y otros ...

    
respondido por el F. Hauri 20.01.2018 - 12:00
fuente

Lea otras preguntas en las etiquetas