Intel eta AMD prozesadoreen mikroarkitektura-egituren aurkako eraso berria

Virginiako Unibertsitateko eta Kaliforniako Unibertsitateko ikertzaile talde batek Intel eta AMD prozesadoreen mikroarkitektura-egituren aurkako eraso mota berri bat aurkeztu zuen, dokumenturik gabeko CPU gaitasunen alderantzizko ingeniaritzan identifikatutakoa. Proposatutako eraso-metodoak prozesadoreetan bitarteko mikro-op cache bat erabiltzea dakar, instrukzioen exekuzio espekulatiboan pilatutako informazioa berreskuratzeko erabil daitekeena.

Optimizazio helburuetarako, prozesadorea jarraibide batzuk exekutatzen hasten da modu espekulatiboan, aurreko kalkuluak amaitu arte itxaron gabe, eta orduan iragarpena justifikatuta ez zegoela zehazten badu, eragiketa bere jatorrizko egoerara itzultzen du, baina zehar prozesatutako datuak. exekuzio espekulatiboa cache batean gordetzen da, eta horren edukia zehaztu daiteke.

Kontuan izan da metodo berriak Spectre v1 erasoa nabarmen gainditzen duela, erasoa detektatzeko zaila egiten duela eta ez dutela blokeatzen albo-kanaletako erasoen aurkako babes-metodoek argibideen exekuzio espekulatiboak eragindako ahultasunak blokeatzeko (adibidez, erabilera. LFENCE instrukzio-blokeak exekuzio espekulatiboaren azken etapetan filtrazioak sortzen ditu, baina ez du babesten egitura mikroarkitekturalen bidezko ihesetatik).

Metodoak 2011tik kaleratutako Intel eta AMD prozesadore ereduei eragiten die, Intel Skylake eta AMD Zen serieak barne. PUZ modernoek prozesadorearen instrukzio konplexuak RISC antzeko mikro-eragiketa sinpleagoetan zatitzen dituzte, cache bereizi batean gordetzen direnak. Cache hau goi-mailako cacheetatik desberdina da funtsean, ez da zuzenean eskuragarri eta korronte-buffer gisa funtzionatzen du CISC instrukzioak RISC mikroargibideetan deskodetzearen emaitzetara azkar sartzeko. Hala ere, ikertzaileek cachearen sarbidea gatazkan daudenean sortzen diren baldintzak sortzeko modu bat aurkitu dute eta mikroeragiketen cachearen edukia epaitzeko aukera ematen dute ekintza jakin batzuen exekuzio-denboran dauden desberdintasunak aztertuz.

Intel eta AMD prozesadoreen mikroarkitektura-egituren aurkako eraso berria

Intel prozesadoreetako mikro-eragiketen cachea CPU hariekin lotuta dago (Hyper-Threading), AMD Zen prozesadoreek, berriz, partekatutako cachea erabiltzen dute, eta horrek datuak isurtzeko baldintzak sortzen ditu exekuzio hari batean ez ezik, baita SMTko hari ezberdinen artean ere. (baliteke PUZaren nukleo logiko desberdinetan exekutatzen den kodearen artean datu-isuria).

Ikertzaileek oinarrizko metodo bat proposatu dute mikroeragiketen cachean aldaketak detektatzeko eta hainbat eraso-eszenatoki, ezkutuko datuak transmititzeko kanalak sortzea eta kode zaurgarria erabiltzea datu konfidentzialak isurtzeko, bai prozesu bakarrean (adibidez, prozesuko datuak exekutatzen direnean isurtzeko. hirugarrenen kodea JIT duten motorretan eta makina birtualetan), eta nukleoaren eta erabiltzailearen espazioko prozesuen artean.

Spectre erasoaren aldaera bat mikro-eragiketa-cachea erabiliz antolatzean, ikertzaileek 965.59 Kbps-ko errendimendua lortu ahal izan dute %0.22ko errore-tasa eta 785.56 Kbps-ko errore-zuzenketa erabiliz gero, helbide berean filtrazio bat antolatuz gero. espazioa eta pribilegio maila. Pribilegio-maila desberdinetako filtrazio batekin (kernelaren eta erabiltzaile-espazioaren artean), errendimendua 85.2 Kbps-koa izan da errore-zuzenketa gehituta eta 110.96 Kbps-koa % 4ko errore-tasa batekin. AMD Zen prozesadoreak erasotzean, PUZaren nukleo logiko desberdinen artean ihesa sortuz, errendimendua 250 Kbps-koa izan zen, %5.59ko errore-tasa eta 168.58 Kbps-ko errore-zuzenketarekin. Spectre v1 metodo klasikoarekin alderatuta, eraso berria 2.6 aldiz azkarragoa izan zen.

Espero da mikrooperazioko cache-eraso baten aurka babesteak errendimendua gehiago murriztuko duten aldaketak beharko dituela Spectreren erasoen babesa gaituz gero baino. Konpromiso optimo gisa, horrelako erasoak blokeatzea proposatzen da cachea desgaituz ez, anomaliak monitorizatzeko eta erasoetarako ohikoak diren cache-egoerak identifikatuz baizik.

Spectreren erasoetan bezala, nukleotik edo beste prozesu batzuen filtrazio bat antolatzeak biktimen prozesuen alboan komando (gadget) sekuentzia jakin bat exekutatzea eskatzen du, instrukzioen exekuzio espekulatiboa ekarriz. Linux nukleoan antzeko 100 tramankulu inguru aurkitu dira, kendu egingo direnak, baina haien sorkuntzarako konponbideak aldian-aldian aurkitzen dira, adibidez, nukleoan bereziki diseinatutako BPF programak exekutatzeko.

Iturria: opennet.ru

Gehitu iruzkin berria