Nauja ataka prieš Intel ir AMD procesorių mikroarchitektūrines struktūras

Grupė tyrėjų iš Virdžinijos ir Kalifornijos universitetų pristatė naujo tipo ataką prieš Intel ir AMD procesorių mikroarchitektūrines struktūras, nustatytas atliekant nedokumentuotų procesoriaus galimybių atvirkštinę inžineriją. Siūlomas atakos metodas apima tarpinės mikrooperacinės talpyklos panaudojimą procesoriuose, kurią naudojant galima gauti informaciją, sukauptą spekuliacinio instrukcijų vykdymo metu.

Optimizavimo tikslais procesorius pradeda vykdyti kai kurias instrukcijas spekuliaciniu režimu, nelaukdamas, kol bus baigti ankstesni skaičiavimai, o jei tada nustato, kad numatymas nepasiteisino, grąžina operaciją į pradinę būseną, tačiau apdoroja duomenis. spekuliatyvus vykdymas yra deponuojamas talpykloje, kurios turinį galima nustatyti.

Pažymima, kad naujasis metodas gerokai pranoksta Spectre v1 ataką, apsunkina atakos aptikimą ir nėra blokuojamas esamais apsaugos nuo šoninio kanalo atakų metodais, skirtais blokuoti pažeidžiamumą, atsirandantį dėl spekuliacinio instrukcijų vykdymo (pvz. LFENCE instrukcijos blokuoja nutekėjimą paskutiniuose spekuliacinio vykdymo etapuose, bet neapsaugo nuo nutekėjimo per mikroarchitektūrines struktūras).

Šis metodas turi įtakos Intel ir AMD procesorių modeliams, išleistiems nuo 2011 m., įskaitant Intel Skylake ir AMD Zen serijas. Šiuolaikiniai procesoriai suskaido sudėtingas procesoriaus instrukcijas į paprastesnes į RISC panašias mikrooperacijas, kurios talpykloje saugomos atskiroje talpykloje. Ši talpykla iš esmės skiriasi nuo aukštesnio lygio talpyklų, nėra tiesiogiai pasiekiama ir veikia kaip srauto buferis, leidžiantis greitai pasiekti CISC instrukcijų dekodavimo į RISC mikroinstrukcijas rezultatus. Tačiau mokslininkai atrado būdą, kaip sukurti sąlygas, kurios atsiranda, kai įvyksta prieigos talpyklos konfliktai, ir leidžia spręsti apie mikrooperacinės talpyklos turinį, analizuojant tam tikrų veiksmų vykdymo laiko skirtumus.

Nauja ataka prieš Intel ir AMD procesorių mikroarchitektūrines struktūras

„Intel“ procesorių mikrooperacijų talpykla yra segmentuota pagal procesoriaus gijas (Hyper-Threading), o AMD Zen procesoriai naudoja bendrą talpyklą, kuri sudaro sąlygas duomenų nutekėjimui ne tik vienoje vykdymo gijoje, bet ir tarp skirtingų SMT gijų. (galimas duomenų nutekėjimas tarp kodo, veikiančio skirtinguose loginiuose procesoriaus branduoliuose).

Tyrėjai pasiūlė pagrindinį metodą mikrooperacijų talpyklos pokyčiams aptikti ir kelis atakų scenarijus, leidžiančius sukurti paslėptus duomenų perdavimo kanalus ir naudoti pažeidžiamą kodą konfidencialių duomenų nutekėjimui viename procese (pavyzdžiui, nutekėti proceso duomenis vykdant). trečiosios šalies kodas varikliuose su JIT ir virtualiose mašinose) bei tarp branduolio ir procesų vartotojo erdvėje.

Organizuodami „Spectre“ atakos variantą naudodami mikrooperacijų talpyklą, tyrėjai sugebėjo pasiekti 965.59 Kbps našumą su 0.22% klaidų dažniu ir 785.56 Kbps naudojant klaidų taisymą, jei nutekėjimas buvo organizuojamas tuo pačiu adresu erdvės ir privilegijų lygis. Esant nutekėjimui, apimančiam skirtingus privilegijų lygius (tarp branduolio ir vartotojo erdvės), našumas buvo 85.2 Kbps su pridėtu klaidų taisymu ir 110.96 Kbps, kai klaidų lygis 4%. Atakuojant AMD Zen procesorius, sukuriant nutekėjimą tarp skirtingų loginių procesoriaus branduolių, našumas buvo 250 Kbps su 5.59% klaidų lygiu ir 168.58 Kbps su klaidų taisymu. Palyginti su klasikiniu Spectre v1 metodu, nauja ataka buvo 2.6 karto greitesnė.

Tikimasi, kad norint apsisaugoti nuo mikrooperacinės talpyklos atakos, reikės pakeitimų, kurie sumažins našumą labiau nei įjungus Spectre atakų apsaugą. Kaip optimalus kompromisas, tokias atakas siūloma blokuoti ne išjungiant talpyklą, o stebint anomalijas ir identifikuojant atakoms būdingas talpyklos būsenas.

Kaip ir Spectre atakose, norint organizuoti nutekėjimą iš branduolio ar kitų procesų, reikia vykdyti tam tikrą komandų seką (įtaisus) aukos procesų pusėje, o tai lemia spekuliacinį instrukcijų vykdymą. „Linux“ branduolyje buvo rasta apie 100 panašių programėlių, kurios bus pašalintos, tačiau periodiškai randama jų generavimo būdų, pavyzdžiui, susijusių su specialiai sukurtų BPF programų paleidimu branduolyje.

Šaltinis: opennet.ru

Добавить комментарий