Skupina výskumníci z Grazskej technickej univerzity v rakusku a Helmholtzovo centrum pre informačnú bezpečnosť (CISPA), identifikovali nový útočný vektor Foreshadow (L1TF), ktorý umožňuje extrahovať údaje z pamäte enkláv Intel SGX, SMM, oblastí pamäte jadra operačného systému a virtuálnych strojov vo virtualizačných systémoch.
Na rozdiel od pôvodného útoku Foreshadow, Nový variant nie je špecifický pre procesory Intel a ovplyvňuje sa CPU od iných výrobcov ako napr ARM, IBM a AMD. Nová možnosť navyše nevyžaduje vysoký výkon a útok je možné vykonať aj spustením JavaScriptu a WebAssembly vo webovom prehliadači.
Foreshadow využíva skutočnosť, že keď sa do pamäte pristupuje na virtuálnej adrese, ktorá vyvolá výnimku (porucha terminálovej stránky), procesor špekulatívne vypočíta fyzickú adresu a načíta údaje, ak sú v medzipamäti L1.
Špekulatívny prístup sa vykonáva pred dokončením iterácie tabuľky pamäťových stránok a bez ohľadu na stav záznamu tabuľky pamäťových stránok (PTE), to znamená pred overením, či sú údaje vo fyzickej pamäti a sú čitateľné.
Po dokončení kontroly dostupnosti pamäte, ak chýba ukazovateľ prítomný v PTE, operácia sa zahodí, ale údaje sa uložia do medzipamäte a je možné ich načítať pomocou metód na určenie obsahu medzipamäte cez vedľajšie kanály (analýzou zmien v čase prístupu k údajom uloženým v pamäti a bez vyrovnávacej pamäte).
Vedci to dokázali že existujúce spôsoby ochrany pred predobrazom sú neúčinné a sú implementované s nesprávnou interpretáciou problému.
Predohra zraniteľnosť je možné využiť bez ohľadu na použitie ochranných mechanizmov v jadre ktoré sa predtým považovali za dostatočné.
Výsledkom je, vedci demonštrovali možnosť uskutočnenia útoku predobrazom na systémy s relatívne starými kernelami, v ktorom sú povolené všetky dostupné režimy ochrany Foreshadow, ako aj v prípade novších jadier, v ktorých je vypnutá iba ochrana Spectre-v2 (pomocou možnosti jadra nospectre_v2 Linux).
Zistilo sa, že efekt predbežného načítania nesúvisí s pokynmi na predbežné načítanie softvéru alebo s efektom predbežného načítania hardvéru počas prístupu do pamäte, ale skôr vyplýva zo špekulatívnej dereferencie registrov užívateľského priestoru v jadro.
Táto nesprávna interpretácia príčiny zraniteľnosti spočiatku viedla k predpokladu, že k úniku údajov v nástroji Foreshadow môže dôjsť iba prostredníctvom vyrovnávacej pamäte L1, zatiaľ čo prítomnosť určitých úryvkov kódu (zariadení na predbežné načítanie) v jadre môže prispieť k úniku údajov z medzipamäte L1, napríklad v pamäti L3 Cache.
Odhalená funkcia tiež otvára príležitosti na vytváranie nových útokov. určené na preklad virtuálnych adries na fyzické adresy v prostredí karantény a na určovanie adries a údajov uložených v registroch CPU.
Ako ukážky, ukázali vedci schopnosť použiť odhalený efekt na extrahovať údaje z jedného procesu do druhého s priepustnosťou približne 10 bitov za sekundu v systéme s procesorom Intel Core i7-6500U.
Zobrazuje sa tiež možnosť filtrovania obsahu záznamov z enklávy Intel SGX (stanovenie 15-bitovej hodnoty zapísanej do 32-bitového registra trvalo 64 minút).
Blokovať útok Foreshadow cez L3 cache, metóda ochrany Spectre-BTB (Buffer Target Buffer) implementovaný v súprave náplastí retpoline je efektívny.
Preto, vedci sa domnievajú, že je potrebné nechať retpolín zapnutý dokonca aj na systémoch s novšími procesormi, ktoré už majú ochranu pred známymi slabými miestami v mechanizme špekulatívneho vykonávania pokynov CPU.
Pre jeho časť, Zástupcovia spoločnosti Intel uviedli, že neplánujú pridať ďalšie ochranné opatrenia proti Foreshadow procesorom a považujú to za dostatočné na to, aby umožnili ochranu pred útokmi Spectre V2 a L1TF (Foreshadow).
Fuente: https://arxiv.org