Společnost Intel informace o novém ve svých procesorech — (Microarchitectural Data Sampling). Stejně jako předchozí útoky třídy Spectre mohou nové problémy vést k úniku citlivých dat operačního systému, virtuálních strojů a cizích procesů. Uvádí se, že problémy byly nejprve odhaleny zaměstnanci a partnery společnosti Intel během interního auditu, po čemž byla informace o podobných problémech ve společnosti Intel předána nezávislými výzkumníky. Procesory AMD a ARM tímto problémem nejsou postiženy.
Na základě odhalených problémů výzkumníky z Technické univerzity Graz (Rakousko) několik praktických útoků prostřednictvím bočních kanálů:
- () — umožňuje vyjmout důvěrné informace z jiných procesů, operačního systému, virtuálních strojů a chráněných enclave (TEE, Trusted Execution Environment). Například byla demonstrována možnost určovat historii otevírání stránek v prohlížeči Tor, který běžel na jiném virtuálním stroji, stejně jako určování používaných klíčů a hesel v aplikacích;
- () — umožňuje organizovat únik informací mezi různými izolovanými oblastmi v procesorech Intel, jako jsou vyrovnávací paměti, paměťové zásobníky a vstupní porty. Příklady provádění útoků jsou předvedeny pro organizování úniků z jiných procesů, operačního systému, virtuálních strojů a chráněných enclave. Například bylo ukázáno, jak zjistit obsah hashe hesla root z /etc/shadow při periodických pokusech o autentizaci (útok trval 24 hodin);

Kromě toho byl předveden příklad útoku pomocí JavaScript a WebAssembly při otevření škodlivé stránky v enginu SpiderMonkey (v moderních plnohodnotných prohlížečích je takový útok nepravděpodobný kvůli omezení přesnosti časovače a opatřením proti Spectre);

- () — poskytuje možnost číst data, která byla nedávno zapsaná operačním systémem, a určovat rozložení paměti OS pro usnadnění provádění jiných útoků;
- — využívá optimalizace CPU při práci s vyrovnávací pamětí a může být použita k obcházení mechanismu randomizace adresního prostoru jádra (KASLR), pro sledování stavu operačního systému nebo pro úniky v kombinaci s gadgety na bázi metod Spectre.
Byly odhaleny :
- CVE-2018-12126 — MSBDS (Microarchitectural Store Buffer Data Sampling), obnovení obsahu úložišť. Používá se v útoku Fallout. Úroveň nebezpečí byla stanovena na 6.5 bodu (CVSS);
- CVE-2018-12127 — MLPDS (Microarchitectural Load Port Data Sampling), obnovení obsahu načítacích portů. Používá se v útoku RIDL. CVSS 6.5;
- CVE-2018-12130 — MFBDS (Microarchitectural Fill Buffer Data Sampling), obnovení obsahu vyplňovacích bufferů. Používá se v útocích ZombieLoad a RIDL. CVSS 6.5;
- CVE-2019-11091 — MDSUM (Microarchitectural Data Sampling Uncacheable Memory), obnovení obsahu nekonzistentní paměti. Používá se v útoku RIDL. CVSS 3.8.
Existující problémy v možnosti aplikace metod analýzy přes vedlejší kanály na data v mikroarchitektonických strukturách, k nimž aplikace nemají přímý přístup. Mluvíme o takových nízkoúrovňových strukturách, jako jsou vyplňovací buffery (Line Fill Buffer), úložné buffery (Store Buffer) a načítací porty (Load Port), které jsou menšími komponenty než vyrovnávací paměť první úrovně (L1D), vyrovnávací paměť načítání dat (RDCL) nebo L1TF (L1 Terminal Fault), a tím pádem obsahují méně informací a jsou intenzivněji aktualizovány.

