Dos ataques al mecanismo de predicción del canal de caché en los procesadores AMD

Un grupo de investigadores de la Universidad Técnica de Graz (Austria), conocidos anteriormente por desarrollar métodos de ataque MDS, Espectro de red, Martillo arrojadizo и ZombieLoad, realizó una investigación sobre optimizaciones de hardware específicas para procesadores AMD y Ha desarrollado dos nuevos métodos de ataques de canal lateral que manipulan las fugas de datos durante el funcionamiento del mecanismo de predicción del canal de caché LXNUMX de los procesadores AMD. Las técnicas se pueden utilizar para reducir la eficacia de la protección ASLR, recuperar claves en implementaciones AES vulnerables y aumentar la eficacia del ataque Spectre.

Se identificaron problemas en la implementación del mecanismo de predicción de canales (predictor de vías) en el caché de datos de primer nivel (L1D) de la CPU, utilizado para predecir qué canal de caché contiene una determinada dirección de memoria. La optimización utilizada en los procesadores AMD se basa en la comprobación de etiquetas μ (μTag). μTag se calcula aplicando una función hash específica a la dirección virtual. Durante la operación, el motor de predicción de canales utiliza μTag para determinar el canal de caché a partir de la tabla. Así, μTag permite que el procesador se limite a acceder solo a un canal específico, sin buscar entre todas las opciones, lo que reduce significativamente el consumo de energía de la CPU.

Dos ataques al mecanismo de predicción del canal de caché en los procesadores AMD

Durante la ingeniería inversa de la implementación del sistema de predicción de canales en varias generaciones de procesadores AMD lanzados entre 2011 y 2019, se identificaron dos nuevas técnicas de ataque de canal lateral:

  • Collide+Probe: permite a un atacante rastrear el acceso a la memoria para procesos que se ejecutan en el mismo núcleo lógico de la CPU. La esencia del método es utilizar direcciones virtuales que provocan colisiones en la función hash utilizada para calcular μTag para rastrear el acceso a la memoria. A diferencia de los ataques Flush+Reload y Prime+Probe utilizados en procesadores Intel, Collide+Probe no utiliza memoria compartida y funciona sin conocimiento de direcciones físicas.
  • Cargar+Recargar: le permite determinar con mucha precisión los rastros de acceso a la memoria en el mismo núcleo físico de la CPU. El método se basa en el hecho de que una celda de memoria física sólo puede estar una vez en la caché L1D. Aquellos. acceder a la misma celda de memoria en una dirección virtual diferente hará que la celda sea expulsada del caché L1D, lo que permitirá rastrear el acceso a la memoria. Aunque el ataque se basa en la memoria compartida, no vacía las líneas de la caché, lo que permite ataques sigilosos que no expulsan datos de la caché del último nivel.

Basándose en las técnicas Collide+Probe y Load+Reload, los investigadores han demostrado varios escenarios de ataque de canal lateral:

  • Se muestra la posibilidad de utilizar métodos para organizar un canal de comunicación indirecto oculto entre dos procesos, permitiendo la transferencia de datos a velocidades de hasta 588 kB por segundo.
  • Usando colisiones en μTag, fue posible reducir la entropía para diferentes variantes de ASLR (Address Space Layout Randomization) y evitar la protección ASLR en el kernel en un sistema Linux completamente actualizado. Se muestra la posibilidad de realizar un ataque para reducir la entropía ASLR tanto desde aplicaciones de usuario como utilizando código JavaScript ejecutado en un entorno sandbox y código ejecutándose en otro entorno invitado.

    Dos ataques al mecanismo de predicción del canal de caché en los procesadores AMD

  • Basado en el método Collide+Probe, se implementó un ataque para recuperar la clave de cifrado de una implementación vulnerable (basada en mesa en T) Cifrado AES.
  • Al utilizar el método Collide+Probe como canal de adquisición de datos, el ataque Spectre pudo extraer datos privados del kernel sin utilizar memoria compartida.

La vulnerabilidad ocurre en procesadores AMD basados ​​en microarquitecturas
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ y Zen2.
AMD fue notificada del problema el 23 de agosto de 2019, pero hasta ahora no publicó el informe con información sobre cómo bloquear la vulnerabilidad. Según los investigadores, el problema se puede bloquear en el nivel de actualización del microcódigo proporcionando bits MSR para desactivar selectivamente el sistema de predicción de canales, similar a lo que hizo Intel para controlar la desactivación de los mecanismos de predicción de ramas.

Dos ataques al mecanismo de predicción del canal de caché en los procesadores AMD

Fuente: opennet.ru

Añadir un comentario