por

¿Qué microprocesadores/computadoras no están afectados por Meltdown o Spectre?

Existen muy pocos microprocesadores que no esten afectados ya sea por Meltdown o Spectre, entre algunos de ellos tenemos estas arquitecturas de ARM:

  • ARM1176
  • Cortex-A7
  • Cortex-A53

Todos ellos utilizados en los Raspberry Pi 1, 2 y 3. Eben Upton, fundador del proyecto Raspberry Pi ha hecho un muy interesante post en el blog de su fundación en el cuál explica por qué el Raspberry Pi no es vulnerable ni a Meltdown, ni a Spectre. En la conclusión de su extenso post nos dice:

Los microprocesadores modernos hacen todo lo posible para preservar la abstracción de que son máquinas escalares secuenciales que acceden a la memoria directamente, mientras que de hecho usan una serie de técnicas que incluyen almacenamiento en caché, reordenamiento y ejecución especulativa de instrucciones para ofrecer un rendimiento mucho más alto de lo que un simple procesador podría esperar conseguir. Meltdown y Spectre son ejemplos de lo que sucede cuando razonamos sobre la seguridad en el contexto de esa abstracción, y luego encontramos discrepancias menores entre la abstracción y la realidad.

La falta de ejecución especulación en los núcleos ARM1176, Cortex-A7 y Cortex-A53 utilizados en Raspberry Pi nos hace inmunes a ataques de este tipo.

Pero los SoC de Broadcom usados por los Raspberry Pi no son los únicos inmunes a estas vulnerabilidades, también existen varios otros SoC que usan estas arquitecturas ARM y por tanto no están afectados entre ellos los de la firma china AllWinner: A20, A31, H3 y H5, muy utilizados en tablets baratas y tarjetas de prototipo como el BananaPi o el OrangePi.

Dado que tengo una Raspberry Pi 1, 2 y 3 y un OrangePi PC decidí verificar si es cierto que no están afectados por Meltdown (CVE-2017-5754) y Spectre variante 1 (CVE-2017-5753) y variante 2 (CVE-2017-5715). Para ello utilicé este script de GitHub que verifica si un sistema Linux (no importa la distribución) es vulnerable a través de cualquiera de las tres fallas de ejecución especulativa. Aquí los resultados:

OrangePi PC (ARMv7 Processor rev 5 (v7l) usando ARMbian 8 Jessie):

Raspberry Pi 1 (ARMv6-compatible processor rev 7 (v6l) usando Raspbian Stretch Lite):

Raspnerry Pi 2 (ARMv7 Processor rev 5 (v7l) usando Raspbian Stretch Lite):

Raspberry Pi 3 (ARMv7 Processor rev 4 (v7l) usando Raspbian Stretch Lite):