CROSSTalk – zranitelnost v procesorech Intel, která vede k úniku dat mezi jádry

Tým výzkumníků z Vrije Universiteit Amsterdam identifikoval nový zranitelnost (CVE-2020-0543) v mikroarchitektonických strukturách procesorů Intel, pozoruhodný tím, že umožňuje obnovit výsledky provádění některých instrukcí provedených na jiném jádru CPU. Jedná se o první zranitelnost v mechanismu provádění spekulativních instrukcí, který umožňuje únik dat mezi jednotlivými jádry CPU (dříve byly úniky omezeny na různá vlákna stejného jádra). Výzkumníci problém pojmenovali CROSSTalk, ale Dokumenty Intel Tato chyba zabezpečení se označuje jako SRBDS (Special Register Buffer Data Sampling).

Zranitelnost se týká prezentovány před rokem do třídy problémů MDS (Microarchitectural Data Sampling) a je založen na aplikaci metod analýzy postranních kanálů na data v mikroarchitektonických strukturách. Princip CROSSTalk je blízko zranitelnosti RIDL, ale liší se zdrojem úniku.
Nová chyba zabezpečení manipuluje s únikem dříve nezdokumentované mezilehlé vyrovnávací paměti, kterou sdílejí všechna jádra CPU.

CROSSTalk – zranitelnost v procesorech Intel, která vede k úniku dat mezi jádry

Podstata problému je, že některé instrukce mikroprocesoru, včetně RDRAND, RDSEED a SGX EGETKEY, jsou implementovány pomocí interní mikroarchitektonické operace SRR (Special Register Reads). Na postižených procesorech jsou data vrácená pro SRR uložena do mezilehlé vyrovnávací paměti společné pro všechna jádra CPU, načež jsou přenesena do vyrovnávací vyrovnávací paměti spojené s konkrétním fyzickým jádrem CPU, na kterém byla zahájena operace čtení. Dále se hodnota z vyrovnávací paměti zkopíruje do registrů viditelných pro aplikace.

Velikost mezilehlé sdílené vyrovnávací paměti odpovídá řádku mezipaměti, který je obvykle větší než velikost čtených dat a různá čtení ovlivňují různé offsety ve vyrovnávací paměti. Vzhledem k tomu, že sdílená vyrovnávací paměť je zcela zkopírována do vyrovnávací paměti, není přesunuta pouze část potřebná pro aktuální operaci, ale také data zbývající z jiných operací, včetně operací prováděných na jiných jádrech CPU.

CROSSTalk – zranitelnost v procesorech Intel, která vede k úniku dat mezi jádry

CROSSTalk – zranitelnost v procesorech Intel, která vede k úniku dat mezi jádry

Pokud je útok úspěšný, místní uživatel ověřený v systému může určit výsledek provádění instrukcí RDRAND, RDSEED a EGETKEY v cizím procesu nebo uvnitř enklávy Intel SGX, bez ohledu na jádro CPU, na kterém je kód spuštěn.
Výzkumníci, kteří problém identifikovali publikováno Prototyp zneužití demonstrující schopnost úniku informací o náhodných hodnotách získaných prostřednictvím instrukcí RDRAND a RDSEED k obnovení soukromého klíče ECDSA zpracovaného v enklávě Intel SGX po provedení pouze jedné operace digitálního podpisu v systému.


problém vystavený široká škála procesorů Intel pro stolní počítače, mobilní zařízení a servery, včetně Core i3, i5, i7, i9, m3, Celeron (řady J, G a N), Atom (řady C, E a X), Xeon (E3, E5, E7 rodiny, W a D), Xeon Scalable atd. Je pozoruhodné, že společnost Intel byla o zranitelnosti informována v září 2018 a v červenci 2019 byl poskytnut prototyp exploitu prokazující únik dat mezi jádry CPU, ale vývoj opravy byl zpožděn kvůli složitosti její implementace. Dnešní navrhovaná aktualizace mikrokódu řeší problém změnou chování instrukcí RDRAND, RDSEED a EGETKEY pro přepisování dat ve sdílené vyrovnávací paměti, aby se zabránilo usazování zbytkových informací. Navíc je pozastaven přístup do vyrovnávací paměti, dokud není obsah přečten a přepsán.

Vedlejším efektem tohoto typu ochrany je zvýšená latence při provádění RDRAND, RDSEED a EGETKEY a snížená propustnost při pokusu o současné provedení těchto instrukcí na různých logických procesorech. Spuštění RDRAND, RDSEED a EGETKEY také pozastaví přístup k paměti z jiných logických procesorů. Tyto funkce mohou negativně ovlivnit výkon některých serverových aplikací, takže firmware poskytuje mechanismus (RNGDS_MITG_DIS), který deaktivuje ochranu pro instrukce RDRAND a RDSEED prováděné mimo enklávu Intel SGX.

Zdroj: opennet.ru

Přidat komentář