Toronto Universitātes pētnieki ir prezentējuši pirmo Rowhammer uzbrukuma veidu, kas tiek izmantots, lai sagrozītu videomemoriā esošo saturu. Uzbrukuma iespējamība, kas var novest pie līdz 8 bitu datu nomaiņas, tika demonstrēta uz diskretā NVIDIA A6000 GPU ar GDDR6 videomemoriju. Kā praktisks piemērs tiek parādīts, kā šādu sagrozījumu var izmantot, lai iejauktos mašīnmācīšanās modeļu izpildē un būtiski (no 80% līdz 0,1%) samazinātu to sniegto rezultātu precizitāti, mainot tikai viena bita vērtību.

Līdz šim Rowhammer uzbrukumu veidošana videomemoriām bija apgrūtināta, jo bija grūti noteikt fizisko atmiņas izkārtojumu GDDR mikroshēmās, piekļuves aizture bija (četri reizes lēnāka) un atmiņas atjaunošanas frekvence bija augstāka. Turklāt pētījumu veikšanu apgrūtināja GDDR mikroshēmās izmantotie patentētie aizsardzības mehānismi pret manipulācijām, kas noveda pie priekšlaicīgas lādiņa zuduma, kuru analīzei bija nepieciešams izveidot īpašas testēšanas stenda uz FPGA bāzes.
Lai izpētītu videomemoriju, pētnieki izstrādāja jaunu GDDR DRAM atgriezeniskās inženierijas tehniku, un pašā uzbrukumā tika izmantoti paralēlā skaitļošanas optimizācijas līdzekļi, kas kalpoja kā piekļuves intensitātes pastiprinātāji atsevišķām šūnām. Uzbrukuma veikšanai uz NVIDIA GPU tika izmantots zemas līmeņa CUDA kods.
CUDA lietotāja kodā netiek veikta piekļuve fiziskajām atmiņas adresēm, taču NVIDIA vadītājā notika virtuālās atmiņas atspoguļošana vienā un tajā pašā fiziskajā atmiņā, ko pētnieki izmantoja, lai aprēķinātu virtuālās atmiņas ofsetu un noteiktu banku izkārtojumu. Piekļuves analīze dažādām atmiņas bankām tika veikta, analizējot aiztures, kas atšķīrās, piekļūstot vienai vai dažādām bankām.
Sistēmās, kas kopīgi izmanto GPU, piemēram, serverus Mašīnmācīšanās modeļu izpildei uzbrukums ļauj vienam lietotājam mainīt citu lietotāju videomemori ar datiem. Kā aizsardzības pasākumu uzņēmums NVIDIA iesaka aktivizēt kļūdu labojuma kodus (ECC, Error Correction Codes) ar komandu «nvidia-smi -e 1» vai izmantot grafiskās kartes sērijas ar OD-ECC (On-Die ECC) atbalstu, piemēram, GeForce RTX 50, RTX PRO, GB200, B200, B100, H100, H200, H20 un GH200.
Pēc pētnieku datiem ECC aktivizēšana sistēmās ar GPU A6000 samazina mašīnmācīšanās režīmu izpildes veiktspēju aptuveni par 10% un samazina atmiņas apjomu par 6.25%. Instrumenti uzbrukuma veikšanai un zemo līmeņu videomemori izpētes veikšanai sistēmās ar NVIDIA GPU ir publicēti GitHub.
RowHammer uzbrukums ļauj izkropļot atsevišķu DRAM atmiņas bitu saturu, cikliski nolasot datus no blakus esošajām atmiņas šūnām. Tā kā DRAM atmiņa ir divdimensiju šūnu masīvs, kur katra šūna sastāv no kondensatora un tranzistora, nepārtrauktas vienas un tās pašas atmiņas zonas nolasīšanas veikšana noved pie sprieguma svārstībām un anomālijām, kas izraisa nelielu uzlādes zudumu blakus esošajās šūnās. Ja nolasīšanas intensitāte ir liela, tad blakus esošā šūna var zaudēt pietiekami daudz uzlādes, un nākamais atjaunošanas cikls nespej atjaunot tās sākotnējo stāvokli, kā rezultātā mainās saglabāto datu vērtība šūnā.
Rowhammer uzbrukuma metode tika piedāvāta 2014. gadā, pēc kura starp drošības pētniekiem un ražotājiem sākās kaķa un peles spēle — atmiņas čipu ražotāji centās bloķēt ievainojamību, bet pētnieki atrada jaunus veidus, kā to apiet. Piemēram, lai aizsargātu no RowHammer, čipu ražotāji pievienoja TRR (Target Row Refresh) mehānismu, taču izrādījās, ka tas bloķē šūnu deformāciju tikai atsevišķos gadījumos, bet nepasargā no visiem iespējamiem uzbrukumiem. Uzbrukuma metodes tika izstrādātas DDR3, DDR4 un DDR5 čipiem uz Intel, AMD un ARM procesoru sistēmām. Tika atrasti arī veidi, kā apiet ECC kļūdu labojumus, un tika piedāvāti varianti uzbrukumu veikšanai, izmantojot tīklu un veicot JavaScript kodu pārlūkā.
Avots: opennet.lv
