Uus rünnak Inteli ja AMD protsessorite mikroarhitektuursetele struktuuridele

Virginia ülikooli ja California ülikooli teadlaste rühm tutvustas uut tüüpi rünnakut Inteli ja AMD protsessorite mikroarhitektuursetele struktuuridele, mis tuvastati dokumenteerimata protsessori võimekuse pöördprojekteerimise käigus. Kavandatav ründemeetod hõlmab protsessorites mikrooperatsiooni vahemälu kasutamist, mida saab kasutada käskude spekulatiivsel täitmisel kogunenud teabe hankimiseks.

Protsessor hakkab optimeerimise eesmärgil täitma mõningaid juhiseid spekulatiivses režiimis, ootamata eelnevate arvutuste lõpuleviimist, ja kui ta seejärel tuvastab, et ennustus ei olnud õigustatud, siis lülitub see toimingu tagasi algsesse olekusse, kuid protsessi käigus töödeldud andmed. spekulatiivne täitmine salvestatakse vahemällu, mille sisu saab määrata.

Märgitakse, et uus meetod ületab oluliselt Spectre v1 rünnakut, muudab rünnaku raskesti tuvastatavaks ja seda ei blokeeri olemasolevad kaitsemeetodid külgkanalite rünnakute vastu, mis on loodud selleks, et blokeerida käskude spekulatiivsest täitmisest põhjustatud haavatavusi (näiteks LFENCE käsu blokeerib lekked spekulatiivse täitmise viimastes etappides, kuid ei kaitse mikroarhitektuursete struktuuride kaudu lekkimise eest).

Meetod mõjutab alates 2011. aastast välja antud Inteli ja AMD protsessorimudeleid, sealhulgas Intel Skylake ja AMD Zen seeriaid. Kaasaegsed protsessorid jagavad keerukad protsessori juhised lihtsamateks RISC-laadseteks mikrooperatsioonideks, mis salvestatakse vahemällu eraldi vahemällu. See vahemälu erineb põhimõtteliselt kõrgema taseme vahemäludest, ei ole otseselt ligipääsetav ja toimib voopuhvrina kiireks juurdepääsuks CISC käskude RISC mikrokäskudeks dekodeerimise tulemustele. Teadlased on aga leidnud viisi, kuidas luua tingimused, mis tekivad vahemälu juurdepääsu konfliktide korral, ja võimaldada hinnata mikrooperatsioonide vahemälu sisu, analüüsides teatud toimingute täitmise aja erinevusi.

Uus rünnak Inteli ja AMD protsessorite mikroarhitektuursetele struktuuridele

Inteli protsessorite mikrooperatsioonide vahemälu on segmenteeritud CPU lõimede suhtes (Hyper-Threading), samas kui AMD Zen protsessorid kasutavad jagatud vahemälu, mis loob tingimused andmete lekkimiseks mitte ainult ühe täitmislõime sees, vaid ka SMT erinevate lõimede vahel. (võimalik andmeleke erinevatel loogilistel CPU tuumadel töötava koodi vahel).

Teadlased on välja pakkunud põhimeetodi mikrooperatsioonide vahemälus toimunud muutuste tuvastamiseks ja mitmed ründestsenaariumid, mis võimaldavad luua varjatud andmeedastuskanaleid ja kasutada haavatavat koodi konfidentsiaalsete andmete lekitamiseks ühe protsessi raames (näiteks protsessiandmete lekitamiseks käivitamisel). kolmanda osapoole kood JIT-ga mootorites ja virtuaalsetes masinates) ning kerneli ja protsesside vahel kasutajaruumis.

Spectre rünnaku variandi korraldamisel mikrooperatsiooni vahemälu abil suutsid teadlased saavutada jõudlust 965.59 Kbps veamääraga 0.22% ja 785.56 Kbps veaparandust kasutades, kui leke korraldati samale aadressile. ruumi ja privileegide tase. Erinevaid privileegitasemeid (kerneli ja kasutajaruumi vahel) hõlmava lekke korral oli jõudlus 85.2 Kbps koos veaparanduse lisamisega ja 110.96 Kbps 4% veamääraga. AMD Zen protsessoreid rünnates, luues lekke erinevate loogiliste protsessorituumade vahel, oli jõudlus 250 Kbps veamääraga 5.59% ja 168.58 Kbps koos veaparandusega. Võrreldes klassikalise Spectre v1 meetodiga oli uus rünnak 2.6 korda kiirem.

Eeldatakse, et mikrooperatsiooni vahemälu rünnaku eest kaitsmine nõuab muudatusi, mis vähendavad jõudlust rohkem kui Spectre rünnakukaitse lubamine. Optimaalse kompromissina pakutakse selliseid rünnakuid blokeerida mitte vahemällu salvestamise keelamisega, vaid rünnetele tüüpiliste anomaaliate jälgimise ja vahemälu olekute tuvastamise tasemel.

Nagu Spectre rünnakute puhul, nõuab tuumast või muudest protsessidest lekke korraldamine teatud käskude jada (vidinate) täitmist ohvriprotsesside poolel, mis viib juhiste spekulatiivse täitmiseni. Linuxi tuumast on leitud umbes 100 sarnast vidinat, mis eemaldatakse, kuid nende genereerimiseks leitakse perioodiliselt lahendusi, näiteks seoses spetsiaalselt loodud BPF-programmide käivitamisega kernelis.

Allikas: opennet.ru

Lisa kommentaar