teave uue rĂŒnnete klassi kohta (Load Value Injection, ) Inteli CPU spekulatiivse tĂ€itmise mehhanismi kohta, mida saab kasutada Intel SGX anklavide ja teiste protsesside vĂ”tmete ja salajaste andmete lekkimise korraldamiseks.
Uus rĂŒnnete klass pĂ”hineb samade mikroarhitektuuriliste struktuuride manipuleerimisel nagu rĂŒnnakutes (Microarchitectural Data Sampling), . Uued rĂŒnnakud ei pruugi aga olla blokkeeritud olemasolevate kaitsemeetodite abil Meltdowni, Spectre'i, MDS-i ja teiste sarnaste rĂŒnnakute vastu. TĂ”husaks kaitseks LVI vastu on vajalikud riistvaramuudatused CPU-s. TarkvarapĂ”hine kaitse, kasutades kompakti LFENCE kĂ€sku iga mĂ€lust laadimise operatsiooni jĂ€rel ja asendades RET kĂ€su POP, LFENCE ja JMP-ga, toob kaasa liiga suure ĂŒlepeakaalu â teadlaste hinnangul pĂ”hjustab tĂ€ielik tarkvarakaitse jĂ”udluse vĂ€henemist 2-19 korda.
Osaliselt tasakaalustab blokeerimise raskust see, et praegu on rĂŒnnak peamiselt teoreetiline ega ole lihtne ellu viia (rĂŒnnak on teoreetiliselt vĂ”imalik, kuid ÀÀrmiselt keeruline rakendada ja reprodutseeritav vaid sĂŒnteetilistes testides).
Intel Corporation problemile mÔÔduka ohu taseme (5,6 skaalal 10) ja SGX keskkonna firmavĂ€rskenduse ja SDK, milles pĂŒĂŒdis rĂŒnnaku teostamist ringiteel blokeerida. Pakutavad rĂŒnnaku meetodid kehtivad praegu ainult Intel CPU-dele, kuid LVI kohandamine ka muudele protsessoritele, mis on vastuvĂ”tlikud Meltdowni klassi rĂŒnnakutele, ei ole vĂ€listatud.
Probleem tuvastati eelmisel aastal aprillis uurija Jo Van Bulcki poolt Leuven'i ĂŒlikoolist, pĂ€rast mida, koos 9 uurijaga teistest ĂŒlikoolidest, töötati vĂ€lja viis pĂ”himeetodit rĂŒnnakute sooritamiseks, millest igaĂŒhel on vĂ”imalus spetsiifilisemate . Iseseisvalt teatasid selle aasta veebruaris ka Bitdefenderi teadlased ĂŒhest rĂŒnnaku variandist LVI ja teatasid sellest Intelile. RĂŒnnaku variandid erinevad erinevate mikroarhitektuuriliste struktuuride, nagu salvestusbĂŒroo (SB, Store Buffer), tĂ€itmisebĂŒroo (LFB, Line Fill Buffer), FPU konteksti vahetuse puhversĂ€ilitus ja esimese taseme cache (L1D), kasutamise poolest, mida varem on rakendatud sellistes rĂŒnnakutes nagu , , , , ja .
PĂ”hiline LVI rĂŒnnakud MDS-ilt tulenevalt manipuleerib MDS mikroarhitektuuriliste struktuuride sisu mÀÀratlemisega, mis jÀÀb mĂ€llu spekulatiivse erandi (fault) vĂ”i laadimis- ja salvestamisoperatsioonide jĂ€rel.
LVI rĂŒnnakud vĂ”imaldavad rĂŒndajal asendada andmed mikroarhitektuuriliste struktuuride sees, mĂ”jutades seejĂ€rel sihtmĂ€rgi koodi spekulatiivset tĂ€itmist. Selliste manipulatsioonide abil suudab rĂŒndaja vĂ€ljavĂ”tta suletud andmestruktuuride sisu teistes protsessides, kui sihtprotsessori kood on tĂ€itmisel.
Tooge sihtprotsessi koodis spetsiaalsed koodijĂ€rjekorrad (gadget'id), kus laaditakse rĂŒndaja kontrollitav vÀÀrtus, ja selle vÀÀrtuse laadimine toob kaasa erandid (fault, abort vĂ”i assist), mis viskavad tulemuse vĂ€lja ja kordavad korraldust. Erandi töötlemise ajal tekib spekulatiivne aken, mille jooksul lekib gadget'is töödeldud andmeid. Eriti algab protsessor koodi (gadget) spekulatiivne tĂ€itmine, seejĂ€rel mÀÀrab, et ennustus ei pidanud paika ja tagastab toimingud algsesse olekusse, kuid spekulatiivse tĂ€itmise kĂ€igus töödeldud andmed jÀÀvad L1D vahemĂ€llu ja mikroarhitektuursetesse puhverdesse ning need on kergesti kĂ€ttesaadavad tuntud jÀÀkandmete mÀÀramise meetodite kaudu.
Assist erandit, erinevalt fault'ist, töödeldakse protsessoris ilma tarkvara töötlejate kutsumiseta. Assist vĂ”ib tekkida nĂ€iteks, kui tuleb vĂ€rskendada A (Accessed) vĂ”i D (Dirty) bitti mĂ€lu lehtede tabelis. Peamine keerukus rĂŒnnaku teostamisel teistele protsessidele on, kuidas kĂ€ivitada assist, manipuleerides sihtprotsessiga. Praegu ei ole usaldusvÀÀrseid viise selle teostamiseks, kuid tulevikus ei saa vĂ€listada nende leidmist. RĂŒnnaku teostamise vĂ”imalus on praegu kinnitatud ainult Intel SGX enklaavides, kĂ”ik teised stsenaariumid on teoreetilised vĂ”i reprodutseeritavad sĂŒnteetilistes tingimustes (kuna koodi tuleb lisada teatud gadget'e).
VĂ”imalikud rĂŒnnaku vektorid:
- Andmete leke tuumstruktuuri ja kasutaja tasemel protsessi vahel. Linuxi tuumas olemasolev kaitse Spectre 1 rĂŒnnakute vastu ning SMAP (Supervisor Mode Access Prevention) mehhanism vĂ€hendavad oluliselt LVI rĂŒnnaku tĂ”enĂ€osust. TĂ€iendava kaitse lisamine tuumale vĂ”ib osutuda vajalikuks, kui tulevikus avastatakse lihtsamaid meetodeid LVI rĂŒnnaku lĂ€biviimiseks.
- Andmete leke erinevate protsesside vahel. RĂŒnnaku teostamiseks on vajalikud teatud koodifragmendid rakenduses ja ekslemise meetodi tuvastamine sihtprotsessis.
- Andmete leke hostohtusesĂŒsteemist kĂŒlalisĂŒsteemi. RĂŒnnak kuulub liiga keeruliste kategooriasse, nĂ”udes mitmete raskesti teostatavate sammude ja sĂŒsteemi tegevuse prognoosimist.
- Andmete leke protsesside vahel erinevates kĂŒlalisĂŒsteemides. RĂŒnnakusuund on sarnane andmete lekkele erinevate protsesside vahel, kuid nĂ”uab tĂ€iendavalt keerulisi manipulatsioone kĂŒlalisĂŒsteemide vaheline isoleerimise ĂŒletamiseks.
Uurijad on avalikustanud rĂŒndamise pĂ”himĂ”tete demonstreerimiseks, kuid need ei ole veel reaalsateks rĂŒnnakuteks sobivad. Esimene nĂ€ide vĂ”imaldab suunata spekulatiivset koodi tĂ€itmist sihtprotsessis, sarnaselt ROP-iga (, Return-Oriented Programming). Selles nĂ€ites on sihtmĂ€rgiks spetsiaalselt ette valmistatud protsess, mis sisaldab vajalikke vidinaid (rĂŒnnaku teostamine reaalses kolmanda osapoole protsessis on keeruline). Teine nĂ€ide vĂ”imaldab sekkuda AES-i krĂŒpteerimise arvutustesse Intel SGX anklaavis ja korraldada andmeleket spekulatiivsete kĂ€skude tĂ€itmise ajal, et taastada kasutatava krĂŒpteerimisvĂ”tme vÀÀrtus.

Allikas: opennet.ru
