LVI je nov razred napadov na mehanizem špekulativnega izvajanja v CPE

Objavljeno informacije o novem razredu napadov HVAC (Vnos vrednosti obremenitve, CVE-2020-0551) o mehanizmu špekulativnega izvajanja v procesorjih Intel, ki se lahko uporabi za puščanje ključev in tajnih podatkov iz enklav Intel SGX in drugih procesov.

Nov razred napadov temelji na manipulaciji istih mikroarhitekturnih struktur, ki se uporabljajo pri napadih MDS (Vzorčenje mikroarhitekturnih podatkov), Spectre in Meltdown. Hkrati pa novi napadi niso blokirani z obstoječimi metodami zaščite pred Meltdown, Spectre, MDS in drugimi podobnimi napadi. Učinkovita zaščita LVI zahteva spremembe strojne opreme CPE. Pri programski organizaciji zaščite z dodajanjem ukaza LFENCE s strani prevajalnika po vsaki operaciji nalaganja iz pomnilnika in zamenjavo ukaza RET s POP, LFENCE in JMP se zabeleži preveč stroškov – po mnenju raziskovalcev bo popolna zaščita programske opreme privedla do zmanjšanja uspešnost 2-19 krat.

Del težav pri blokiranju težave je izravnan z dejstvom, da je napad trenutno bolj teoretičen kot praktičen (napad je teoretično možen, vendar ga je zelo težko izvesti in ponovljiv le v sintetičnih testih).
Intel prisvojil težava ima zmerno stopnjo nevarnosti (5.6 od 10) in izpuščen posodobitev vdelane programske opreme in SDK za okolje SGX, v katerem je poskušal blokirati napad z rešitvijo. Predlagane metode napadov so trenutno uporabne samo za procesorje Intel, vendar ni mogoče izključiti možnosti prilagoditve LVI za druge procesorje, za katere so uporabni napadi razreda Meltdown.

Težavo je lani aprila identificiral raziskovalec Jo Van Bulck z Univerze v Leuvnu, nato pa je s sodelovanjem 9 raziskovalcev z drugih univerz razvil pet osnovnih metod napada, od katerih vsaka omogoča obstoj bolj specifičnih možnosti. Neodvisno februarja letos tudi raziskovalci Bitdefenderja odkriti eno od različic napada LVI in jo prijavil Intelu. Različice napada se razlikujejo po uporabi različnih mikroarhitekturnih struktur, kot so medpomnilnik za shranjevanje (SB, Store Buffer), polnilni medpomnilnik (LFB, Line Fill Buffer), FPU kontekstni medpomnilnik in predpomnilnik prve stopnje (L1D), ki so se uporabljali prej. pri napadih kot npr ZombieLoad, RIDL, Fallout, LazyFP, Napovedovanje и Meltdown.

LVI je nov razred napadov na mehanizem špekulativnega izvajanja v CPE

Glavni časti LVI proti napadom MDS je, da MDS manipulira z določitvijo vsebine mikroarhitekturnih struktur, ki ostanejo v predpomnilniku po špekulativnem obravnavanju napak ali operacijah nalaganja in shranjevanja, medtem ko
Napadi LVI omogočajo, da se napadalčevi podatki vstavijo v mikroarhitekturne strukture in tako vplivajo na poznejše špekulativno izvajanje kode žrtve. Z uporabo teh manipulacij lahko napadalec izvleče vsebino zasebnih podatkovnih struktur v drugih procesih, ko izvaja določeno kodo na ciljnem jedru CPU.

LVI je nov razred napadov na mehanizem špekulativnega izvajanja v CPE

Za problem izkoriščanja v zakoniku postopka žrtev bi se moral srečati posebna zaporedja kode (pripomočki), v katerih je naložena vrednost, ki jo nadzoruje napadalec, in nalaganje te vrednosti povzroči vrženje izjem (napaka, prekinitev ali pomoč), zavrže rezultat in ponovno izvede navodilo. Ko je obdelana izjema, se prikaže špekulativno okno, med katerim podatki, obdelani v pripomočku, uhajajo. Zlasti procesor začne izvajati del kode (pripomoček) v špekulativnem načinu, nato ugotovi, da napoved ni bila upravičena, in vrne operacije v prvotno stanje, vendar se podatki, obdelani med špekulativnim izvajanjem, shranijo v predpomnilnik L1D. in mikroarhitekturne medpomnilnike ter je na voljo za pridobivanje iz njih z uporabo znanih metod za določanje preostalih podatkov prek kanalov tretjih oseb.

Izjemo »pomoč« za razliko od izjeme »napaka« interno obravnava procesor, ne da bi priklical programske obdelovalce. Do pomoči lahko pride na primer, ko je treba posodobiti bit A (dostopano) ali D (umazano) v tabeli pomnilniške strani. Glavna težava pri izvajanju napada na druge procese je, kako sprožiti pojav pomoči z manipulacijo procesa žrtve. Trenutno ni zanesljivih načinov za to, vendar je možno, da jih bodo našli v prihodnosti. Možnost izvedbe napada je bila doslej potrjena samo za enklave Intel SGX, drugi scenariji so teoretični ali ponovljivi v sintetičnih pogojih (zahteva dodajanje določenih pripomočkov v kodo)

LVI je nov razred napadov na mehanizem špekulativnega izvajanja v CPE

LVI je nov razred napadov na mehanizem špekulativnega izvajanja v CPE

Možni vektorji napada:

  • Uhajanje podatkov iz struktur jedra v proces na ravni uporabnika. Zaščita jedra Linuxa pred napadi Spectre 1 in zaščitni mehanizem SMAP (Supervisor Mode Access Prevention) znatno zmanjšata verjetnost napada LVI. Dodatek dodatne zaščite jedru bo morda potreben, če bodo v prihodnosti prepoznane enostavnejše metode napada LVI.
  • Uhajanje podatkov med različnimi procesi. Napad zahteva prisotnost določenih delov kode v aplikaciji in definicijo metode za sprožanje izjeme v ciljnem procesu.
  • Uhajanje podatkov iz gostiteljskega okolja v gostujoči sistem. Napad je označen kot preveč zapleten, saj zahteva različne težko izvedljive korake in napovedi aktivnosti v sistemu.
  • Uhajanje podatkov med procesi v različnih gostujočih sistemih. Vektor napada je blizu organiziranja uhajanja podatkov med različnimi procesi, vendar poleg tega zahteva zapletene manipulacije za izogibanje izolaciji med gostujočimi sistemi.

Objavili raziskovalci nekateri prototipi s prikazom principov izvedbe napada, vendar še niso primerni za izvajanje pravih napadov. Prvi primer vam omogoča, da preusmerite špekulativno izvajanje kode v procesu žrtve, podobno kot povratno usmerjeno programiranje (ROP,Povratno usmerjeno programiranje). V tem primeru je žrtev posebej pripravljen proces, ki vsebuje potrebne pripomočke (uporaba napada na resnične procese tretjih oseb je težavna). Drugi primer nam omogoča, da se vključimo v izračune med šifriranjem AES znotraj enklave Intel SGX in organiziramo uhajanje podatkov med špekulativnim izvajanjem navodil za obnovitev vrednosti ključa, uporabljenega za šifriranje.


Vir: opennet.ru

Dodaj komentar