CROSSTalk — Intel CPU ievainojamība, kas izraisa datu noplūdi starp kodoliem

Amsterdamas Vrije Universiteit pētnieku komanda ir identificējusi jaunu ievainojamība (CVE-2020-0543) Intel procesoru mikroarhitektūras struktūrās, kas ir ievērojams ar to, ka ļauj atjaunot dažu instrukciju izpildes rezultātus, kas izpildīti citā CPU kodolā. Šī ir pirmā ievainojamība spekulatīvo instrukciju izpildes mehānismā, kas pieļauj datu noplūdi starp atsevišķiem CPU kodoliem (iepriekš noplūdes aprobežojās ar viena un tā paša kodola dažādiem pavedieniem). Pētnieki problēmu nosauca par CROSSTalk, bet Intel dokumenti Ievainojamība tiek saukta par SRBDS (Special Register Buffer Data Sampling).

Ievainojamība ir saistīta ar prezentēts pirms gada MDS (Microarchitectural Data Sampling) problēmu klasē un ir balstīta uz sānu kanālu analīzes metožu pielietojumu datiem mikroarhitektūras struktūrās. Darbības princips CROSSTalk ir tuvu ievainojamībai RIDL, bet atšķiras pēc noplūdes avota.
Jaunā ievainojamība manipulē ar iepriekš nedokumentēta starpposma bufera noplūdi, ko koplieto visi CPU kodoli.

CROSSTalk — Intel centrālo procesoru ievainojamība, kas izraisa datu noplūdi starp kodoliem

Problēmas būtība ir tas, ka dažas mikroprocesora instrukcijas, tostarp RDRAND, RDSEED un SGX EGETKEY, tiek īstenotas, izmantojot iekšējo mikroarhitektūras SRR (Special Register Reads) darbību. Ietekmētajos procesoros SRR atgrieztie dati tiek glabāti starpbuferī, kas ir kopīgs visiem CPU kodoliem, pēc tam tie tiek pārsūtīti uz aizpildīšanas buferi, kas saistīts ar konkrēto fizisko CPU kodolu, kurā tika uzsākta lasīšanas darbība. Pēc tam aizpildīšanas bufera vērtība tiek kopēta lietojumprogrammām redzamajos reģistros.

Starpposma koplietotā bufera lielums atbilst kešatmiņas rindai, kas parasti ir lielāka par nolasāmo datu lielumu, un dažādi nolasījumi ietekmē dažādas nobīdes buferī. Tā kā koplietotais buferis tiek pilnībā kopēts uz aizpildīšanas buferi, tiek pārvietota ne tikai daļa, kas nepieciešama pašreizējai darbībai, bet arī dati, kas paliek no citām darbībām, tostarp tām, kas veiktas citos CPU kodolos.

CROSSTalk — Intel centrālo procesoru ievainojamība, kas izraisa datu noplūdi starp kodoliem

CROSSTalk — Intel centrālo procesoru ievainojamība, kas izraisa datu noplūdi starp kodoliem

Ja uzbrukums ir veiksmīgs, sistēmā autentificēts vietējais lietotājs var noteikt RDRAND, RDSEED un EGETKEY instrukciju izpildes rezultātu svešā procesā vai Intel SGX anklāvā neatkarīgi no CPU kodola, kurā tiek izpildīts kods.
Pētnieki, kas identificēja problēmu publicēta Prototipa izmantošana, kas demonstrē spēju nopludināt informāciju par nejaušām vērtībām, kas iegūtas, izmantojot RDRAND un RDSEED instrukcijas, lai atgūtu ECDSA privāto atslēgu, kas apstrādāta Intel SGX anklāvā pēc tikai vienas ciparparaksta darbības veikšanas sistēmā.


problēma uzņēmīgi plašs galddatoru, mobilo un serveru Intel procesoru klāsts, tostarp Core i3, i5, i7, i9, m3, Celeron (J, G un N sērija), Atom (C, E un X sērija), Xeon (E3, E5, E7 saimes , W un D), Xeon Scalable utt. Zīmīgi, ka Intel par ievainojamību tika paziņots 2018. gada septembrī, savukārt 2019. gada jūlijā tika nodrošināts ekspluatācijas prototips, kas demonstrēja datu noplūdi starp CPU kodoliem, taču labojuma izstrāde aizkavējās tā ieviešanas sarežģītības dēļ. Šodien piedāvātais mikrokoda atjauninājums novērš problēmu, mainot RDRAND, RDSEED un EGETKEY instrukciju darbību, lai pārrakstītu datus koplietotajā buferī, lai novērstu atlikušās informācijas nogulsnēšanos tur. Turklāt bufera piekļuve tiek apturēta, līdz saturs tiek nolasīts un pārrakstīts.

Šāda veida aizsardzības blakusparādība ir palielināts latentums, izpildot RDRAND, RDSEED un EGETKEY, un samazināta caurlaidspēja, mēģinot izpildīt šīs instrukcijas vienlaicīgi dažādos loģiskajos procesoros. RDRAND, RDSEED un EGETKEY izpilde arī aptur piekļuvi atmiņai no citiem loģiskajiem procesoriem. Šīs funkcijas var negatīvi ietekmēt dažu servera lietojumprogrammu veiktspēju, tāpēc programmaparatūra nodrošina mehānismu (RNGDS_MITG_DIS), lai atspējotu aizsardzību RDRAND un RDSEED instrukcijām, kas izpildītas ārpus Intel SGX anklāva.

Avots: opennet.ru

Pievieno komentāru