CROSSTalk – „Intel“ procesorių pažeidžiamumas, dėl kurio atsiranda duomenų nutekėjimas tarp branduolių

Mokslininkų komanda iš Vrije Universiteit Amsterdam nustatė naują pažeidžiamumas (CVE-2020-0543) „Intel“ procesorių mikroarchitektūrinėse struktūrose, išsiskirianti tuo, kad leidžia atkurti kai kurių instrukcijų, vykdomų kitame procesoriaus branduolyje, vykdymo rezultatus. Tai pirmasis pažeidžiamumas spekuliacinio instrukcijų vykdymo mechanizme, leidžiančiame nutekėti duomenis tarp atskirų procesoriaus branduolių (anksčiau nutekėjimai buvo apriboti skirtingomis to paties branduolio gijomis). Tyrėjai šią problemą pavadino CROSSTalk, bet Intel dokumentai Pažeidžiamumas vadinamas SRBDS (specialiojo registro buferio duomenų atranka).

Pažeidžiamumas yra susijęs su pristatyta prieš metus į MDS (Microarchitectural Data Sampling) problemų klasę ir yra paremta šoninių kanalų analizės metodų taikymu duomenims mikroarchitektūrinėse struktūrose. veikimo principas CROSSTalk yra arti pažeidžiamumo RIDL, bet skiriasi nuotėkio šaltiniu.
Naujasis pažeidžiamumas manipuliuoja anksčiau nedokumentuoto tarpinio buferio, kuriuo dalijasi visi procesoriaus branduoliai, nutekėjimu.

CROSSTalk – „Intel“ procesorių pažeidžiamumas, dėl kurio atsiranda duomenų nutekėjimas tarp branduolių

Problemos esmė yra tai, kad kai kurios mikroprocesoriaus instrukcijos, įskaitant RDRAND, RDSEED ir SGX EGETKEY, yra įgyvendinamos naudojant vidinę mikroarchitektūrinę SRR (specialiojo registro skaitymo) operaciją. Paveiktuose procesoriuose SRR grąžinti duomenys deponuojami į tarpinį buferį, bendrą visoms procesoriaus šerdims, po to jie perkeliami į užpildymo buferį, susietą su konkrečia fizine procesoriaus šerdimi, kurioje buvo inicijuota nuskaitymo operacija. Tada reikšmė iš užpildymo buferio nukopijuojama į programoms matomus registrus.

Tarpinio bendrinamo buferio dydis atitinka talpyklos eilutę, kuri paprastai yra didesnė už nuskaitomų duomenų dydį, o skirtingi nuskaitymai turi įtakos skirtingiems poslinkiams buferyje. Kadangi bendras buferis visiškai nukopijuojamas į užpildymo buferį, perkeliama ne tik dabartinei operacijai reikalinga dalis, bet ir duomenys, likę iš kitų operacijų, įskaitant tas, kurios atliekamos su kitais procesoriaus branduoliais.

CROSSTalk – „Intel“ procesorių pažeidžiamumas, dėl kurio atsiranda duomenų nutekėjimas tarp branduolių

CROSSTalk – „Intel“ procesorių pažeidžiamumas, dėl kurio atsiranda duomenų nutekėjimas tarp branduolių

Jei ataka sėkminga, sistemoje autentifikuotas vietinis vartotojas gali nustatyti RDRAND, RDSEED ir EGETKEY instrukcijų vykdymo rezultatą svetimame procese arba Intel SGX anklave, neatsižvelgiant į procesoriaus branduolį, kuriame vykdomas kodas.
Tyrėjai, kurie nustatė problemą paskelbtas Prototipo išnaudojimas, parodantis galimybę nutekėti informaciją apie atsitiktines reikšmes, gautas naudojant RDRAND ir RDSEED instrukcijas, siekiant atkurti ECDSA privatųjį raktą, apdorotą Intel SGX anklave, sistemoje atlikus tik vieną skaitmeninio parašo operaciją.


problema jautrūs platus stalinių, mobiliųjų ir serverių Intel procesorių asortimentas, įskaitant Core i3, i5, i7, i9, m3, Celeron (J, G ir N serijos), Atom (C, E ir X serijos), Xeon (E3, E5, E7 šeimos , W ir D), Xeon Scalable ir kt. Pastebėtina, kad „Intel“ apie pažeidžiamumą buvo pranešta 2018 m. rugsėjį, o 2019 m. liepos mėn. buvo pateiktas išnaudojimo prototipas, rodantis duomenų nutekėjimą tarp procesoriaus branduolių, tačiau pataisos kūrimas buvo atidėtas dėl jo įgyvendinimo sudėtingumo. Šiandien siūlomas mikrokodo naujinys išsprendžia problemą, pakeisdamas RDRAND, RDSEED ir EGETKEY instrukcijų elgseną perrašyti duomenis bendrame buferyje, kad ten nenusėstų likutinė informacija. Be to, buferio prieiga pristabdoma, kol turinys nuskaitomas ir perrašomas.

Šalutinis šio tipo apsaugos poveikis yra didesnis delsos laikas, kai vykdomas RDRAND, RDSEED ir EGETKEY, ir sumažėjęs pralaidumas bandant vykdyti šias instrukcijas vienu metu skirtinguose loginiuose procesoriuose. Vykdant RDRAND, RDSEED ir EGETKEY taip pat sustabdoma kitų loginių procesorių prieiga prie atminties. Šios funkcijos gali neigiamai paveikti kai kurių serverio programų veikimą, todėl programinė įranga suteikia mechanizmą (RNGDS_MITG_DIS), leidžiantį išjungti apsaugą RDRAND ir RDSEED instrukcijoms, vykdomoms už Intel SGX anklavo ribų.

Šaltinis: opennet.ru

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