Prijavi se z GoogleID

» »

Napad rowhammer deluje tudi s pomnilnikom ECC

Napad rowhammer deluje tudi s pomnilnikom ECC

Slo-Tech - Napad rowhammer, ki ga poznamo že dobra tri leta, zmore prizadeti tudi pomnilniške module, ki uporabljajo ECC, so pokazali raziskovalci z amsterdamske univerze. Doslej je veljalo, da ECC nudi zaščito pred tovrstnimi napadi, a se je izkazalo, da je vsaj DDR3 ranljiv tudi z ECC. Nova varianta napada, ki se imenuje ECCploit, še ni bila odkrita v divjini in verjetno v praksi ne more vplivati na storitve v oblaku, kot sta Azure in AWS.

Rowhammer je posledica leta 2014 odkrite pomanjkljivosti modernih pomnilniških čipov. Ti so fizično že tako majhni, da lahko dogajanje v eni celici vpliva na stanje sosednjih. Če večkrat v kratkem razmaku poizkusimo brati podatke iz iste vrstice (row), to lahko pokvari vsebino sosednjih celic. S premeteno izvedbo napada lahko v sosednjih celicah dosežemo ciljane spremembe, s katerimi lahko povzročimo tudi eskalacijo privilegijev. Napad je možen tudi na telefonih.

Sistem ECC je namenjen odkrivanju (spontanih) napak v pomnilniku, saj paritetni bit lahko ujame spremembo enega bita v 64-bitnem zaporedju. Če sta napaki dve, se prizadeti program navadno sesuje. Toda dosežemo lahko tudi spremembo treh bitov, kjer pa se napaka ne odkrije. Na ta način je mogoče zlorabiti ranljivost za napad na sistem. ECCploit, kakor so raziskovalci poimenovali napad, deluje na pomnilniške čipe DDR3. Za DDR4 demonstracije še ni, pravijo pa, da verjetno tudi obstaja kakšna možnost. Napad so izvedli v kontroliranem okolju s fizičnim dostopom, zato trenutno menijo, da nevarnosti za oddaljene sisteme ni. Je pa ranljivost zanimiva že z akademskega vidika.

4 komentarji

Jirzy ::

Kaksna pa je nevarnost, ce predpostavimo, da je taksne napade na oddaljenih sistemih mozno izvajati? Kolikor vem, se aplikacija ne zaveda, kateri podatki so fizicno spravljeni v sosednjih naslovih in posledicno ne ve, kaj bere. Ali pac?

Ahim ::

Jirzy je izjavil:

Kaksna pa je nevarnost, ce predpostavimo, da je taksne napade na oddaljenih sistemih mozno izvajati? Kolikor vem, se aplikacija ne zaveda, kateri podatki so fizicno spravljeni v sosednjih naslovih in posledicno ne ve, kaj bere. Ali pac?

Aplikacija je skupek ukazov, ki jih izvede procesor. Nima mozganov (ne aplikacija, ne prcoesor), torej se tudi nicesar ne more zavedati.

Program napise programer (oziroma ga proizvede prevajalnik, ki ga je napisal nek drug programer). Ta programer lahko bolje ali slabse pozna arhitekturo sistema, za katerega pise.

Dandanes operacijski sistem in aplikacije zivijo v navideznem pomnilniskem prostoru (torej bi teoreticno lahko katerakoli dva "sosednja" virtualna naslova bila fizicno "postavljena narazen"), za katerega pa veljajo v vsaki prakticni implementaciji dolocena pravila (v praksi je tako tudi virtualni prstor razdeljen v bloke, naslovi znotraj katerih so fizicno alocirani skupaj tako fizicno, kot navidezno). Poznavanje teh pravil izkorisca ravno tovrsten napad.

Pa se komentar na novico: zakaj bi bil pa tovrsten napad na ECC RAM kaj posebnega? Treba se je edinole zavedati, da ECC logika dela racunico, torej morajo biti spremembe take, da se vedno ustrezajo ECC izracunu. Ce se torej da spremeniti stanje posameznega bita ali celotne celice, potem se da spremeniti tudi stanje celice tako, da bo ECC se vedno ustrezen. Nic posebnega torej ...

MrStein ::

Ahim je izjavil:


Pa se komentar na novico: zakaj bi bil pa tovrsten napad na ECC RAM kaj posebnega? Treba se je edinole zavedati, da ECC logika dela racunico, torej morajo biti spremembe take, da se vedno ustrezajo ECC izracunu. Ce se torej da spremeniti stanje posameznega bita ali celotne celice, potem se da spremeniti tudi stanje celice tako, da bo ECC se vedno ustrezen. Nic posebnega torej ...

Posebno je, ker detajli ECC sistema niso javno znani.
Ker moraš flipniti več bitov istočasno, da se ne sproži samopopravljanje ECC sistema.
Ker moraš flipniti ECC bite, ki so kot rečeno bolj slabo dokumentirani in niso tako direktno dosegljivi kot navadni biti.

Ja, v teoriji je preprosto: flipneš ciljni bit (kar že znamo), plus še ustrezni ECC bit. Done. Malenkost.
V praksi pa pač ni. Kot ponavadi.

Detajli so v linkanem paper-ju.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

googleg1 ::

Ahim je izjavil:

Pa se komentar na novico: zakaj bi bil pa tovrsten napad na ECC RAM kaj posebnega? Treba se je edinole zavedati, da ECC logika dela racunico, torej morajo biti spremembe take, da se vedno ustrezajo ECC izracunu. Ce se torej da spremeniti stanje posameznega bita ali celotne celice, potem se da spremeniti tudi stanje celice tako, da bo ECC se vedno ustrezen. Nic posebnega torej ...
ECC biti so shranjeni v locenem pomnilniskem modulu kot delovni pomnilnik. Sepravi ce imas recimo 8GB rama razdeljenega v 4x 2GB pomnilniske cipe, se potem za ECC doda se 5 cip z 2GB rama, kar skupno nanese 10GB. Sepravi, ce pokvaris en bit v delovnem pomnilniku bi moral ecc to zaznati, ker ima poracunan sumcheck vsega delovnega pomnilnika. Tukaj je pa potem pomembno koliko bitni ecc je.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

DDR4 Single vs Dual Rank & rowhammer

Oddelek: Kaj kupiti
6527 (409) Modri dirkač
»

Tudi DDR4 in DDR3 z ECC ranljiva na obračanje bitov

Oddelek: Novice / Varnost
144459 (3047) sodnicaN
»

Zloraba spreminjanja bitov v pomnilniku zaradi branja tudi v praksi

Oddelek: Novice / Varnost
88283 (6954) MrStein
»

Okvara podatkov v DDR3 zaradi vpliva sosednjih celic (strani: 1 2 )

Oddelek: Novice / Pomnilnik
5516397 (12831) AndrejO
»

Kaj pomeni to??? Large memory modules should be ECC/Parity

Oddelek: Pomoč in nasveti
111159 (1159) kixs

Več podobnih tem