Os dois novos ataques “Collide + Probe” e “Load + Reload” exploram uma vulnerabilidade do preditor L1D, presente nos processadores AMD, que serve para antever onde é que os dados serão guardados no processador para depois detectar quando é que esses dados são acedidos. Através da combinação dessas vulnerabilidades com métodos já existentes, cientistas da Graz Universitry of Technology conseguiram obter acesso completo sem permissão a informação guardada em computadores com processadores AMD, tanto em laboratório como em servidores em funcionamento.
Nos computadores modernos, os processadores executam muito software ao mesmo tempo, por isso, uma parte essencial da segurança informática actual passa por separá-los de forma a que um determinado programa não consiga ver o que os outros estão a fazer, mas através da exploração desta vulnerabilidade é possível a partilha de dados entre programas que estejam a ser executados num mesmo núcleo de um processador AMD.
As duas novas vulnerabilidades, a que foi dado o nome genérico de “Take A Way”, o software que ataca começa por escolher um endereço que corresponde a um endereço ocupado pelos dados do programa a atacar. O atacante depois acede aos dados guardados na sua versão do endereço, mas cria uma ligação no endereço dentro da cache e no preditor. O caminho que o processador vai tomar para aceder a esses dados na vez seguinte é mais rápido, mas se o endereço for acedido uma terceira vez, esse acesso será mais lento.
Tudo o que o atacante tem de fazer é aceder a esse endereço em intervalos regulares. Se o acesso for rápido, o programa que está a ser atacado não acedeu a esses dados durante o intervalo, mas se demorar os dados foram acedidos. Isto permite ao atacante monitorizar quando é que a vítima acede aos dados guardados no processador, sem saber onde é que estão e sem a necessidade de partilhar a memória com o programa a ser atacado.
A partir daqui os pesquisadores usaram estas vulnerabilidades com outros ataques conhecidos para piorar as coisas. Construíram um canal escondido entre dois programas, que não deviam comunicar entre si, e conseguiram ultrapassar o sistema ASLR (Address Space Layout Randomization), o que é um passo importante para aceder à memória do processador. Depois conseguiram aceder a dados do kernel e até desbloquear chaves de encriptação AES.
Este processo não é fácil e envolve combinar um conjunto de ataques diferentes, mas é possível. A AMD ainda não respondeu a estas alegações, nem tão pouco informou os utilizadores se este problema de segurança pode, ou não, ser resolvido através de uma actualização de firmware e qual será a penalização de desempenho que essa possível actualização trará.