LVI — uus rĂŒnnakute klass spekulatiivse tĂ€itmise mehhanismile CPU-s

Avalikustatud infod uue rĂŒnnakute klassi kohta LVI (Load Value Injection, CVE-2020-0551) spekulatiivse tĂ€itmise mehhanismile Intel CPU-s, mida saab kasutada vĂ”tmete ja salajaste andmete lekke korraldamiseks Intel SGX-enklavides ja teistes protsessides.

Uus rĂŒnnakute klass pĂ”hineb manipulatsioonidel samade mikroarhitektuursete struktuuridega, nagu ka rĂŒnnakutes MDS (Mikroarhitektuurilised andmete proovivĂ”tud), Spectre ja Meltdown. Uued rĂŒnnakud ei ole siiski kaitstud olemasolevate Meltdowni, Spectre'i, MDS-i ja muude sarnaste rĂŒnnakute kaitsemeetoditega. Efektiivseks kaitseks LVI eest on vajalikud muudatused CPU-s. Tarkvara lahenduste korraldamine, lisades kompilaatori poolt LFENCE kĂ€sku pĂ€rast iga mĂ€lu laadimisoperatsiooni ning asendades RET kĂ€su POP, LFENCE ja JMP kĂ€skudega, toob endaga kaasa liiga suured ĂŒlejÀÀgid — teadlaste hinnangul vĂ€hendab tĂ€ielik tarkvaraline kaitse jĂ”udlust 2-19 korda.

Osaliselt, probleemide blokeerimise raskust kompenseerib see, et praegu on rĂŒnnak rohkem teoreetiline kui praktiline (rĂŒnnak on teoreetiliselt vĂ”imalik, kuid vĂ€ga keeruline ellu viia ja reprodutseeritav ainult sĂŒnteetilistes testides).
Intel omistas probleemile mÔÔduka ohu taseme (5,6 skaalal 10) ja vĂ€lja andnud firmaregi vĂ€rskendamise ja SDK SGX keskkonnas, kus pĂŒĂŒti rĂŒnnakut ringi minna blokeerida. Pakutud rĂŒnnakumeetodid kehtivad praegu ainult Intel'i protsessoritele, kuid LVI kohandamise vĂ”imalus muudele protsessoritele, mille suhtes kehtivad Meltdown rĂŒnnakud, ei ole vĂ€listatud.

Probleemi tuvastas aprillis eelmise aasta uurija Jo Van Bulck Leuven'i ĂŒlikoolist, seejĂ€rel töötasid koos 9 uurijaga teistest ĂŒlikoolidest vĂ€lja viis pĂ”himĂ”ttelist rĂŒnnakumeetodit, millest igaĂŒhel on vĂ”imalus eksisteerida spetsiifilisemate variantide. Iseseisvalt tuvastasid veebruaris selle aasta uurijad ettevĂ”ttest Bitdefender ka leidnud ĂŒks rĂŒnnakuvĂ”imalus LVI ja teavitati sellest Intelit. RĂŒnnakuvĂ”imalused erinevad erinevate mikroarhitektuuriliste struktuuride kasutamise jĂ€rgi, nagu salvestusbuffer (SB, Store Buffer), tĂŒĂŒbi tĂ€itmise buffer (LFB, Line Fill Buffer), konteksti vahetuse buffer FPU ja esimese taseme vahemĂ€lu (L1D), mida on varem kasutatud sellistes rĂŒnnakutes nagu ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow ja Meltdown.

LVI - uus rĂŒnnakute klass spekulatiivse tĂ€itmise mehhanismile CPU-s

Peamine erinevus LVI ja MDS rĂŒnnakute vahel on see, et MDS manipuleerib mikroarhitektuuriliste struktuuride sisu mÀÀratlemisega, mis jÀÀvad vahemĂ€lusse pĂ€rast spekulatiivset töötlemist vigade (fault) vĂ”i laadimise ja salvestamise operatsioonide ajal, samas kui
LVI rĂŒnnakud vĂ”imaldavad sissetungijatel asendada andmeid mikroarhitektuurilistes struktuurides, et mĂ”jutada jĂ€rgmiste rĂŒnnakute spekulatiivset koodi tĂ€itmist ohvri poolt. Nende manipuleerimiste abil saab sissetungija vĂ€lja vĂ”tta kinnipeetud andmed teiste protsesside andmestruktuuridest, kui teatud kood joonealusel CPU tuumal.

LVI - uus rĂŒnnakute klass spekulatiivse tĂ€itmise mehhanismile CPU-s

