„Plundervolt“ yra naujas „Intel“ procesorių atakos metodas, turintis įtakos SGX technologijai

Intel paleistas mikrokodo naujinimas, kuris pataiso pažeidžiamumas (CVE-2019-14607) leidžiantis manipuliuodami dinaminiu procesoriaus įtampos ir dažnio valdymo mechanizmu, sugadinkite duomenų langelių turinį, įskaitant sritis, naudojamas skaičiavimams izoliuotuose Intel SGX anklavuose. Ataka vadinama Plundervolt ir potencialiai leidžia vietiniam vartotojui padidinti savo privilegijas sistemoje, atsisakyti paslaugos ir gauti prieigą prie neskelbtinų duomenų.

Ataka pavojinga tik atliekant manipuliacijas su skaičiavimais SGX anklavuose, nes jai atlikti reikalingos pagrindinės teisės sistemoje. Paprasčiausiu atveju užpuolikas gali iškraipyti anklave apdorojamą informaciją, tačiau sudėtingesniuose scenarijuose galimybės atkurti anklave saugomus privačius raktus, naudojamus šifravimui naudojant RSA-CRT ir AES-NI algoritmus, nėra galimybės. neįtraukti. Ši technika taip pat gali būti naudojama iš pradžių teisingų algoritmų klaidoms generuoti, kad išprovokuotų pažeidžiamumą dirbant su atmintimi, pavyzdžiui, norint organizuoti prieigą prie srities, esančios už paskirto buferio ribos.
Prototipo kodas atakai atlikti paskelbti „GitHub“.

Metodo esmė yra sudaryti sąlygas netikėtiems duomenų sugadinimams atliekant skaičiavimus SGX, nuo kurių neapsaugo šifravimo ir atminties autentifikavimo naudojimas anklave. Norint įvesti iškraipymus, paaiškėjo, kad galima naudoti standartines programinės įrangos sąsajas dažniui ir įtampai valdyti, paprastai naudojamas sumažinti energijos suvartojimą sistemos neveiklumo metu ir suaktyvinti maksimalų našumą intensyvaus darbo metu. Dažnio ir įtampos charakteristikos apima visą lustą, įskaitant skaičiavimo poveikį izoliuotame anklave.

Keisdami įtampą galite sukurti sąlygas, kurioms esant nepakanka įkrovos atkurti atminties elementą procesoriaus viduje, o jo vertė pasikeičia. Pagrindinis skirtumas nuo puolimo „RowHammer“ RowHammer leidžia keisti atskirų bitų turinį DRAM atmintyje cikliškai nuskaitant duomenis iš gretimų langelių, o Plundervolt leidžia keisti bitus procesoriaus viduje, kai duomenys jau buvo įkelti iš atminties skaičiavimui. Ši funkcija leidžia apeiti vientisumo kontrolės ir šifravimo mechanizmus, naudojamus SGX duomenims atmintyje, nes reikšmės atmintyje išlieka teisingos, tačiau gali būti iškraipytos atliekant operacijas su jomis prieš įrašant rezultatą į atmintį.

Jei ši modifikuota reikšmė naudojama šifravimo proceso dauginimo procese, išvestis atmetama su neteisingu šifruotu tekstu. Turėdamas galimybę susisiekti su SGX tvarkytoju, kad užšifruotų savo duomenis, užpuolikas, sukeldamas gedimus, gali kaupti statistiką apie išvesties šifruoto teksto pokyčius ir per kelias minutes atkurti anklave saugomo rakto vertę. Originalus įvesties tekstas ir teisingas išvesties šifruotas tekstas yra žinomi, raktas nesikeičia, o neteisingo šifruoto teksto išvestis rodo, kad kai kurie bitai buvo iškraipyti į priešingą reikšmę.

Išanalizavus teisingų ir sugadintų šifruotų tekstų reikšmių poras, susikaupusias įvairių gedimų metu, naudojant diferencinės gedimų analizės metodus (DFA, Diferencialo gedimų analizė) gali numatyti tikėtinus AES simetriniam šifravimui naudojamus raktus, o tada, analizuodami skirtingų rinkinių raktų sankirtas, nustatykite norimą raktą.

Problema paveikė įvairius „Intel“ procesorių modelius, įskaitant „Intel Core“ procesorius su 6
10 kartos, taip pat penktoji ir šeštoji Xeon E3 kartos, pirmosios ir antrosios kartos Intel Xeon Scalable, Xeon D,
Xeon W ir Xeon E.

Priminsime, kad SGX technologija (Programinės įrangos apsaugos plėtiniai) pasirodė šeštosios kartos „Intel Core“ procesoriuose („Skylake“) ir siūlo instrukcijų serija, leidžianti vartotojo lygio programoms skirti uždaras atminties sritis – anklavus, kurių turinio negali nuskaityti ar modifikuoti net branduolys ir kodas, veikiantis ring0, SMM ir VMM režimais. Neįmanoma perduoti valdymo į kodą anklave naudojant tradicines peršokimo funkcijas ir manipuliacijas su registrais bei kaminu, valdymui perkelti į anklavą naudojama specialiai sukurta nauja instrukcija, kuri atlieka autoritetų patikrinimą. Tokiu atveju kodas, įdėtas į anklavą, gali naudoti klasikinius iškvietimo metodus, kad pasiektų funkcijas anklavo viduje, ir specialias instrukcijas, skirtas iškviesti išorines funkcijas. Enclave atminties šifravimas naudojamas apsaugoti nuo aparatinės įrangos atakų, pavyzdžiui, prisijungiant prie DRAM modulio.

Šaltinis: opennet.ru

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