Useiden yhdysvaltalaisten ja australialaisten yliopistojen tutkijat ovat kehittäneet kaksi Rowhammer-luokan hyökkäystä – GDDRHammerin ja GeForgen – jotka mahdollistavat yksittäisten bittien korruptoinnin GDDR-videomuistipiireissä, kun suoritetaan etuoikeuttamatonta CUDA-ydintä NVIDIA-näytönohjaimella. Toisin kuin viime vuonna esitelty GPUHammer-menetelmä, nämä uudet hyökkäykset eivät rajoitu pelkästään näytönohjaimen muistissa käsiteltävään dataan, vaan mahdollistavat täyden pääsyn kaikkeen keskusmuistiin suorittimen osoiteavaruuden sisällä. Tutkijat osoittivat hyökkäystapoja, jotka antavat pääkäyttäjän oikeudet isäntäjärjestelmään, kun suoritetaan etuoikeuttamatonta CUDA-ydintä näytönohjaimella.
Molemmat hyökkäykset tyhjentävät ennenaikaisesti tiettyjä videomuistisoluja, joihin hyökkääjillä ei ole suoraa pääsyä, muuttaen näissä soluissa tallennettuja bittejä. CPU-osoiteavaruuden sisällä olevaan muistiin lukeminen ja kirjoittaminen saavutetaan häiritsemällä GPU-muistin allokaattoria (cudaMalloc), jolloin GPU-muistin eristäminen murretaan ja virtuaaliset GPU-osoitteet yhdistetään mielivaltaisiin osoitteisiin fyysisessä GPU- tai CPU-muistissa.
Hyökkäys suoritetaan korruptoimalla bittiarvoja videomuistissa, joka tallentaa GPU:n sivutaulukot, jotka vastaavat virtuaalisten osoitteiden muuntamisesta fyysisiksi osoitteiksi. GDDRHammer- ja GeForge-hyökkäysten ero on se, että GDDRHammer-metodi muokkaa viimeisen tason sivutaulukkoa (PT), kun taas GeForge-metodi muokkaa viimeisen tason sivuhakemistoa (PD0).
Määritettyjä osoitekäännöstaulukoita käytetään muun muassa GPU:n suoran pääsyn järjestämiseen CPU-muistiin, joten GPU-sivutaulukon osoitteen muuttaminen fyysiseksi osoitteeksi pää-RAM-muistissa ja APERTURE-lipun asettaminen, joka ottaa käyttöön CPU-muistin kartoitustilan, mahdollistaa päämuistiin pääsyn PCIe-väylän kautta IOMMU:n ollessa poistettu käytöstä (oletusarvoisesti poistettu käytöstä).


Onnistuneiksi osoittautuneita hyökkäyksiä osoitettiin Ampere-mikroarkkitehtuuriin perustuvia tehokkaita NVIDIA RTX A6000 -ammattilaisnäytönohjaimia (uusien korttien lähtöhinta on 6 850 dollaria, käytettyjen 4 000 dollaria) ja kuluttajakäyttöön tarkoitettuja NVIDIA RTX 3060 -malleja (250–300 dollaria) vastaan. Kehitetty tekniikka Rowhammer-suojauksen ohittamiseksi yhdistettynä näytönohjaimen rinnakkaisominaisuuksien käyttöön mahdollisti 64-kertaisen solujen vioittumisasteen kasvun aiempiin hyökkäyksiin verrattuna. Väliaikaisena toimenpiteenä hyökkäysten estämiseksi voidaan ottaa käyttöön virheenkorjauskooditila (ECC) komennolla "nvidia-smi -e 1", mutta tämä aiheuttaa lisäkuormitusta ja se voidaan mahdollisesti ohittaa hyökkäysmenetelmillä, kuten ECCploit ja ECC.fail.
RowHammer-hyökkäys mahdollistaa DRAM-muistin yksittäisten bittien sisällön vääristämisen lukemalla syklisesti tietoja naapurimuistisoluista. Koska DRAM-muisti on kaksiulotteinen solumatriisi, joista jokainen koostuu kondensaattorista ja transistorista, saman muistialueen jatkuva lukeminen johtaa jännitevaihteluihin ja poikkeamiin, jotka aiheuttavat pienen varaushäviön naapurisoluissa. Jos lukuintensiteetti on korkea, naapurisolu voi menettää niin suuren määrän varausta, että seuraavalla päivityssyklillä ei ole aikaa palauttaa alkuperäistä tilaansa, mikä johtaa soluun tallennetun datan arvon muutokseen.
Rowhammer-hyökkäysmenetelmä ehdotettiin vuonna 2014, mikä käynnisti kissa ja hiiri -leikin tietoturvatutkijoiden ja laitevalmistajien välillä: muistisirujen valmistajat yrittivät estää haavoittuvuuden, kun taas tutkijat löysivät uusia tapoja ohittaa se. Esimerkiksi Rowhammerilta suojautumiseksi sirujen valmistajat lisäsivät TRR-mekanismin (Target Row Refresh), mutta kävi ilmi, että tämä esti solujen korruptoitumisen vain tietyissä tapauksissa eikä suojannut kaikilta mahdollisilta hyökkäysskenaarioilta. Hyökkäysmenetelmiä kehitettiin DDR3-, DDR4- ja DDR5-siruille Intel-, AMD- ja ARM-prosessoreilla varustetuissa järjestelmissä sekä GDDR-muisteille NVIDIA-näytönohjaimissa. Lisäksi löydettiin menetelmiä ECC-virheenkorjauksen ohittamiseen, ja ehdotettiin hyökkäysmenetelmiä verkkohyökkäyksille ja JavaScript-koodin suorittamiselle selaimessa.
Lähde: opennet.ru
