Výskumníci z niekoľkých univerzít v USA a Austrálii vyvinuli dva útoky triedy Rowhammer – GDDRHammer a GeForge – ktoré umožňujú poškodenie jednotlivých bitov v čipoch videopamäte GDDR pri spúšťaní neprivilegovaného jadra CUDA na grafickej karte NVIDIA. Na rozdiel od metódy GPUHammer predstavenej minulý rok sa tieto nové útoky neobmedzujú len na ovplyvnenie údajov spracovaných v pamäti GPU, ale umožňujú plný prístup ku všetkej hlavnej pamäti v adresnom priestore CPU. Výskumníci demonštrovali exploity, ktoré poskytujú root prístup k hostiteľskému systému pri spúšťaní neprivilegovaného jadra CUDA na grafickej karte.
Oba útoky predčasne vyčerpávajú špecifické bunky videopamäte, ku ktorým útočníci nemajú priamy prístup, a menia bity uložené v týchto bunkách. Čítanie a zápis do pamäte v rámci adresného priestoru CPU sa dosahuje zásahom do alokátora pamäte GPU (cudaMalloc), aby sa prelomila izolácia pamäte GPU a namapovali virtuálne adresy GPU na ľubovoľné adresy vo fyzickej pamäti GPU alebo CPU.
Útok sa vykonáva poškodením bitových hodnôt vo videopamäti, ktorá uchováva tabuľky stránok GPU zodpovedné za preklad virtuálnych adries na fyzické. Rozdiel medzi útokmi GDDRHammer a GeForge spočíva v tom, že metóda GDDRHammer modifikuje tabuľku stránok poslednej úrovne (PT), zatiaľ čo metóda GeForge modifikuje adresár stránok poslednej úrovne (PD0).
Okrem iného sa špecifikované tabuľky prekladu adries používajú na organizáciu priameho prístupu GPU k pamäti CPU, preto zmena adresy v tabuľke stránok GPU na fyzickú adresu v hlavnej pamäti RAM a nastavenie príznaku APERTURE, ktorý umožňuje režim mapovania pamäte CPU, umožňuje čítať a zapisovať údaje pristupujúce k hlavnej pamäti cez zbernicu PCIe s vypnutou IOMMU (štandardne vypnutá).


Úspešné útoky boli demonštrované proti vysokovýkonným profesionálnym grafickým kartám NVIDIA RTX A6000 založeným na mikroarchitektúre Ampere (nové karty začínajú na cene 6 850 USD, zatiaľ čo použité na cene 4 000 USD) a spotrebiteľským modelom NVIDIA RTX 3060 (ceny 250 – 300 USD). Vyvinutá technika obchádzania ochrany Rowhammer v kombinácii s využitím paralelizačných schopností GPU umožnila 64-násobné zvýšenie miery poškodenia buniek v porovnaní s predchádzajúcimi útokmi. Ako dočasné opatrenie na blokovanie útokov je možné povoliť režim kódov na opravu chýb (ECC) pomocou príkazu „nvidia-smi -e 1“, čo však prináša dodatočné náklady a potenciálne sa dá obísť pomocou útočných metód, ako sú ECCploit a ECC.fail.
Útok RowHammer umožňuje skresliť obsah jednotlivých bitov pamäte DRAM cyklickým čítaním údajov zo susedných pamäťových buniek. Keďže pamäť DRAM je dvojrozmerné pole buniek, z ktorých každá pozostáva z kondenzátora a tranzistora, vykonávanie nepretržitého čítania tej istej pamäťovej oblasti vedie k výkyvom napätia a anomáliám, čo spôsobuje malú stratu náboja susedných buniek. Ak je intenzita čítania vysoká, susedná bunka môže stratiť dostatočne veľké množstvo náboja, že ďalší obnovovací cyklus nebude mať čas na obnovenie pôvodného stavu, čo povedie k zmene hodnoty údajov uložených v bunke.
Metóda útoku Rowhammer bola navrhnutá v roku 2014, čo spustilo hru na mačku a myš medzi bezpečnostnými výskumníkmi a výrobcami hardvéru: výrobcovia pamäťových čipov sa pokúšali blokovať túto zraniteľnosť, zatiaľ čo výskumníci našli nové spôsoby, ako ju obísť. Napríklad na ochranu pred Rowhammerom výrobcovia čipov pridali mechanizmus TRR (Target Row Refresh), ale ukázalo sa, že to blokuje poškodenie buniek iba v špecifických prípadoch a nechráni pred všetkými možnými scenármi útoku. Metódy útoku boli vyvinuté pre čipy DDR3, DDR4 a DDR5 v systémoch s procesormi Intel, AMD a ARM, ako aj pre pamäť GDDR v grafických procesoroch NVIDIA. Okrem toho boli nájdené metódy na obídenie korekcie chýb ECC a boli navrhnuté metódy útoku pre sieťové útoky a vykonávanie kódu JavaScript v prehliadači.
Zdroj: opennet.ru
