Napad na pomnilnik Rowhammer omogoča krajo šifrirnih ključev

Matej Huš

12. jun 2019 ob 18:04:37

Raziskovalci z univerz v Michiganu, Gradcu in Adelajdi so odkrili nov način, kako lahko z izkoriščanjem ranljivosti rowhammer pridobijo celo 2048-bitne šifrirne ključe, ki so shranjeni v pomnilniku, če uporabljamo ranljive module DRAM. O napadu rowhammer smo prvikrat pisali pred petimi leti, pol leta pozneje so ga demonstrirali tudi v praksi, kasneje pa so pokazali, da so ranljivi tudi moduli z ECC in celo androidni telefoni. Napad je posledica fizikalnega ozadja pomnilnika, saj se njegove celice v želji po miniaturizaciji komponent, višanju hitrosti in zniževanju porabe približujejo fizikalnim omejitvam. Sedaj so že tako majhne, da lahko vztrajno zaporedno branje vedno znova istih vrstic pomnilnika povzroči spremembe v celicah v sosednjih vrsticah. Od te okvare podatkov (bit flip) do izrabe pa je le kratka pot (in veliko znanja).

Novo uporabo te ranljivosti so raziskovalci poimenovali RAMBleed. Članek je bil objavljen včeraj. Pri napadu napadalec začne hitro brati podatke iz delov pomnilnika, do katerega ima legitimen dostop. To je znani del napada, na novo pa so raziskovalci odkrili še eno ranljivost, ki omogoča uhajanje občutljivih podatkov (side channel). Raziskovalci so odkrili tudi, kako lahko preverijo, kateri biti v pomnilniku so sploh dovzetni za napad.

To je tudi prvi del napada. Raziskovalci so porabili 34 ur, da so našli potrebnih 84.000 ranljivih bitov, ki so potrebni za dostop do ključa SSH. To se sliši veliko, a ta del napada je moč izvesti kadarkoli, predvsem pa ne terja nobene eskalacije privilegijev ali drugih vdorov, saj zadostuje že uporabniški dostop. Na koncu so 84.000 bitov zreducirali na 4200, ki so bili ključni.

Potem so uporabili posebno tehniko manipulacije s pomnilnikom (memory massaging), s čimer so poskrbeli, da se je ključ naložil v lokacije, do katerih imajo dostop. Nato so raziskovalci uspeli obnoviti 68 odstotkov ključa (s hitrostjo 0.31 bitov na sekundo). To je zadoščalo, da so s Heninger-Shachamovim algoritmom obnovili celotni ključ.

Ob tem raziskovalci dodajajo, da niti ECC ni rešitev, saj ta resda popravlja preskoke bitov, a je mogoče iz nenavadnih zakasnitev (zaradi poprave bitov) vseeno sklepati o vsebini. Vseeno pa je omenjeni napad v praksi malo verjeten, ker obstaja kopica bistveno manj zapletenih, hitrejših in lažjih metod za krajo šifrirnih ključev.