Los procesadores AMD y ARM también estarían afectados por el mismo fallo de seguridad que los Intel, pero a un nivel más bajo y con menor riesgo

 

Google a través de Project Zero ha publicado una interesante entrada en su blog en el que analizan el tremendo fallo de seguridad que se ha filtrado este 2018 en los procesadores Intel. En este texto hemos podido ver como los investigadores de Google señalan al fallo de seguridad causado por la “Ejecución Especulativa” de los procesadores modernos como el principal causante del agujero de seguridad. La Ejecucción Especulativa es usada por los procesadores modernos para obtener mayor rendimiento, por lo que parchear esta característica explica las perdidas de rendimiento de las que os habíamos hablado en el articulo anterior.

Project Zero señala tres categorías de riesgo causadas por este fallo:

 

 

Entre las tres variantes encontramos la principal, que puede ser resuelta mediante una actualización de software o del sistema operativo, la cual ya ha generado respuesta inmediata de tanto Google para sus dispositivos, de Microsoft para sus sistemas operativos Windows y de las distribuciones de Linux. Project Zero señala que el impacto de rendimiento de esto será mínimo.

La segunda variante señala que los procesadores AMD están afectados, pero que sin embargo estos corren casi cero riesgo debido a las diferencias de arquitectura con Intel. Por si fuera poco, la vulnerabilidad de la variante 2 no ha sido demostrada en procesadores AMD. Finalmente la tercera variante señala una vulnerabilidad cero para AMD, debido a la diferencia de arquitecturas. Por otro lado ARM estaría afectado por la variante 3.

Por lo que AMD estaría afectado en cuanto a la ejecución especulativa, pero el problema quedaría resuelto con una actualización del software. Mientras tanto, la arquitectura AMD seria mucho más segura que la de Intel, aun quedando en el aire el tema de la variante dos que no ha terminado de demostrarse. AMD por su parte afirmaba ayer que la seguridad en sus procesadores es máxima y que no se habían visto afectados por este problema, algo que fue necesario después de que Intel señalara a AMD y ARM como afectados.

 

El equipo de Google comentaba lo siguiente:

 

“Un equipo no autorizada puede leer información confidencial en la memoria del sistema, como contraseñas, claves de cifrado o información confidencial abierta en las aplicaciones. Las pruebas también mostraron que un ataque que se ejecutaba en una máquina virtual podía acceder a la memoria física de la máquina host y, a través de eso, obtener acceso de lectura a la memoria de una máquina virtual diferente en el mismo host.”

 

Project Zero además ha publicado varias PoC (Proof of Concept, pruebas de concepto) de las diferentes variantes de fallos de seguridad:

 

Durante el curso de nuestra investigación, desarrollamos las siguientes pruebas de concepto (PoC):

Un PoC que demuestra los principios básicos detrás de la variante 1 en el espacio de usuario en la CPU Intel Haswell Xeon probada, la CPU AMD FX, la CPU AMD PRO y una ARM Cortex A57. Este PoC solo prueba la capacidad de leer datos dentro de la ejecución mal especulada dentro del mismo proceso, sin cruzar ningún límite de privilegio.

Un PoC para la variante 1 que, cuando se ejecuta con privilegios de usuario normales en un kernel Linux moderno con una configuración distro-standard, puede realizar lecturas arbitrarias en un rango 4GiB [3] en la memoria virtual del kernel en la CPU Intel Haswell Xeon. Si BPF JIT del kernel está habilitado (configuración no predeterminada), también funciona en la CPU AMD PRO. En la CPU Intel Haswell Xeon, la memoria virtual del kernel se puede leer a una velocidad de alrededor de 2000 bytes por segundo después de aproximadamente 4 segundos de tiempo de inicio.

Un PoC para la variante 2 que, al ejecutar con privilegios de administrador dentro de un invitado KVM creado usando virt-manager en la CPU Intel Haswell Xeon, con una versión específica (ahora obsoleta) del núcleo de distribución de Debian [5] ejecutándose en el host, puede leer albergar la memoria del kernel a una velocidad de alrededor de 1500 bytes / segundo, con espacio para la optimización. Antes de que se pueda realizar el ataque, se debe realizar una inicialización que toma aproximadamente entre 10 y 30 minutos para una máquina con 64GiB de RAM; el tiempo necesario debe escalar aproximadamente linealmente con la cantidad de RAM de host. (Si 2 MB de páginas grandes están disponibles para el invitado, la inicialización debe ser mucho más rápida, pero eso no se ha probado).

Un PoC para la variante 3 que, cuando se ejecuta con privilegios de usuario normales, puede leer la memoria del kernel en la CPU Intel Haswell Xeon bajo alguna condición previa. Creemos que esta condición previa es que la memoria del núcleo objetivo esté presente en el caché L1D.

 

Quizas el lado más “mosqueante” del articulo de Google, es que la compañía advirtió el mes de junio de 2017 de estos errores tanto a Intel, AMD y ARM. Por lo que ha habido más de seis meses de silencio total ante la vulnerabilidad y por lo que sabemos Microsoft no comenzó a trabajar en el parche hasta el mes de noviembre del pasado año. Por si fuera poco, durante la tarde de ayer la propia Intel se escudaba con que habían preparado un anuncio oficial para la semana que viene, pero la reciente filtración de estas informaciones ha acelerado por mucho los planes.