AMD-k AMD Zen 3 CPUren ahultasun potentziala baieztatu du Spectre-STL erasoaren aurrean

AMD-k Zen 3 serieko prozesadoreetan inplementatutako PSF (Predictive Store Forwarding) optimizazio teknologiaren segurtasuna aztertzen duen txostena argitaratu du. Azterketak teorikoki baieztatu zuen Spectre-STL (Spectre-v4) eraso metodoaren aplikagarritasuna, 2018ko maiatzean identifikatutakoa. PSF teknologia, baina praktikan, oraindik ez da aurkitu erasoa eragiteko gai den kode txantiloirik eta arrisku orokorra hutsala dela baloratzen da.

Gogora dezagun Spectre-v4 (Speculative Store Bypass) erasoa prozesadorearen cachean finkatu diren datuak berreskuratzean oinarritzen dela eragiketen exekuzio espekulatiboaren emaitza baztertu ondoren zeharkako helbideratzea erabiliz idazketa eta irakurketa eragiketak txandakatuz prozesatzen direnean. Irakurketa-eragiketa batek idazketa-eragiketa bati jarraitzen dionean (adibidez, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), baliteke irakurritako helbidearen desplazamendua dagoeneko ezagutzea, antzeko eragiketak egiten ari direlako (irakurketa eragiketak dira. askoz maizago egiten da eta irakurketak cachetik egin daitezke) eta prozesadoreak espekulazioz egin ditzake irakurketak idazketen aurretik, idazketaren zeharkako desplazamendua kalkulatu arte itxaron gabe.

Ezaugarri honek irakurtzeko instrukzio bati balio zahar batera sartzeko aukera ematen dio helbide batean denda-eragiketa oraindik amaitu ez den bitartean. Iragarpen-errore bat badago, arrakastarik gabeko eragiketa espekulatiboa baztertu egingo da, baina bere exekuzioaren aztarnak prozesadorearen cachean geratuko dira eta sarbide-aldaketen analisian oinarrituta cachearen edukia zehazteko metodoetako baten bidez berreskuratu ahal izango dira. cachean gordetako eta cache gabeko datuak hartzeko denbora.

AMD Zen 3 prozesadoreei gehituta, PSF-k STLF (Store-To-Load-Forwarding) optimizatzen du, irakurketa-eragiketak modu espekulatiboan egiten dituena, irakurketa eta idazketa eragiketen arteko erlazioa aurreikusten duena. STLF klasikoa erabiltzean, prozesadoreak "kargatu" eragiketa bat egiten du aurreko "store" komandotik zuzenean birbidalitako datuetan, emaitza benetan memorian idatziko den itxaron gabe, baina ziurtatuz "kargatu"-n erabilitako helbideak. eta "gorde" komandoak bat datoz. PSF optimizazioak helbideen egiaztapena espekulatibo bihurtzen du eta "karga" eragiketa bat egiten du helbidearen informazioa kalkulatu aurretik, helbide bakarra manipulatzen duen biltegi/karga bikote bat exekutatu bada. Iragarpenak huts egiten badu, egoera atzera egiten da, baina datuak cachean geratzen dira.

PSF-ren aurkako erasoa pribilegio-maila baten esparruan soilik posible da, egungo prozesu-testuingurua soilik estaltzen du eta helbide-espazioen isolamendu metodoek edo hardware sandbox mekanismoek blokeatzen dute. Kasu honetan, prozesuetan softwarearen sandboxing metodoak arazoaren eraginpean egon daitezke. Erasoak mehatxua dakar nabigatzaileak, kodea exekutatzeko makina birtualak eta prozesu bakarrean hirugarrenen kodea exekutatzen duten JIT bezalako sistementzat (erasoari esker, fidagarria ez den sandbox-eko kodea beste prozesuko datuetara sarbidea izan daiteke).

AMD-k PSF erabat edo selektiboki desgaitzeko hainbat metodo eman ditu, baina aplikazio gehienen arrisku txikia kontuan hartuta, optimizazio hori lehenespenez ez desgaitzea gomendatu du. Kode fidagarria exekutatzen dutenak isolatzen dituzten prozesuak selektiboki babesteko, PSF desgaitzea proposatzen da "SSBD" eta "PSFD" MSR bitak ezarriz, hari indibidualetarako barne. Linux kernelerako adabakiak prestatu dira PSF nola aktibatzen eta desaktibatzen den kontrolatzen duten "psfd" eta "nopsfd" komando-lerroko aukeren ezarpenarekin.

Iturria: opennet.ru

Gehitu iruzkin berria