Zenbleed: Todo lo que necesitas saber sobre este error de seguridad de AMD

click fraud protection

Zenbleed, el último de una larga serie de errores de seguridad para CPU, es otra cosa que necesita ser parcheada. Esto es lo que necesita saber.

Después de que se publicitaran los exploits de CPU Spectre y Meltdown en 2018, el mundo de la informática ha estado bastante atento sobre encontrar errores de seguridad y lagunas en los procesadores, y en los últimos cinco años, los investigadores han encontrado un montón. El 24 de julio, se reveló públicamente otro exploit después de haber sido reportado por primera vez en mayo. Esta vez, es específico de los procesadores AMD basados ​​en la arquitectura Zen 2 y se denomina "Zenbleed". Aquí encontrará todo lo que necesita saber sobre Zenbleed y lo que significa para el mundo.

¿Cómo funciona Zenbleed?

Zenbleed es muy similar a otros errores de seguridad basados ​​en hardware como Spectre en el sentido de que explota la capacidad especulativa de las CPU. Para mejorar el rendimiento, las CPU especular o predecir lo siguiente que deben hacer, y desde que se reveló Spectre por primera vez, el mundo ha aprendido que la especulación puede ser muy insegura si se hace incorrectamente.

Fuente: Tavis Ormandy

Los registros en una CPU pueden contener una pequeña cantidad de datos, normalmente una instrucción, una dirección de almacenamiento o cualquier otro tipo de datos pequeños. Los registros XMM en una arquitectura x86_64 (es decir, cualquiera de los procesadores Zen 2 afectados) solo se pueden usar para realizar cálculos sobre datos, no para direccionar la memoria. Esto se amplía a 256 bits en el caso de los registros YMM y a 512 bits en los registros ZMM. En este caso, XMM se refiere a los 128 bits inferiores del total 512 bits de los registros ZMM.

Estos registros son increíblemente útiles para muchas cosas diferentes, incluidas las funciones estándar de C. La vulnerabilidad abusa de la ejecución especulativa y de las predicciones erróneas para esencialmente escupir un dato aleatorio de la memoria, pero esos datos pueden ser de cualquier cosa. Las funciones de la biblioteca C estándar como strlen, que mide la longitud de una cadena, pueden usar estos registros para mover datos. y es posible que, por casualidad, una contraseña que utilizas haya caído desafortunadamente en uno de estos registros.

La predicción de bifurcaciones y la ejecución especulativa se refieren en términos generales a cuando su computadora realiza operaciones que aún no son necesarias pero que probablemente serán necesarias en ciclos posteriores. A menudo se hace en momentos en que su sistema tiene recursos libres, ya que acelera el procesamiento general cuando, de otro modo, las instrucciones o los datos aún no estarían listos para la CPU. Si el trabajo realizado no es necesario, generalmente se descarta y el procesador puede regresar a donde necesita para ejecutar la siguiente instrucción correcta. Cuando hace esto, se denomina predicción errónea de rama.

Donde surge un problema es en la instrucción vzeroupper, que pone a cero los bits en la posición 128 y superiores de los registros YMM y ZMM. Esto se hace particularmente cuando se realiza la transición entre AVX y el código SSE heredado, ya que elimina el rendimiento. penalizaciones causadas por dependencias falsas y al mismo tiempo evitar un efecto similar a la promoción de números enteros en C.

Si el procesador ejecuta especulativamente una instrucción vzeroupper, no hay una reversión adecuada. Sin embargo, los procesadores Ryzen afectados pueden verse obligados a recuperarse, aunque de forma incorrecta. Una vez en este estado, el programa que se está ejecutando actualmente puede espiar esos registros en tiempo real, viendo los datos que fluyen por el sistema en cualquier momento dado.

¿Qué CPU se ven afectadas por Zenbleed y cuándo estarán disponibles los parches?

