Zloraba spreminjanja bitov v pomnilniku zaradi branja tudi v praksi

Matej Huš

10. mar 2015 ob 22:52:22

Tudi v praksi je mogoče zlorabiti ranljivost rowhammer, ki so jo raziskovalci opisali decembra lani, so pokazali v Googlovem Projectu Zero.

Če na kratko povzamemo decembrsko odkritje, gre za ranljivost, ki je posledica zasnove čipov DDR3. Ker so ti fizično čedalje manjši, večkratno zaporedno branje podatkov iz iste vrstice lahko vpliva na podatke v sosednjih vrsticah. Da napad izvedemo, je treba brati večtisočkrat, preden se zapis v DRAM-u osveži (tipično vsakih 64 milisekund). V tem primeru se lahko spremeni kakšen sosednji bit (bit flip), kar ne vodi nujno do zrušitve sistema. Lahko se namreč zgodi, da pridobimo administratorski dostop do računalnika z eskalacijo privilegijev. Ob odkritju je kazalo, da je ranljivost zelo teoretična in je v praksi ne bo mogoče enostavno zlorabiti, a Google je pokazal, da nas od tega ne loči veliko.

Google je preverjal 29 prenosnih računalnikov in dobra polovica je bila ranljiva. Pokazali so, da je mogoče ranljivost izkoristiti v zločeste namene. Osebni računalniki niso bili občutljivi, ker so uporabljali kakovostnejše module. ECC napako deloma odpravi, ker onemogoči spremembo enega bita, še vedno pa nas ne ščiti pred spremembo več bitov. Prav tako ima DDR4 nekatere tehnologije, ki napako odpravljajo - funkcijo TRR (Targeted Refresh Row), ki osveži podatke v sosednjih celicah pred okvaro ter polje MAC (Maximum Activate Count), ki pove, kolikokrat lahko iz vrstice beremo (aktivacija je tista problematična), da ne povzročamo škode naokoli. Nekateri proizvajalci so napako "odpravili" z nadgradnjo BIOS-a (povišanje frekvence osveževanja), se je izkazalo, da se le teže pojavi, se pa še vedno.