Istraživači s nekoliko američkih i australskih sveučilišta razvili su dva napada klase Rowhammer — GDDRHammer i GeForge, koji omogućuju iskrivljenje pojedinih bitova u GDDR video memorijskim čipovima prilikom izvršavanja neprivilegiranog CUDA jezgre na NVIDIA GPU-ima. Za razliku od prošle godine predstavljenog metoda GPUHammer, nove napade ne ograničava utjecaj na podatke koji se obrađuju u GPU memoriji, već omogućuju potpuni pristup svoj glavnoj memoriji koja pripada adresnom prostoru CPU-a. Istraživači su demonstrirali eksploite koji pružaju root pristup glavnoj sustavu prilikom izvođenja neprivilegiranog CUDA jezgre na GPU-u.
Oba napada postižu prerano gubitak punjenja u određenim ćelijama video memorije, kojima napadači nemaju izravan pristup, što dovodi do promjene bitova pohranjenih u tim ćelijama. Mogućnost čitanja i pisanja u memoriju koja pripada adresnom prostoru CPU-a ostvaruje se putem ometanja u radu GPU alokatora memorije (cudaMalloc) kako bi se narušila izolacija GPU memorije i prikazali virtualni adresa GPU-a na proizvoljne fizičke adrese memorije GPU-a ili CPU-a.
Ometanje se provodi putem iskrivljavanja vrijednosti bitova u video memoriji, u kojoj se pohranjuju tablice stranica GPU memorije, odgovorne za prevođenje virtualnih adresa u fizičke. Razlike između napada GDDRHammer i GeForge svode se na to da metoda GDDRHammer modificira tablicu stranica posljednje razine (PT — Last Level Page Table), dok metoda GeForge modificira katalog stranica posljednje razine (PD0 — Last Level Page Directory).
Osim toga, navedene tablice prevođenja adresa koriste se za organizaciju izravnog pristupa GPU-u do CPU memorije, stoga promjena adrese u GPU tablici stranica na fizičku adresu u glavnoj radnoj memoriji i postavljanje APERTURE zastavice, koja uključuje režim mapiranja CPU memorije, omogućuje čitanje i pisanje podataka uz pristup glavnoj memoriji preko PCIe sabirnice s onemogućenim IOMMU-om (zadano onemogućeno).


Uspješni napadi demonstrirani su na visokoučinkovitim profesionalnim grafičkim karticama NVIDIA RTX A6000 temeljenim na mikroarhitekturi Ampere (cijena novih kartica počinje od $6850, a polovnih od $4000) i kućnim modelima NVIDIA RTX 3060 ($250-300). Razvijena tehnika zaobilaženja zaštite od Rowhammer u kombinaciji s iskorištavanjem sredstava za paralelizaciju operacija dostupnih u GPU-u omogućila je 64 puta veći frekvencijski porast pojave iskrivljenja ćelija u usporedbi sa prethodnim napadima. Kao privremena mjera za blokiranje napada, tim može uključiti način ispravljanja grešaka ECC (Error Correcting Codes) pomoću 'nvidia-smi -e 1', ali to dovodi do dodatnih troškova i potencijalno može biti zaobiđeno koristeći metode napada kao što su ECCploit i ECC.fail.
Napad RowHammer omogućuje iskrivljavanje sadržaja pojedinačnih bitova DRAM memorije cikličnim čitanjem podataka iz susjednih ćelija memorije. Budući da DRAM memorija predstavlja dvodimenzionalnu matricu ćelija, od kojih svaka sastoji od kondenzatora i tranzistora, kontinuirano čitanje istog područja memorije dovodi do fluktuacije napona i anomalija koje uzrokuju malu gubitak naboja u susjednim ćelijama. Ako je intenzitet čitanja velik, susjedna ćelija može izgubiti dovoljno velike količine naboja i sljedeći ciklus regeneracije neće uspjeti obnoviti njezino prvobitno stanje, što će rezultirati promjenom vrijednosti spremljenih podataka u ćeliji.
Metoda napada Rowhammer predložena je 2014. godine, nakon čega je započela igra mačke i miša između istraživača sigurnosti i proizvođača opreme — proizvođači memorijskih čipova pokušavali su blokirati ranjivost, dok su istraživači pronalazili nove načine njezina zaobilaženja. Na primjer, za zaštitu od RowHammer-a proizvođači čipova dodali su mehanizam TRR (Target Row Refresh), ali se pokazalo da on blokira iskrivljenje ćelija samo u posebnim slučajevima i ne štiti od svih mogućih varijacija napada. Metode napada razvijene su za DDR3, DDR4 i DDR5 čipove na sustavima s Intel, AMD i ARM procesorima, kao i za GDDR memoriju NVIDIA GPU-a. Osim toga, pronađeni su načini za zaobilaženje ispravljanja grešaka ECC i predložene opcije za napad putem mreže i izvođenjem JavaScript koda u pregledniku.
Izvor: opennet.ru
