Cercetătorii de la mai multe universități din SUA și Australia au dezvoltat două atacuri de tip Rowhammer — GDDRHammer și GeForge — care permit coruperea biților individuali din cipurile de memorie video GDDR la executarea unui kernel CUDA neprivilegiat pe un GPU NVIDIA. Spre deosebire de metoda GPUHammer prezentată anul trecut, aceste noi atacuri nu se limitează la afectarea datelor procesate în memoria GPU, ci permit accesul complet la toată memoria principală din spațiul de adrese al procesorului. Cercetătorii au demonstrat exploit-uri care acordă acces root la sistemul gazdă la executarea unui kernel CUDA neprivilegiat pe un GPU.
Ambele atacuri epuizează prematur anumite celule de memorie video la care atacatorii nu au acces direct, modificând biții stocați în acele celule. Citirea și scrierea în memorie în spațiul de adrese al procesorului se realizează prin interferența cu alocatorul de memorie GPU (cudaMalloc) pentru a rupe izolarea memoriei GPU și a mapa adresele GPU virtuale la adrese arbitrare din memoria fizică a GPU sau CPU.
Atacul se desfășoară prin coruperea valorilor biților din memoria video, care stochează tabelele de pagini ale GPU-ului responsabile de traducerea adreselor virtuale în adrese fizice. Diferența dintre atacurile GDDRHammer și GeForge este că metoda GDDRHammer modifică tabelul de pagini de ultimul nivel (PT), în timp ce metoda GeForge modifică directorul de pagini de ultimul nivel (PD0).
Printre altele, tabelele de traducere a adreselor specificate sunt utilizate pentru a organiza accesul direct al GPU-ului la memoria CPU, prin urmare, schimbarea adresei din tabelul de pagini GPU la o adresă fizică din memoria RAM principală și setarea semnalizatorului APERTURE, care activează modul de mapare a memoriei CPU, face posibilă citirea și scrierea datelor care accesează memoria principală prin magistrala PCIe cu IOMMU dezactivat (dezactivat în mod implicit).


Atacurile reușite au fost demonstrate împotriva plăcilor grafice profesionale NVIDIA RTX A6000 de înaltă performanță, bazate pe microarhitectura Ampere (plăcile noi încep de la 6850 USD, în timp ce cele second-hand încep de la 4000 USD) și a modelelor NVIDIA RTX 3060 pentru consumatori (250-300 USD). Tehnica dezvoltată pentru ocolirea protecției Rowhammer, combinată cu utilizarea capacităților de paralelizare ale GPU-ului, a permis o creștere de 64 de ori a ratei de corupere a celulelor în comparație cu atacurile anterioare. Ca măsură temporară pentru blocarea atacurilor, modul Error Correcting Codes (ECC) poate fi activat folosind comanda „nvidia-smi -e 1”, dar acest lucru introduce sarcini suplimentare și poate fi ocolit folosind metode de atac precum ECCploit și ECC.fail.
Atacul RowHammer permite distorsionarea conținutului biților individuali ai memoriei DRAM prin citirea ciclică a datelor din celulele de memorie vecine. Deoarece memoria DRAM este o matrice bidimensională de celule, fiecare constând dintr-un condensator și un tranzistor, efectuarea citirii continue a aceleiași zone de memorie duce la fluctuații de tensiune și anomalii, provocând o mică pierdere de sarcină a celulelor vecine. Dacă intensitatea citirii este mare, atunci celula vecină poate pierde o cantitate suficient de mare de sarcină încât următorul ciclu de reîmprospătare nu va avea timp să-și restabilească starea inițială, ceea ce va duce la o modificare a valorii datelor stocate în celulă.
Metoda de atac Rowhammer a fost propusă în 2014, declanșând un joc de-a șoarecele și pisica între cercetătorii în securitate și producătorii de hardware: producătorii de cipuri de memorie au încercat să blocheze vulnerabilitatea, în timp ce cercetătorii au găsit noi modalități de a o ocoli. De exemplu, pentru a se proteja împotriva Rowhammer, producătorii de cipuri au adăugat mecanismul TRR (Target Row Refresh), dar s-a dovedit că acesta bloca coruperea celulelor doar în cazuri specifice și nu proteja împotriva tuturor scenariilor de atac posibile. Au fost dezvoltate metode de atac pentru cipuri DDR3, DDR4 și DDR5 pe sisteme cu procesoare Intel, AMD și ARM, precum și pentru memoria GDDR în GPU-urile NVIDIA. În plus, au fost găsite metode pentru a ocoli corecția erorilor ECC și au fost propuse metode de atac pentru atacuri de rețea și prin executarea de cod JavaScript într-un browser.
Sursa: opennet.ru
