En gruppe forskere fra Det Frie Universitet i Amsterdam har udviklet en ny avanceret version af RowHammer-angrebet, der gør det muligt at ændre indholdet af individuelle bits i hukommelsen baseret på DRAM-chips for at beskytte integriteten af anvendte fejlkorrektionskoder (ECC'er).
Angrebet kan udføres eksternt med ikke-privilegeret adgang til systemet, da RowHammer-sårbarheden kan forvrænge indholdet af individuelle hukommelsesbits ved cyklisk at læse data fra tilstødende hukommelsesceller.
Hvad er RowHammer-sårbarheden?
Hvad gruppen af forskere om RowHammer-sårbarheden forklarer, er, at dette sDet er baseret på strukturen af en DRAM-hukommelse, fordi dette grundlæggende er en todimensionel matrix af celler, hvoraf hver af disse celler består af en kondensator og en transistor.
Med dette fører den kontinuerlige læsning af det samme hukommelsesområde til spændingsudsving og anomalier, der forårsager et lille tab af ladning af nabocellerne.
Hvis intensiteten af aflæsningen er stor nok, kan cellen miste en tilstrækkelig stor mængde ladning, og den næste regenereringscyklus vil ikke have tid til at genoprette sin oprindelige tilstand, hvilket resulterer i en ændring i værdien af de lagrede data i cellen.
En ny variant af RowHammer
Indtil nu, brugen af ECC blev betragtet som den mest pålidelige måde at beskytte sig mod problemerne beskrevet ovenfor.
Pero det lykkedes forskerne at udvikle en metode til at ændre de angivne hukommelsesbits der ikke aktiverede en fejlkorrektionsmekanisme.
Metoden kan bruges på servere med ECC-hukommelse til at ændre data, udskift ondsindet kode og skift adgangsrettigheder.
For eksempel, i tidligere demonstrerede RowHammer-angreb, når en angriber havde adgang til en virtuel maskine, blev opdateringer til det ondsindede system downloadet via en ændring af apt-processen for værtsnavnet for at downloade og ændre verifikationslogikken for den virtuelle maskine. digital signatur .
Hvordan fungerer denne nye variant?
Hvad siger forskerne om dette nye angreb er, at ECC-gennemløb er baseret på fejlkorrektionsfunktioner: Hvis en bit ændres, vil ECC rette fejlen, hvis der genereres to bits, vil der blive kastet en undtagelse, og programmet vil blive tvangsafsluttet, men hvis tre bits ændres samtidigt, vil ECC muligvis ikke bemærke ændringen.
For at bestemme betingelserne for, at ECC-verifikation ikke fungerer, En verifikationsmetode svarende til racens er blevet udviklet, der gør det muligt at evaluere muligheden for et angreb for en specifik adresse i hukommelsen.
Metoden er baseret på, at når man retter en fejl, øges læsetiden, og den resulterende forsinkelse er ret målbar og mærkbar.
Angrebet reduceres til successive forsøg på at ændre hver bit individuelt, hvor succesen af ændringen bestemmes af forekomsten af en forsinkelse forårsaget af en ECC-indstilling.
Derfor udføres en maskinordsøgning med tre variable bit. På det sidste trin er det nødvendigt at sikre sig, at alle tre foranderlige bits to steder er forskellige, og derefter prøve at ændre deres værdi i én omgang.
Om demoen
masse forskere har med succes demonstreret muligheden for et angreb på fire forskellige servere med DDR3-hukommelse (teoretisk sårbar og DDR4-hukommelse), hvoraf tre var udstyret med Intel-processorer (E3-1270 v3, Xeon E5-2650 v1, Intel Xeon E5-2620 v1) og en AMD (Opteron 6376).
En Demoen viser, at det tager omkring 32 minutter at søge efter den nødvendige kombination af bits i laboratoriet på en inaktiv server.
At lave et angreb på en kørende server er meget vanskeligere på grund af tilstedeværelsen af interferens som følge af applikationsaktivitet.
På produktionssystemer kan det tage op til en uge at finde den nødvendige kombination af udskiftelige bits.