Dous ataques ao mecanismo de predición da canle de caché nos procesadores AMD

Un grupo de investigadores da Universidade Tecnolóxica de Graz (Austria), antes coñecido por desenvolver métodos de ataque MDS, NetSpectre, Martelo de lanzamento и ZombieLoad, realizou investigacións sobre optimizacións de hardware específicas para procesadores AMD e desenvolveuse dous novos métodos de ataques de canle lateral que manipulan as fugas de datos durante o funcionamento do mecanismo de predición da canle de caché L1 dos procesadores AMD. As técnicas pódense usar para reducir a eficacia da protección ASLR, recuperar claves en implementacións AES vulnerables e aumentar a eficacia do ataque Spectre.

Identificáronse problemas na implementación do mecanismo de predición da canle (predictor de camiños) na caché de datos de primeiro nivel (L1D) da CPU, que se usa para predicir que canle de caché contén un determinado enderezo de memoria. A optimización utilizada nos procesadores AMD baséase na comprobación de etiquetas μ (μTag). μTag calcúlase aplicando unha función hash específica ao enderezo virtual. Durante o funcionamento, o motor de predición de canles usa μTag para determinar a canle da caché a partir da táboa. Así, μTag permite que o procesador se limite a acceder só a unha canle específica, sen buscar en todas as opcións, o que reduce significativamente o consumo de enerxía da CPU.

Dous ataques ao mecanismo de predición da canle de caché nos procesadores AMD

Durante a enxeñaría inversa da implementación do sistema de predición de canles en varias xeracións de procesadores AMD lanzados de 2011 a 2019, identificáronse dúas novas técnicas de ataque de canle lateral:

  • Collide+Probe: permite a un atacante rastrexar o acceso á memoria dos procesos que se executan no mesmo núcleo lóxico da CPU. A esencia do método é usar enderezos virtuais que provocan colisións na función hash utilizada para calcular μTag para rastrexar o acceso á memoria. A diferenza dos ataques Flush+Reload e Prime+Probe utilizados nos procesadores Intel, Collide+Probe non usa memoria compartida e funciona sen coñecer os enderezos físicos.
  • Load+Reload: permítelle determinar con moita precisión os trazos de acceso á memoria no mesmo núcleo físico da CPU. O método baséase no feito de que unha cela de memoria física só pode estar na caché L1D unha vez. Eses. acceder á mesma cela de memoria nun enderezo virtual diferente fará que a cela sexa expulsada da caché L1D, permitindo rastrexar o acceso á memoria. Aínda que o ataque depende da memoria compartida, non limpa as liñas de caché, o que permite ataques furtivos que non expulsan os datos da caché de último nivel.

Baseándose nas técnicas Collide+Probe e Load+Reload, os investigadores demostraron varios escenarios de ataque de canle lateral:

  • Móstrase a posibilidade de utilizar métodos para organizar unha canle de comunicación indirecta oculta entre dous procesos, permitindo a transferencia de datos a velocidades de ata 588 kB por segundo.
  • Usando colisións en μTag, foi posible reducir a entropía para diferentes variantes de ASLR (Address Space Layout Randomization) e evitar a protección ASLR no núcleo nun sistema Linux completamente actualizado. Móstrase a posibilidade de realizar un ataque para reducir a entropía de ASLR tanto desde aplicacións de usuario como mediante código JavaScript executado nun entorno sandbox e código que se executa noutro contorno convidado.

    Dous ataques ao mecanismo de predición da canle de caché nos procesadores AMD

  • Baseado no método Collide+Probe, implementouse un ataque para recuperar a clave de cifrado dunha implementación vulnerable (baseada en Táboa) Cifrado AES.
  • Ao usar o método Collide+Probe como canle de adquisición de datos, o ataque Spectre puido extraer datos privados do núcleo sen usar memoria compartida.

A vulnerabilidade prodúcese nos procesadores AMD baseados en microarquitecturas
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ e Zen2.
A AMD foi notificada do problema o 23 de agosto de 2019, pero ata agora non publicou o informe con información sobre o bloqueo da vulnerabilidade. Segundo os investigadores, o problema pódese bloquear a nivel de actualización do microcódigo proporcionando bits MSR para desactivar selectivamente o sistema de predición de canles, de xeito similar ao que fixo Intel para controlar a desactivación dos mecanismos de predición de ramas.

Dous ataques ao mecanismo de predición da canle de caché nos procesadores AMD

Fonte: opennet.ru

Engadir un comentario