CROSSTalk - një cenueshmëri në CPU-të Intel që çon në rrjedhje të të dhënave midis bërthamave

Një ekip studiuesish nga Vrije Universiteit Amsterdam ka identifikuar një të re cenueshmëria (CVE-2020-0543) në strukturat mikroarkitekturore të procesorëve Intel, i dukshëm në atë që ju lejon të rivendosni rezultatet e ekzekutimit të disa udhëzimeve të ekzekutuara në një bërthamë tjetër CPU. Kjo është dobësia e parë në mekanizmin e ekzekutimit të instruksioneve spekulative që lejon rrjedhjen e të dhënave midis bërthamave individuale të CPU-së (më parë rrjedhjet ishin të kufizuara në fije të ndryshme të së njëjtës bërthamë). Studiuesit e quajtën problemin CROSSTalk, por Dokumente Intel Dobësia është referuar si SRBDS (Special Register Buffer Data Sampling).

Dobësia lidhet me paraqitur një vit më parë në klasën e problemeve MDS (Microarchitectural Data Sampling) dhe bazohet në aplikimin e metodave të analizës së kanaleve anësore për të dhënat në strukturat mikroarkitekturore. Parimi i funksionimit CROSSTalk është afër cenueshmërisë RIDL, por ndryshon në burimin e rrjedhjes.
Dobësia e re manipulon rrjedhjen e një buferi të ndërmjetëm të padokumentuar më parë që ndahet nga të gjitha bërthamat e CPU.

CROSSTalk - një cenueshmëri në CPU-të Intel që çon në rrjedhje të të dhënave midis bërthamave

Thelbi i problemit është se disa instruksione të mikroprocesorit, duke përfshirë RDAND, RDSEED dhe SGX EGETKEY, zbatohen duke përdorur funksionin e brendshëm mikroarkitektonik SRR (Special Register Reads). Në procesorët e prekur, të dhënat e kthyera për SRR depozitohen në një tampon të ndërmjetëm të përbashkët për të gjitha bërthamat e CPU-së, pas së cilës ato transferohen në një bufer mbushjeje të lidhur me bërthamën fizike specifike të CPU-së në të cilën filloi operacioni i leximit. Tjetra, vlera nga tamponi i mbushjes kopjohet në regjistra të dukshëm për aplikimet.

Madhësia e tamponit të ndërmjetëm të përbashkët korrespondon me linjën e cache-it, e cila zakonisht është më e madhe se madhësia e të dhënave që lexohen, dhe lexime të ndryshme ndikojnë në zhvendosje të ndryshme në tampon. Meqenëse buferi i përbashkët kopjohet tërësisht në buferin e mbushjes, zhvendoset jo vetëm pjesa e nevojshme për operacionin aktual, por edhe të dhënat e mbetura nga operacionet e tjera, duke përfshirë ato të kryera në bërthamat e tjera të CPU.

CROSSTalk - një cenueshmëri në CPU-të Intel që çon në rrjedhje të të dhënave midis bërthamave

CROSSTalk - një cenueshmëri në CPU-të Intel që çon në rrjedhje të të dhënave midis bërthamave

Nëse sulmi është i suksesshëm, një përdorues lokal i vërtetuar në sistem mund të përcaktojë rezultatin e ekzekutimit të udhëzimeve RDRAND, RDSEED dhe EGETKEY në një proces të huaj ose brenda një enklave Intel SGX, pavarësisht nga bërthama e CPU-së në të cilën është ekzekutuar kodi.
Studiuesit që identifikuan problemin botuar Një shfrytëzim prototip që demonstron aftësinë për të nxjerrë informacione rreth vlerave të rastësishme të marra përmes udhëzimeve RDRAND dhe RDSEED për të rikuperuar një çelës privat ECDSA të përpunuar në enklavën Intel SGX pas kryerjes së vetëm një operacioni të nënshkrimit dixhital në sistem.


problem e ndjeshme një gamë e gjerë e procesorëve Intel për desktop, celular dhe server, duke përfshirë Core i3, i5, i7, i9, m3, Celeron (seritë J, G dhe N), Atom (seri C, E dhe X), Xeon (E3, E5, Familjet E7, W dhe D), Xeon Scalable, etj. Vlen të përmendet se Intel u njoftua për dobësinë në shtator 2018, dhe në korrik 2019 u sigurua një prototip i shfrytëzimit që demonstronte rrjedhjen e të dhënave midis bërthamave të CPU, por zhvillimi i një rregullimi u vonua për shkak të kompleksitetit të zbatimit të tij. Përditësimi i propozuar i sotëm i mikrokodit e trajton problemin duke ndryshuar sjelljen e udhëzimeve RDRAND, RDSEED dhe EGETKEY për të mbishkruar të dhënat në bufferin e përbashkët për të parandaluar vendosjen e informacionit të mbetur atje. Përveç kësaj, qasja në bufer ndërpritet derisa përmbajtja të lexohet dhe të rishkruhet.

Një efekt anësor i këtij lloji të mbrojtjes është rritja e vonesës gjatë ekzekutimit të RDRAND, RDSEED dhe EGETKEY, dhe reduktimi i xhiros kur përpiqeni të ekzekutoni këto udhëzime njëkohësisht në procesorë të ndryshëm logjik. Ekzekutimi i RDAND, RDSEED dhe EGETKEY gjithashtu pezullon aksesin e memories nga procesorët e tjerë logjikë. Këto veçori mund të ndikojnë negativisht në performancën e disa aplikacioneve të serverit, kështu që firmware ofron një mekanizëm (RNGDS_MITG_DIS) për të çaktivizuar mbrojtjen për udhëzimet RDAND dhe RDSEED të ekzekutuara jashtë enklavës Intel SGX.

Burimi: opennet.ru

Shto një koment