Kuna probleemi Ă€ra kasutamisel ohvri protsessi koodis peavad olema spetsiaalsed koodijĂ€rjestused (vidinad), kuhu laaditakse rĂŒndaja kontrollitud vÀÀrtus, ja selle vÀÀrtuse laadimine toob kaasa erandeid (fault, abort vĂ”i assist), mis viskavad tulemuse vĂ€lja ja kordavad kĂ€sku. Erandi töötlemise ajal tekib spekulatiivne aken, mille jooksul lekib vidinas töödeldud andmed. EelkĂ”ige hakkab protsessor spekulatiivsetes tingimustes kĂ€itama koodilĂ”iku (vidinat), seejĂ€rel mÀÀrab, et eeldus ei Ă”igustanud end ja tagastab toimingud algsesse olekusse, kuid spekulatiivse tĂ€itmise kĂ€igus töödeldud andmed jÀÀvad L1D vahemĂ€lu ja mikroarhitektuuri puhverdamisse ning on kergesti kĂ€tte saadavad tuntud jÀÀkandmete mÀÀramise meetodite kaudu kĂ”rvalkanalite kaudu.

Erand «assist», erinevalt «fault»'ist, töödeldakse protsessoris ilma tarkvarapersonalide kutsumiseta. Assist vĂ”ib tekkida nĂ€iteks siis, kui on vajalik vĂ€rskendada A (Accessed) vĂ”i D (Dirty) bitti mĂ€lu lehtede tabelis. Peamine vĂ€ljakutse teistele protsessidele rĂŒnnaku korraldamisel seisneb selles, kuidas algatada assist'i tekkimist, manipuleerides ohvri protsessiga. Praegu ei eksisteeri usaldusvÀÀrseid viise selle tegemiseks, kuid tulevikus nende leidmine ei ole vĂ€listatud. RĂŒnnaku vĂ”imaluse kinnitab seni vaid Intel SGX'e enklaavid, teised stsenaariumid on teoreetilised vĂ”i reprodutseeritavad sĂŒnteetilistes tingimustes (koodis tuleb lisada teatud gadget'e).

LVI - uus rĂŒnnakute klass spekulatiivse tĂ€itmise mehhanismile CPU-s

LVI - uus rĂŒnnakute klass spekulatiivse tĂ€itmise mehhanismile CPU-s

VĂ”imalikud rĂŒnnaku vektori:

  • Andmeleke tuum struktuuridest kasutaja taseme protsessidesse. Linuxi tuumas olemasolev kaitse Spectre 1 rĂŒnnakute vastu ning SMAP (Supervisor Mode Access Prevention) kaitsemehhanism vĂ€hendavad oluliselt LVI rĂŒnnaku tĂ”enĂ€osust. Tulevikus vĂ”ib osutuda vajalikuks tuuma tĂ€iendav kaitse, kui tulevikus avastatakse lihtsamaid LVI rĂŒnnaku viise.
  • Andmete leke erinevate protsesside vahel. RĂŒnnaku teostamiseks on vajalik teatud koodifragmente rakenduses ja erandi genereerimise meetodi mÀÀratlemine sihtprotsessis.
  • Andmete leke host-keskkonnast kĂŒlalisĂŒsteemi. RĂŒnnak on klassifitseeritud liiga keeruliseks, vajades mitmesuguste keeruliste sammude ja sĂŒsteemi aktiivsuse ennustamise rakendamist.
  • Andmete leke protsesside vahel erinevates kĂŒlalisĂŒsteemides. RĂŒnnaku vektor on sarnane andmete lekke korraldamisele erinevate protsesside vahel, kuid lisaks nĂ”uab see keerukate manipulatsioonide teostamist kĂŒlalisĂŒsteemide vahelise isoleerimise ĂŒletamiseks.

Uurijad on avaldanud mitu prototĂŒĂŒpe rĂŒnnaku lĂ€biviimise pĂ”himĂ”tete demonstreerimiseks, kuid need ei ole veel reaalseid rĂŒnnakuid teostamiseks sobivad. Esimene nĂ€ide vĂ”imaldab suunata spekulatiivset koodi tĂ€itmist ohvri protsessis sarnaselt tagasivaatleva programmeerimisega (ROP, Return-Oriented Programming). Selles nĂ€ites on ohvriks spetsiaalselt ette valmistatud protsess, mis sisaldab vajalikke seadmeid (rĂŒnnaku rakendamine reaalsele kolmanda osapoole protsessile on keeruline). Teine nĂ€ide vĂ”imaldab sekkuda arvutustesse AES-i krĂŒpteerimise ajal Intel SGX-i anklavis ja korraldada andmeleke spekulatiivsete kĂ€skude tĂ€itmise ajal, et taastada kasutatava krĂŒpteerimisvĂ”tme vÀÀrtus.


Vaata videot

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster