V procesorjih AMD je bila ugotovljena še ena ranljivost, ki omogoča napade Meltdown

Skupina raziskovalcev s Tehnične univerze v Gradcu (Avstrija) in Helmholtz Center for Information Security (CISPA) je razkrila informacije o ranljivosti (CVE-2021-26318) v vseh procesorjih AMD, ki omogoča izvedbo razreda Meltdown. stranski kanalski napadi (sprva se je domnevalo, da ranljivost Meltdown ne vpliva na procesorje AMD). V praksi se lahko napad uporabi za vzpostavitev prikritih komunikacijskih kanalov, spremljanje dejavnosti v jedru ali pridobivanje informacij o naslovih v pomnilniku jedra, da se izogne ​​zaščiti KASLR ob izkoriščanju ranljivosti v jedru.

AMD meni, da je neprimerno sprejeti posebne ukrepe za blokiranje težave, saj je ranljivost, tako kot podoben napad, odkrit avgusta, malo uporabna v realnih razmerah, omejena je s trenutnimi mejami naslovnega prostora procesa in zahteva prisotnost določenih že pripravljena zaporedja navodil (gadgeti) v jedru. Za prikaz napada so raziskovalci svoj modul jedra naložili z umetno dodanim pripomočkom. V realnih pogojih lahko napadalci na primer uporabijo redno pojavljajoče se ranljivosti v podsistemu eBPF, da nadomestijo potrebna zaporedja.

Za zaščito pred to novo vrsto napadov je AMD priporočil uporabo varnih tehnik kodiranja, ki pomagajo blokirati napade Meltdown, kot je uporaba navodil LFENCE. Raziskovalci, ki so odkrili težavo, priporočajo, da se omogoči strožja izolacija tabele pomnilniških strani (KPTI), ki se je prej uporabljala samo za procesorje Intel.

Med poskusom je raziskovalcem uspelo uhajati informacije iz jedra v proces v uporabniškem prostoru s hitrostjo 52 bajtov na sekundo, glede na prisotnost pripomočka v jedru, ki izvaja operacijo »if (offset < data_len) tmp = LUT[podatki[odmik] * 4096];” . Predlaganih je bilo več metod za pridobivanje informacij prek stranskih kanalov, ki končajo v predpomnilniku med špekulativnim izvajanjem. Prva metoda temelji na analizi odstopanj v času izvajanja procesorskega ukaza “PREFETCH” (Prefetch+Time), druga pa na spreminjanju spremembe porabe energije pri izvajanju “PREFETCH” (Prefetch+Power).

Spomnimo se, da klasična ranljivost Meltdown temelji na dejstvu, da lahko procesor med špekulativnim izvajanjem navodil dostopa do zasebnega podatkovnega območja in nato zavrže rezultat, saj nastavljeni privilegiji prepovedujejo tak dostop uporabniškemu procesu. V programu je špekulativno izveden blok ločen od glavne kode s pogojno vejo, ki se v realnih pogojih vedno sproži, vendar zaradi dejstva, da pogojni stavek uporablja izračunano vrednost, ki je procesor ne pozna med preventivnim izvajanjem kodo, se vse možnosti podružnic izvajajo špekulativno.

Ker špekulativno izvedene operacije uporabljajo isti predpomnilnik kot običajno izvedena navodila, je med špekulativnim izvajanjem mogoče nastaviti oznake v predpomnilniku, ki odražajo vsebino posameznih bitov v zasebnem pomnilniškem območju, nato pa v običajno izvedeni kodi določiti njihovo vrednost s časovnim merjenjem. analiza dostopov do predpomnjenih in nepredpomnjenih podatkov.

Vir: opennet.ru

Dodaj komentar