Cercetătorii de la Universitatea din Toronto au prezentat prima attack de tip Rowhammer aplicată pentru a corupe conținutul memoriei video. Capacitatea de a efectua atacul, care duce la substituirea a până la 8 biți de date, a fost demonstrată pe GPU-ul discret NVIDIA A6000 cu memorie video GDDR6. Ca exemplu practic, este arătat cum poate fi folosită o astfel de corupție pentru a interveni în execuția modelurilor de învățare automată, reducând semnificativ (de la 80% la 0.1%) acuratețea rezultatelor emise prin schimbarea valorii unui singur bit.

Până acum, crearea atacurilor de tip Rowhammer pentru memoria video a fost îngreunată din cauza dificultății de a determina aranjamentul fizic al memoriei în cipurile GDDR, întârzierilor mari la accesul la memorie (de 4 ori mai lent) și a frecvenței mai mari de actualizare a memoriei. În plus, realizarea cercetărilor a fost complicată de utilizarea în cipurile GDDR a mecanismelor proprietare de protecție împotriva manipulărilor care duc la pierderea prematură de sarcină, pentru analiza cărora era necesară crearea de bancuri de teste hardware speciale bazate pe FPGA.
Pentru a studia memoria video, cercetătorii au creat o nouă tehnică de inginerie inversă a DRAM GDDR, iar în atac a fost folosită optimizări pentru accesul la memorie utilizate în organizarea calculului paralel, care au fost folosite ca amplificatoare ale intensității accesului la celulele individuale. Pentru a efectua atacul pe GPU-ul NVIDIA a fost folosit cod low-level CUDA.
În codul utilizatorului CUDA nu se efectuează accesări la adresele fizice ale memoriei, dar în driverul NVIDIA s-a realizat reflectarea memoriei virtuale într-o aceeași memorie fizică, de care cercetătorii au profitat pentru a calcula ofsetul memoriei virtuale și a determina aranjamentul bancurilor de memorie. Recunoașterea accesărilor la diferitele bancuri de memorie a fost realizată prin analiza întârzierilor, care diferă în funcție de accesul la unul sau la mai multe bancuri de memorie.
În sistemele care folosesc împreună GPU-uri, cum ar fi servere Pentru realizarea modelelor de învățare automată, atacul permite unui utilizator să schimbe conținutul memoriei video cu datele unui alt utilizator. Ca măsură de protecție, compania NVIDIA recomandă activarea codurilor de corectare a erorilor (ECC, Error Correction Codes) cu comanda „nvidia-smi -e 1” sau utilizarea seriilor de plăci video care suportă OD-ECC (On-Die ECC), cum ar fi GeForce RTX 50, RTX PRO, GB200, B200, B100, H100, H200, H20 și GH200.
Conform cercetătorilor, activarea ECC pe sistemele cu GPU A6000 duce la o scădere a performanței în execuția modelului de învățare automată de aproximativ 10% și la o reducere a volumului de memorie de 6,25%. Unelte pentru realizarea atacului și pentru efectuarea ingineriei inverse a layout-ului de bază al memoriei video pe sistemele cu GPU NVIDIA au fost publicate pe GitHub.
Atacul RowHammer permite distorsionarea conținutului anumitor biți din memoria DRAM prin citirea ciclică a datelor din celulele de memorie adiacente. Deoarece memoria DRAM reprezintă un aranjament bidimensional de celule, fiecare având un condensator și un tranzistor, citirea constantă a aceleași zone de memorie duce la fluctuații de tensiune și anomalii, provocând o pierdere mică de sarcină în celulele adiacente. Dacă intensitatea citirii este mare, atunci celula adiacenta poate pierde o cantitate suficient de mare de sarcină, iar ciclul de regenerare nu va reuși să 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, după care a început o joacă de „pisici și șoareci” între cercetătorii în securitate și producătorii de hardware — producătorii de cipuri de memorie au încercat să blocheze vulnerabilitatea, iar cercetătorii au găsit noi metode de ocolire. De exemplu, pentru a proteja împotriva RowHammer, producătorii de cipuri au adăugat mecanismul TRR (Target Row Refresh), dar s-a dovedit că acesta blochează distorsionarea celulelor doar în anumite cazuri, fără a proteja împotriva tuturor variantelor de atac. Metodele de atac au fost dezvoltate pentru cipurile DDR3, DDR4 și DDR5 pe sisteme cu procesoare Intel, AMD și ARM. De asemenea, au fost găsite modalități de ocolire a corectării erorilor ECC și au fost propuse variante ale atacului prin rețea și prin executarea codului JavaScript în browser.
Sursa: opennet.ro
