CROSSTalk – haavatavus Inteli protsessorites, mis põhjustab andmete lekkimist tuumade vahel

Vrije Universiteit Amsterdami teadlaste meeskond on tuvastanud uue haavatavus (CVE-2020-0543) Inteli protsessorite mikroarhitektuursetes struktuurides, mis on märkimisväärne selle poolest, et võimaldab teil taastada mõne teises CPU tuumas käivitatud juhiste täitmise tulemused. See on spekulatiivse käskude täitmise mehhanismi esimene haavatavus, mis võimaldab andmete lekkimist üksikute CPU tuumade vahel (varem olid lekked piiratud sama tuuma erinevate lõimedega). Teadlased andsid probleemile nimeks CROSSTalk, kuid Inteli dokumendid Seda haavatavust nimetatakse SRBDS-iks (Special Register Buffer Data Sampling).

Haavatavus on seotud esitati aasta tagasi MDS (Microarchitectural Data Sampling) probleemide klassi ja põhineb külgkanali analüüsimeetodite rakendamisel andmetele mikroarhitektuuristruktuurides. Toimimise põhimõte CROSSTalk on haavatavusele lähedal RIDL, kuid erineb lekke allika poolest.
Uus haavatavus manipuleerib varem dokumenteerimata vahepuhvri lekkega, mida jagavad kõik protsessori tuumad.

CROSSTalk – haavatavus Inteli protsessorites, mis põhjustab andmete lekkimist tuumade vahel

Probleemi olemus on see, et mõned mikroprotsessori käsud, sealhulgas RDRAND, RDSEED ja SGX EGETKEY, rakendatakse sisemise mikroarhitektuuri SRR (Special Register Reads) toimingu abil. Mõjutatud protsessorites salvestatakse SRR-i jaoks tagastatud andmed vahepuhvrisse, mis on ühine kõigile protsessori tuumadele, misjärel kantakse need täitepuhvrisse, mis on seotud konkreetse füüsilise protsessori tuumaga, millel lugemisoperatsioon algatati. Järgmisena kopeeritakse väärtus täitepuhvrist rakendustele nähtavatesse registritesse.

Vahepealse jagatud puhvri suurus vastab vahemälu reale, mis on tavaliselt suurem kui loetavate andmete suurus ning erinevad lugemised mõjutavad puhvris erinevaid nihkeid. Kuna jagatud puhver kopeeritakse täielikult täitepuhvrisse, ei teisaldata mitte ainult praeguseks toiminguks vajalikku osa, vaid ka muudest toimingutest järelejäänud andmeid, sealhulgas teiste protsessori tuumadega tehtud toiminguid.

CROSSTalk – haavatavus Inteli protsessorites, mis põhjustab andmete lekkimist tuumade vahel

CROSSTalk – haavatavus Inteli protsessorites, mis põhjustab andmete lekkimist tuumade vahel

Kui rünnak õnnestub, saab süsteemis autentitud kohalik kasutaja määrata RDRAND-, RDSEED- ja EGETKEY-käskude täitmise tulemuse võõras protsessis või Inteli SGX-enklaavis, olenemata sellest, millisel protsessori tuumal kood käivitatakse.
Teadlased, kes probleemi tuvastasid avaldatud Prototüübi ärakasutamine, mis demonstreerib võimet lekitada teavet juhuslike väärtuste kohta, mis on saadud juhiste RDRAND ja RDSEED kaudu, et taastada Intel SGX enklaavis töödeldud ECDSA privaatvõti pärast ainult ühe digitaalallkirja toimingu sooritamist süsteemis.


probleem vastuvõtlikud lai valik Inteli laua-, mobiil- ja serveriprotsessoreid, sealhulgas Core i3, i5, i7, i9, m3, Celeron (J, G ja N seeria), Atom (C, E ja X seeria), Xeon (E3, E5, E7 perekonnad , W ja D), Xeon Scalable jne. Tähelepanuväärne on, et Intelile teatati haavatavusest 2018. aasta septembris ja 2019. aasta juulis pakuti ärakasutusprototüüpi, mis demonstreeris andmeleket CPU tuumade vahel, kuid paranduse väljatöötamine viibis selle rakendamise keerukuse tõttu. Tänane kavandatud mikrokoodivärskendus lahendab probleemi, muutes RDRAND-i, RDSEED-i ja EGETKEY-käskude käitumist, et kirjutada jagatud puhvris olevad andmed üle, et vältida jääkteabe sinna sadestumist. Lisaks peatatakse puhvri juurdepääs, kuni sisu loetakse ja ümber kirjutatakse.

Seda tüüpi kaitse kõrvalmõju on suurenenud latentsusaeg RDRAND-i, RDSEED-i ja EGETKEY täitmisel ning vähenenud läbilaskevõime, kui proovite neid juhiseid erinevatel loogilistel protsessoritel üheaegselt täita. RDRAND-i, RDSEED-i ja EGETKEY käivitamine peatab ka juurdepääsu teiste loogiliste protsessorite mälule. Need funktsioonid võivad mõne serverirakenduse jõudlust negatiivselt mõjutada, nii et püsivara pakub mehhanismi (RNGDS_MITG_DIS), et keelata kaitse väljaspool Intel SGX enklaavi täidetavate RDRAND- ja RDSEED-käskude jaoks.

Allikas: opennet.ru

Lisa kommentaar