Como se indicó anteriormente, solo se sabe que las CPU AMD basadas en la arquitectura Zen 2 son vulnerables al error de seguridad Zenbleed, pero La arquitectura Zen 2 ha impulsado CPU en tres series, lo que dificulta determinar qué CPU son vulnerables y cuáles. no lo son. Aquí hay una tabla que debería dejarlo todo claro:

CPU afectadas

Serie Ryzen 3000

Todos excepto las APU (por ejemplo, Ryzen 3 3200G)

Roma épica

Todo

Serie Ryzen 4000

Todo

Serie Ryzen 5000

Sólo el 5300U, 5500U y 5700U

Serie Ryzen 7000

Solo 7020 APU (por ejemplo, Ryzen 3 7320U)

Se trata de una cantidad bastante grande de procesadores AMD, y estos son sólo los que se han confirmado hasta ahora. Zen 2 también se utiliza en las APU que alimentan Steam Deck, Xbox Series S y X y PS5. No hemos sabido de ninguna manera si estas CPU también se ven afectadas, pero a juzgar por la forma en que funciona este exploit, me sorprendería que no se vieran afectadas también. Parece poco probable que AMD lo parchee en Xbox y PS5, ya que los chips de la serie 7020, que son más nuevos, también se ven afectados.

En el momento de escribir, El microcódigo ha sido enviado al kernel de Linux. eso solucionará esta vulnerabilidad y es posible que su sistema operativo o BIOS ya tenga una actualización que solucione este problema.

¿Qué significa esto para las computadoras que usan CPU vulnerables?

Esta es una cuestión difícil de responder porque no todas las computadoras son iguales. Para las personas normales que solo usan computadoras de escritorio y portátiles para juegos, probablemente no deban preocuparse tanto. Se trata de un exploit bastante sofisticado y, aunque ahora es de conocimiento público, todavía no se conocen ejemplos de un atacante que haya utilizado Zenbleed para piratear nada.

Sin embargo, lo que está en juego es mucho mayor para los centros de datos y las personas importantes que manejan información confidencial en sus propias computadoras. Hay una razón por la que AMD ha sido muy claro en cuanto a que Epyc Rome fue parcheado antes de que la vulnerabilidad se hiciera pública: muchos datos sensibles La información está siendo manejada por CPU de Epyc, y sería un desastre si alguna CPU que alimentara servidores a gran escala fuera exitosamente atacado. El kernel de Linux 6.4.6 ya está lanzado y corrige esta vulnerabilidad rodando en el parche oficial de microcódigo de AMD. Parece probable que Microsoft incorpore algo similar en Windows.

Preocupantemente, Es posible que los parches oficiales de BIOS de AMD no se implementen hasta dentro de varios meses, en cuyo caso, hay un "trozo de pollo" que puedes configurar si estás en una máquina Linux o FreeBSD. En máquinas Linux, puede usar msr-tools y ejecutar el siguiente comando.

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

En FreeBSD, también puedes utilizar lo siguiente.

cpucontrol(8)

Deshabilitar SMT no es suficiente para mitigar la vulnerabilidad.

Una cosa que hace que Zenbleed sea particularmente malo es que Zen 2 era una de las arquitecturas de CPU más populares de AMD. Impulsó el regreso de AMD en 2019 y 2020, y muchas personas, empresas y organizaciones seguirán usando computadoras con procesadores Zen 2 en 2023, especialmente Epyc Rome. CPU. Esto no es tan malo como Spectre (que afecta a prácticamente todas las CPU anteriores a 2019) y Meltdown (que afecta a prácticamente todas las CPU Intel anteriores a 2019), pero sigue siendo bastante generalizado.

Los parches de seguridad para vulnerabilidades como ésta a menudo también resultan en una penalización en el rendimiento, pero AMD dijo Hardware de Tom que esta penalización dependerá de la CPU y la carga de trabajo. La especulación y la predicción han sido muy importantes para el rendimiento de la CPU, por lo que no está claro si alguna posible solución provocará una reducción significativa en el rendimiento.