Los AMD Ryzen utilizan unos controladores PCI que manipulan las funciones de la CPU

Alex Ionescu, un experto, ponente, formador e investigador de seguridad de Windows Internals, reveló esta semana que había adquirido su primer equipo dotado de un procesador AMD Ryzen y describió algo extraño con los controladores del PCI de las CPUs de AMD, los cuales realmente no son unos meros controladores como tal.

Tal y como reveló, el controlador PCI de Windows vigila 19 procesos con hash (archivos EXE), que rápidamente resultaron ser 19 juegos. Si el controlador detecta una de las aplicaciones, desactiva ciertas funciones a través del registro específico del modelo de la CPU (MSR). En los Ryzen 1000 (Zen1; presumiblemente también en los Ryzen 2000), ciertas funciones de la caché de instrucciones (op-cache) se vieron afectadas, mientras que en los Ryzen 3000 (Zen2), ciertas funciones de las cachés L1 y L2 se vieron afectadas. En los Ryzen 5000, sin embargo, la función no parece existir.

Logo AMD Ryzen 740x416 0

En un principio, Alex Ionescu supuso que AMD activaría funciones ventajosas para el rendimiento y que pueden provocar inestabilidad en estas 19 aplicaciones, es decir, la optimización del rendimiento está casi oculta a través del controlador PCI. Sin embargo, en sus CPUs más modernas, el controlador desactiva estas funciones, probablemente para evitar los problemas de estabilidad.

"Jugando con mi primer sistema AMD Ryzen. Resulta que el "controlador PCI de AMD" no es en realidad un controlador PCI... en absoluto.

Aquí hay algunos hechos divertidos:

1) Registra una rutina de notificación de creación de procesos, y comprueba todos los nombres de procesos contra una lista de 19 nombres con hash.

2) Si encuentra una coincidencia, establece el bit 5 en el MSR 0xC0011021 [C001_1021], también llamado "Registro de configuración de la caché de instrucciones (IC_CFG)". Este bit en particular no está documentado en ninguna parte (y ya no hay un BKDG para Ryzen).

¿Quién quiere adivinar de qué puede tratarse?

3) Pero aún mejor, tiene un descriptor de seguridad que permite a todos + acceso R/W de baja IL, y una interfaz IOCTL sin absolutamente ninguna sonda/SEH, que sí, hace referencia a indicadores incontrolados. Ni siquiera se molestan en comprobar el tamaño de entrada o de salida.

4) Esta interfaz le permite comprobar si hay alguna coincidencia en su lista de procesos, así como vaciar las listas, y añadir más hashes (mientras dure este arranque).

Sí, "AMD PCI Driver".

El 3er punto tiene mucho de especial, ya que implica una vulnerabilidad donde Alex pudo bloquear el ordenador con una sola línea de código a través de PowerShell. Además, era posible manipular la lista de procesos supervisados por el controlador.

AMD aún no se ha pronunciado tras esta información relatada en la cuenta oficial de Twitter del investigador a principios de semana.

vía: @aionescu

Artículos relacionados