Las vulnerabilidades de la CPU han estado de moda recientemente, siendo Zenbleed y Downfall dos de las más recientes. ¿Pero qué tan preocupado deberías estar?
Las vulnerabilidades de la CPU han aparecido y salido de las noticias en los últimos años y, a menudo, vienen con un mensaje bastante aterrador cuando se trata de revelarlas. En el caso de Zenbleed y Caída, era que cualquier aplicación en su computadora podía acceder a la memoria de cualquier otro programa que se ejecutara en las circunstancias adecuadas. Suena intenso, ¿verdad?
Sin embargo, no es tan malo como parece. Obviamente es lo suficientemente importante como para justificar una divulgación y una actualización de software para corregir los errores, incluso a costa del rendimiento, pero ¿qué está sucediendo exactamente para causar estos problemas de seguridad? ¿Deberías estar preocupado?
¿Debería preocuparse por las vulnerabilidades de la CPU como Zenbleed, Downfall e Inception?
Para ser honesto, ninguna de estas hazañas afecta a la gran mayoría de la gente. Si bien pueden filtrar datos de un programa a otro, cualquier pieza de malware en la máquina de un consumidor ya tiene un gran nivel de acceso del que se puede abusar. En cambio, donde estos ataques son particularmente preocupantes es en contextos de computación en la nube.
Para comprender el problema, es necesario comprender que muchos servidores en la nube diferentes son simplemente computadoras con mucha potencia, un gran ancho de banda de red y algún otro hardware especializado si requerido. Muchas empresas alquilan lo que se llama un VPS, o servidor privado virtual, que son máquinas virtualizadas con potencia limitada hacia donde pueden estar funcionando docenas de otras máquinas virtuales.
Donde esto puede ser un problema es que una persona en una máquina virtual podría ejecutar uno de estos vulnerabilidades, obteniendo información sobre qué datos fluyen a través del procesador, incluidos datos de otros maquinas virtuales. Esto no debería ser posible y es una violación importante de la seguridad. Es por eso que cuando se dio a conocer Zenbleed, ya existían parches para los procesadores Epyc de AMD, que están dirigidos al uso en servidores.
Vulnerabilidades de CPU más graves actualmente
El estándar de la industria para "clasificar" las vulnerabilidades y su gravedad es a través del Sistema de puntuación de vulnerabilidad común (CVSS). Proporciona una medida cuantitativa de la gravedad, ya que los diferentes aspectos de la vulnerabilidad afectarán la puntuación. Mide teniendo en cuenta lo siguiente:
- Vector de ataque: Red/Adyacente/Local/Físico
- Complejidad del ataque: Bajo/Alto
- Privilegios requeridos: Ninguno/Bajo/Alto
- La interacción del usuario: Ninguno/Requerido
- Alcance: Sin cambios/Cambiado
- Confidencialidad: Ninguno/Bajo/Alto
- Integridad: Ninguno/Bajo/Alto
- Disponibilidad: Ninguno/Bajo/Alto
Todos estos clasifican la gravedad de un error. Por ejemplo, una vulnerabilidad que se puede ejecutar a través de una red de baja complejidad, sin necesidad de privilegios, sin interacción del usuario, con un alcance modificado, La alta fuga de confidencialidad de datos, la alta violación de la integridad de los datos y el alto impacto en la disponibilidad obtendrán un puntaje perfecto de 10 en CVSS 3.1, el puntaje más alto. posible.
Con esa métrica, podemos evaluar el daño que Zenbleed y Downfall son capaces de causar. Spoiler: son iguales, aunque afectan a diferentes CPU. Por lo tanto, si bien obtienen una cierta cantidad en En el contexto de las vulnerabilidades, pueden afectar diferentes cantidades de productos y eso no afectará su puntaje. Las puntuaciones CVSS son esencialmente solo para clasificación, pero no cuentan la historia completa.
Sangrado Zen: 6.5 (Medio)
- Vector de ataque: Local
- Complejidad del ataque: Bajo
- Privilegios requeridos: Bajo
- La interacción del usuario: Ninguno
- Alcance: Cambió
- Confidencialidad: Alto
- Integridad: Ninguno
- Disponibilidad: Ninguno
Explicación: El vector de ataque requiere acceso local a la máquina (es decir, se ejecuta en la máquina) y tampoco tiene ningún impacto en la integridad de los datos en la máquina o su disponibilidad. Sin embargo, cambia el alcance (lo que significa que afecta a los recursos más allá de sus privilegios) y la complejidad del ataque, y los privilegios necesarios para su ejecución son bajos. También viola totalmente la confidencialidad de la información de la máquina.
Caída: 6,5 (mediana)
- Vector de ataque: Local
- Complejidad del ataque: Bajo
- Privilegios requeridos: Bajo
- La interacción del usuario: Ninguno
- Alcance: Cambió
- Confidencialidad: Alto
- Integridad: Ninguno
- Disponibilidad: Ninguno
Explicación: El vector de ataque requiere acceso local a la máquina (es decir, se ejecuta en la máquina) y tampoco tiene ningún impacto en la integridad de los datos en la máquina o su disponibilidad. Sin embargo, cambia el alcance (lo que significa que afecta a los recursos más allá de sus privilegios) y la complejidad del ataque, y los privilegios necesarios para su ejecución son bajos. También viola totalmente la confidencialidad de la información de la máquina.
Inicio: 5.6 (Medio)
- Vector de ataque: Local
- Complejidad del ataque: Alto
- Privilegios requeridos: Bajo
- La interacción del usuario: Ninguno
- Alcance: Cambió
- Confidencialidad: Alto
- Integridad: Ninguno
- Disponibilidad: Ninguno
Explicación: El vector de ataque requiere acceso local a la máquina (es decir, se ejecuta en la máquina) y tampoco tiene ningún impacto en la integridad de los datos en la máquina o su disponibilidad. Sin embargo, cambia de alcance (lo que significa que afecta a recursos más allá de sus privilegios), la complejidad del ataque es alta y los privilegios necesarios para ejecutar son bajos. También viola totalmente la confidencialidad de la información de la máquina.
Espectro: 5.6 (Medio) (Parcheado)
El espectro, a pesar de ser un fenómeno más extendido, en realidad puntúa menos que Zenbleed y Downfall. Esto se debe al hecho de que la complejidad del ataque se denominó "Alta", lo que redujo su puntuación.
- Vector de ataque: Local
- Complejidad del ataque: Alto
- Privilegios requeridos: Bajo
- La interacción del usuario: Ninguno
- Alcance: Cambió
- Confidencialidad: Alto
- Integridad: Ninguno
- Disponibilidad: Ninguno
Explicación: El vector de ataque requiere acceso local a la máquina (es decir, se ejecuta en la máquina) y tampoco tiene ningún impacto en la integridad de los datos en la máquina o su disponibilidad. Sin embargo, cambia de alcance (lo que significa que afecta a recursos más allá de sus privilegios), la complejidad del ataque es alta y los privilegios necesarios para ejecutar son bajos. También viola totalmente la confidencialidad de la información de la máquina.
Meltdown: 5.6 (Medio) (Parcheado)
Al igual que Spectre, Meltdown obtiene puntuaciones más bajas que Zenbleed y Downfall, debido a la mayor complejidad de ataque requerida.
- Vector de ataque: Local
- Complejidad del ataque: Alto
- Privilegios requeridos: Bajo
- La interacción del usuario: Ninguno
- Alcance: Cambió
- Confidencialidad: Alto
- Integridad: Ninguno
- Disponibilidad: Ninguno
Explicación: El vector de ataque requiere acceso local a la máquina (es decir, se ejecuta en la máquina) y tampoco tiene ningún impacto en la integridad de los datos en la máquina o su disponibilidad. Sin embargo, cambia de alcance (lo que significa que afecta a recursos más allá de sus privilegios), la complejidad del ataque es alta y los privilegios necesarios para ejecutar son bajos. También viola totalmente la confidencialidad de la información de la máquina.
La causa principal: predicción de sucursales
Fuente: AMD
La predicción de rama y la ejecución especulativa se refieren en términos generales a cuando su computadora realiza operaciones que no son necesarias en este momento pero que lo serán 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.
Para una comprensión más profunda de los predictores de bifurcación, imagine un escenario en el que un programa suma consistentemente los mismos dos números en su ejecución. En algún momento, el procesador puede reconocer este patrón y preparar los siguientes pasos en caso de que se vuelva a llamar al método donde se suman esos dos números. Si ese resultado cambia en algún momento, incluso si el procesador planeó que los mismos dos números fueran iguales, entonces la suposición será descartada y reemplazada por el flujo de ejecución real. Sin embargo, por el momento en que esos números son lo mismo, entonces el procesador puede saltar esas instrucciones rápidamente.
Sin embargo, hay muchos problemas cuando se trata de ejecución especulativa, y el resultado son vulnerabilidades como Spectre, Zenbleed, Downfall y más. Es una característica poderosa a la que le debemos gran parte del rendimiento de la CPU de hoy en día, pero es un objetivo importante cuando los investigadores buscan vulnerabilidades en las CPU.
Mitigación: un inhibidor del rendimiento
Mitigar estas vulnerabilidades es de suma importancia, pero el problema es que estas mitigaciones a menudo afectan el rendimiento. En el caso del Zenbleed más reciente de AMD, la mitigación podría provocar enormes gastos generales de rendimiento.
La razón de esto es que la única forma real de evitarlo es deshabilitar o cambiar el comportamiento del predictor de rama en el procesador afectado. El mismo impacto en el rendimiento se puede encontrar en las mitigaciones de la caída de Intel, Los primeros informes sugieren impactos en el rendimiento de hasta el 39 %.. Juegos épicos una vez compartido famosamente Gráficos de utilización de CPU una vez que se reveló la vulnerabilidad Meltdown y el impacto que tuvieron esas mitigaciones en el uso de CPU de la empresa. Como era de esperar, hubo un aumento importante en el uso de la CPU. Donde las cosas se ponen aterradoras es con la solución para Inception de AMD, Se encontró que el rendimiento cayó hasta un 54%..
Debido a que vulnerabilidades como esta afectan funciones fundamentales del procesador, es difícil solucionarlas aparte de deshabilitar o dañar gravemente funciones principales. La ejecución especulativa es increíblemente importante y muchas personas sentirán estas mitigaciones. El rendimiento de los juegos es menos predecible, por lo que si el uso principal de su PC son los juegos, es posible que se encuentre Está bien, ya que tu computadora no puede hacer tantas predicciones, pero estos problemas aumentan a niveles mucho mayores. sistemas.
¿Se ven afectados los futuros procesadores?
Afortunadamente, en el caso de Intel Downfall y Zenbleed, estos exploits afectan a procesadores más antiguos. Procesadores más nuevos de ambas compañías están a salvo y no hay nada de qué preocuparse por ahora. Un rediseño importante suele ser lo que acaba solucionando estos problemas. Por ejemplo, Spectre afectó a las CPU de octava y novena generación de Intel, pero la novena generación incorporó una versión de hardware de las correcciones de software que se implementaron. completo con el golpe de rendimiento. La décima generación de Intel todavía era segura, pero ya no tenía un impacto en el rendimiento debido a esas medidas de mitigación.
Como resultado, dado que tanto Downfall como Zenbleed ya fueron solucionados en las versiones más recientes de sus respectivos procesadores, los usuarios no tienen mucho de qué preocuparse. Por supuesto, siempre se pueden descubrir más vulnerabilidades, pero en este momento, estás a salvo.