Kaksi hyökkäystä AMD-suorittimien välimuistikanavan ennustusmekanismiin

Ryhmä tutkijoita Grazin teknisestä yliopistosta (Itävalta), joka tunnettiin aiemmin hyökkäysmenetelmien kehittämisestä MDS, NetSpectre, Heittovasara и ZombieLoad, suoritti tutkimusta AMD-prosessoreille ominaisista laitteiston optimoinneista ja on kehittynyt kaksi uutta sivukanavahyökkäysmenetelmää, jotka manipuloivat tietovuotoja AMD-prosessorien L1-välimuistikanavan ennustusmekanismin toiminnan aikana. Tekniikoilla voidaan vähentää ASLR-suojauksen tehokkuutta, palauttaa avaimia haavoittuvissa AES-toteutuksissa ja lisätä Spectre-hyökkäyksen tehokkuutta.

Ongelmia havaittiin kanavan ennustusmekanismin (way ennustaja) toteutuksessa CPU:n ensimmäisen tason datavälimuistissa (L1D), jota käytetään ennustamaan, mikä välimuistikanava sisältää tietyn muistiosoitteen. AMD-prosessoreissa käytetty optimointi perustuu μ-tunnisteiden (μTag) tarkistamiseen. μTag lasketaan käyttämällä tiettyä hash-funktiota virtuaaliosoitteeseen. Käytön aikana kanavan ennustusmoottori määrittää välimuistikanavan taulukosta μTag-tunnisteen avulla. Siten μTag antaa prosessorille mahdollisuuden rajoittua käyttämään vain tiettyä kanavaa etsimättä kaikkia vaihtoehtoja, mikä vähentää merkittävästi suorittimen energiankulutusta.

Kaksi hyökkäystä AMD-suorittimien välimuistikanavan ennustusmekanismiin

Kanavanennustusjärjestelmän toteutuksen käänteisessä suunnittelussa vuosina 2011–2019 julkaistuissa AMD-prosessorien eri sukupolvissa tunnistettiin kaksi uutta sivukanavahyökkäystekniikkaa:

  • Collide+Probe - sallii hyökkääjän seurata muistin käyttöä samassa loogisessa CPU-ytimessä toimivissa prosesseissa. Menetelmän ydin on käyttää virtuaalisia osoitteita, jotka aiheuttavat törmäyksiä hajautusfunktiossa, jota käytetään laskemaan μTag muistin käytön seuraamiseksi. Toisin kuin Intel-prosessoreihin käytetyt Flush+Reload- ja Prime+Probe-hyökkäykset, Collide+Probe ei käytä jaettua muistia ja toimii ilman fyysisten osoitteiden tuntemista.
  • Load+Reload – voit määrittää erittäin tarkasti muistin käyttöjäljet ​​samassa fyysisessä prosessoriytimessä. Menetelmä perustuu siihen, että fyysinen muistisolu voi olla L1D-välimuistissa vain kerran. Nuo. pääsy samaan muistisoluun eri virtuaaliosoitteessa aiheuttaa sen, että solu häädetään L1D-välimuistista, jolloin muistiin pääsyä voidaan seurata. Vaikka hyökkäys perustuu jaettuun muistiin, se ei tyhjennä välimuistin rivejä, mikä mahdollistaa salahyökkäykset, jotka eivät poista tietoja viimeisen tason välimuistista.

Collide+Probe- ja Load+Reload-tekniikoiden perusteella tutkijat ovat osoittaneet useita sivukanavan hyökkäysskenaarioita:

  • Mahdollisuus käyttää menetelmiä piilotetun epäsuoran viestintäkanavan järjestämiseen kahden prosessin välillä, mikä mahdollistaa tiedonsiirron jopa 588 kB sekunnissa, on esitetty.
  • Käyttämällä törmäyksiä μTagissa oli mahdollista vähentää entropiaa eri ASLR-muunnelmille (Address Space Layout Randomization) ja ohittaa ASLR-suojaus ytimessä täysin päivitetyssä Linux-järjestelmässä. Mahdollisuus suorittaa hyökkäys ASLR-entropian vähentämiseksi sekä käyttäjäsovelluksista että käyttämällä hiekkalaatikkoympäristössä suoritettua JavaScript-koodia ja toisessa vierasympäristössä toimivaa koodia näytetään.

    Kaksi hyökkäystä AMD-suorittimien välimuistikanavan ennustusmekanismiin

  • Collide+Probe-menetelmän perusteella toteutettiin hyökkäys salausavaimen palauttamiseksi haavoittuvasta toteutuksesta (perustuu T-pöytä) AES-salaus.
  • Käyttämällä Collide+Probe-menetelmää tiedonhankintakanavana Spectre-hyökkäys pystyi poimimaan yksityisiä tietoja ytimestä käyttämättä jaettua muistia.

Haavoittuvuus ilmenee mikroarkkitehtuureihin perustuvissa AMD-prosessoreissa
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ ja Zen2.
AMD:lle ilmoitettiin ongelmasta 23. elokuuta 2019, mutta toistaiseksi ei julkaissut raporttia tietoja haavoittuvuuden estämisestä. Tutkijoiden mukaan ongelma voidaan estää mikrokoodin päivitystasolla tarjoamalla MSR-bittejä kanavan ennustusjärjestelmän poistamiseksi selektiivisesti käytöstä, samalla tavalla kuin Intel hallitsi haaran ennustusmekanismien poistamista käytöstä.

Kaksi hyökkäystä AMD-suorittimien välimuistikanavan ennustusmekanismiin

Lähde: opennet.ru

Lisää kommentti