Útoky přes vedlejší kanály na mikroarchitektonické struktury jsou podstatně složitější na provedení ve srovnání s metodami obnovy obsahu cache a vyžadují sledování a analýzu značného množství dat k určení jejich vztahu k určitým adresám v paměti (v podstatě útočník nemůže cíleně zachytit určité údaje, ale může po delší dobu shromažďovat úniky a používat statistické metody k rekonstrukci určitých typů dat). Kromě toho útok zasahuje pouze do dat na stejném fyzickém jádru CPU jako kód útočníka.
Navržené metody určení obsahu mikroarchitektonických struktur se zakládají na tom, že tyto struktury jsou používány během spekulačního zpracování výjimek (fault) nebo operací načítání a ukládání.
Při spekulačním provádění je obsah vnitřních struktur přesměrován k zpracování v registrech nebo cache. Spekulační operace nedokončují a výsledek je zahoden, ale přesměrovaný obsah lze určit metodami analýzy cache přes vedlejší kanály.
Záložní porty se používají procesorem k získávání dat z paměti nebo subsystému vstupu/výstupu a poskytování těchto informací do registrů CPU. V důsledku specifik implementace zůstávají data ze starších operací načítání v portech, dokud nejsou přepsána novými daty, což umožňuje nepřímé určení stavu dat v záložním portu pomocí manipulací s výjimkami (fault) a instrukcemi SSE/AVX/AVX-512, které načítají více než 64 bitů dat. V takových podmínkách operace načítání spekulativně osvětlují zastaralé hodnoty dat z vnitřních struktur v závislých operacích. Podobným způsobem dochází k úniku přes vyrovnávací paměť, která se používá k urychlení zápisu do mezipaměti CPU a zahrnuje tabulku adres, hodnot a příznaků, stejně jako přes vyrovnávací paměť vyplnění, která obsahuje data, která zatím nejsou v mezipaměti L1 (cache-miss), po dobu jejich načítání z mezipamětí jiných úrovní.
Problém procesorové modely Intel, vydávané od roku 2011 (od 6. generace). Přitom jsou hardwarové zranitelnosti blokovány od určitých modelů 8. a 9. generace Intel Core a 2. generace Intel Xeon Scalable (lze ověřit pomocí bitu ARCH_CAP_MDS_NO v MSR IA32_ARCH_CAPABILITIES). Zranitelnosti jsou již také na úrovni firmwaru, mikrokódu a operačních systémů. Podle odhadů Intel ztráta výkonu po aktivaci opravy pro většinu uživatelů 3 %. Při deaktivaci technologie Hyper-Threading může pokles výkonu dosáhnout až 9 % u testu SPECint_rate_base, až 11 % při aktivních celočíselných výpočtech a až 19 % při provozu serverových Java aplikací (při zapnutém HT je pokles výkonu téměř nesignifikantní). Opravy prakticky nemají vliv na výkon operací spojených se vstupem/výstupem.
V jádru Linuxu existuje ochrana proti MDS v dnešních 5.1.2, 5.0.16,
4.19.43, 4.14.119 a 4.9.176. Metoda ochrany na vyčištění obsahu mikroarchitektonických vyrovnávacích pamětí v okamžiku návratu z jádra do uživatelského prostoru nebo při předání kontroly hostitelskému systému, k čemuž se používá instrukce VERW. Pro funkci této ochrany je nutná podpora režimu MD_CLEAR, implementovaného v nejnovější aktualizaci mikrokódu. Pro úplnou ochranu se také doporučuje deaktivovat Hyper Threading. Pro kontrolu zranitelnosti systému v jádru Linux. zpracovatel „\/sys\/devices\/system\/cpu\/vulnerabilities\/mds“. Pro správu aktivace různých režimů blokování zranitelnosti byla do jádra přidána možnost „mds=“, která může přijímat hodnoty „full“, „full,nosmt“ (vypnutí Hyper-Threads), „vmwerv“ a „off“.
Aktualizace balíčků již byly vydány pro a , ale zatím zůstávají nedostupné pro , a .
Oprava pro blokování úniků dat z virtuálních strojů také pro hypervizor Xen. Pro ochranu systémů virtualizace, které provádějí příkaz L1D_FLUSH před předáním řízení jinému virtuálnímu stroji, a pro ochranu enclaves Intel SGX stačí aktualizace mikroprogramu.
Zdroj: opennet.ru


