CROSSTalk – zraniteľnosť v procesoroch Intel, ktorá vedie k úniku dát medzi jadrami

Tím výskumníkov z Vrije Universiteit Amsterdam identifikoval nový zraniteľnosť (CVE-2020-0543) v mikroarchitektonických štruktúrach procesorov Intel, pozoruhodný tým, že umožňuje obnoviť výsledky vykonania niektorých inštrukcií vykonaných na inom jadre CPU. Ide o prvú zraniteľnosť v mechanizme vykonávania špekulatívnych inštrukcií, ktorý umožňuje únik dát medzi jednotlivými jadrami CPU (predtým boli úniky obmedzené na rôzne vlákna toho istého jadra). Výskumníci problém pomenovali CROSSTalk, ale Dokumenty Intel Zraniteľnosť sa označuje ako SRBDS (Special Register Buffer Data Sampling).

Zraniteľnosť sa týka prezentované pred rokom do triedy problémov MDS (Microarchitectural Data Sampling) a je založený na aplikácii metód analýzy bočných kanálov na dáta v mikroarchitektonických štruktúrach. princíp fungovania CROSSTalk je blízko zraniteľnosti RIDL, ale líši sa v zdroji úniku.
Nová zraniteľnosť manipuluje s únikom predtým nezdokumentovanej prechodnej vyrovnávacej pamäte, ktorú zdieľajú všetky jadrá CPU.

CROSSTalk – zraniteľnosť v procesoroch Intel, ktorá vedie k úniku dát medzi jadrami

Podstata problému je, že niektoré inštrukcie mikroprocesora, vrátane RDRAND, RDSEED a SGX EGETKEY, sú implementované pomocou internej mikroarchitektonickej operácie SRR (Special Register Reads). Na postihnutých procesoroch sa údaje vrátené pre SRR uložia do medziľahlej vyrovnávacej pamäte spoločnej pre všetky jadrá CPU, po ktorej sa prenesú do vyplňovacej vyrovnávacej pamäte spojenej so špecifickým fyzickým jadrom CPU, na ktorom bola spustená operácia čítania. Ďalej sa hodnota z vyrovnávacej pamäte skopíruje do registrov viditeľných pre aplikácie.

Veľkosť medziľahlej zdieľanej vyrovnávacej pamäte zodpovedá riadku vyrovnávacej pamäte, ktorý je zvyčajne väčší ako veľkosť čítaných údajov a rôzne čítania ovplyvňujú rôzne posuny vo vyrovnávacej pamäti. Keďže zdieľaná vyrovnávacia pamäť sa úplne skopíruje do vyplňovacej vyrovnávacej pamäte, presunie sa nielen časť potrebná na aktuálnu operáciu, ale aj údaje zostávajúce z iných operácií, vrátane tých, ktoré sa vykonávajú na iných jadrách CPU.

CROSSTalk – zraniteľnosť v procesoroch Intel, ktorá vedie k úniku dát medzi jadrami

CROSSTalk – zraniteľnosť v procesoroch Intel, ktorá vedie k úniku dát medzi jadrami

Ak je útok úspešný, lokálny používateľ overený v systéme môže určiť výsledok vykonania inštrukcií RDRAND, RDSEED a EGETKEY v cudzom procese alebo vnútri enklávy Intel SGX, bez ohľadu na jadro CPU, na ktorom je kód spustený.
Výskumníci, ktorí identifikovali problém uverejnené Prototyp exploitu demonštrujúci schopnosť úniku informácií o náhodných hodnotách získaných prostredníctvom inštrukcií RDRAND a RDSEED na obnovenie súkromného kľúča ECDSA spracovaného v enkláve Intel SGX po vykonaní iba jednej operácie digitálneho podpisu v systéme.


problém náchylné široká škála desktopových, mobilných a serverových procesorov Intel, vrátane Core i3, i5, i7, i9, m3, Celeron (série J, G a N), Atom (série C, E a X), Xeon (E3, E5, E7 rodiny, W a D), Xeon Scalable atď. Je pozoruhodné, že spoločnosť Intel bola upozornená na zraniteľnosť v septembri 2018 a v júli 2019 bol poskytnutý prototyp zneužitia demonštrujúci únik údajov medzi jadrami CPU, ale vývoj opravy sa oneskoril z dôvodu zložitosti jej implementácie. Dnešná navrhovaná aktualizácia mikrokódu rieši problém zmenou správania inštrukcií RDRAND, RDSEED a EGETKEY na prepisovanie údajov v zdieľanej vyrovnávacej pamäti, aby sa zabránilo usadzovaniu zvyškových informácií. Okrem toho je prístup do vyrovnávacej pamäte pozastavený, kým sa obsah neprečíta a neprepíše.

Vedľajším efektom tohto typu ochrany je zvýšená latencia pri vykonávaní RDRAND, RDSEED a EGETKEY a znížená priepustnosť pri pokuse o súčasné vykonanie týchto inštrukcií na rôznych logických procesoroch. Spustenie RDRAND, RDSEED a EGETKEY tiež pozastaví prístup k pamäti z iných logických procesorov. Tieto funkcie môžu negatívne ovplyvniť výkon niektorých serverových aplikácií, takže firmvér poskytuje mechanizmus (RNGDS_MITG_DIS) na deaktiváciu ochrany pre inštrukcie RDRAND a RDSEED vykonávané mimo enklávu Intel SGX.

Zdroj: opennet.ru

Pridať komentár