LVI — nový typ útoků na mechanismus spekulativního provádění v CPU

Byly zveřejněny informace o novém typu útoků LVI (Load Value Injection, CVE-2020-0551) na mechanismus spekulativního provádění v CPU Intel, který může být využit k úniku klíčů a tajných dat z enclaves Intel SGX a dalších procesů.

Nový typ útoků je založen na manipulaci se stejnými mikroarchitektonickými strukturami, jako při útocích MDS (Microarchitectural Data Sampling), Spectre a Meltdown. Nové útoky nejsou blokovány existujícími metodami ochrany proti Meltdown, Spectre, MDS a dalším podobným útokům. Pro zajištění efektivní ochrany proti LVI jsou potřebné hardwarové změny v CPU. Při softwarové ochraně, přidáním instrukce LFENCE po každé operaci načítání z paměti a nahrazením instrukce RET instrukcemi POP, LFENCE a JMP, se projevují příliš vysoké náklady — podle odhadů výzkumníků by plná softwarová ochrana vedla ke snížení výkonu o 2-19násobek.

Částečně je obtížnost zablokování problému kompenzována tím, že v současnosti útok má spíše teoretický než praktický charakter (útok je teoreticky možný, ale velmi obtížný na realizaci a reprodukovatelný pouze v syntetických testech).
Společnost Intel přiřadila problému střední stupeň nebezpečnosti (5,6 z 10) a využila aktualizaci firmwaru a SDK pro prostředí SGX, ve kterých se snažila zablokovat provedení útoku alternativním způsobem. Navrhované metody útoku jsou zatím použitelné pouze pro procesory Intel, ale nelze vyloučit možnost adaptace LVI i na jiné procesory, které jsou vystaveny útokům typu Meltdown.

Problém byl identifikován v dubnu loňského roku výzkumníkem Jo Van Bulckem z Leuven University, po čemž v spolupráci s 9 dalšími výzkumníky z různých univerzit byly vyvinuty pět základních metod provádění útoků, z nichž každá umožňuje existenci specifických variant. Nezávisle v únoru tohoto roku také výzkumníci ze společnosti Bitdefender. objevili Jedna z variantů útoku LVI byla nahlášena společnosti Intel. Varianty útoků se liší použitím různých mikroarchitektonických struktur, jako jsou úložiště dat (SB, Store Buffer), vyrovnávací paměť (LFB, Line Fill Buffer), kontextová přepínací vyrovnávací paměť FPU a první úroveň vyrovnávací paměti (L1D), které byly dříve použity v takových útocích jako ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow a Meltdown.

LVI - nová třída útoků na mechanismus spekulativního vykonávání v CPU

Hlavním rozdílem LVI od útoků MDS je to, že MDS manipuluje s definicí obsahu mikroarchitektonických struktur, které zůstávají v mezipaměti po spekulativním zpracování výjimek (fault) nebo operacích načítání a ukládání, zatímco
útoky LVI umožňují vkládání údajů útočníka do mikroarchitektonických struktur, aby měly vliv na následné spekulativní vykonání kódu oběti. Pomocí těchto manipulací může útočník získat obsah uzavřených datových struktur v jiných procesech při provádění určitého kódu na cílovém jádru CPU.

LVI - nová třída útoků na mechanismus spekulativního vykonávání v CPU

Pro exploatace problému v kódu procesu-oběti musí se vyskytovat speciální sekvence kódu (gadgets), ve kterých se načítá kontrolovaná hodnota útočníka, a načtení této hodnoty vede k vzniku výjimek (fault, abort nebo assist), které vyřazují výsledek a znovu vykonávají instrukci. Při zpracování výjimky vzniká spekulativní okno, během něhož dochází k úniku dat zpracovávaných v gadgetu. Konkrétně začíná procesor vykonávat v spekulativním režimu kus kódu (gadget), poté zjistí, že predikce nebyla správná a vrátí operace do výchozího stavu, ale data zpracovaná během spekulativního vykonání zůstávají v mezipaměti L1D a mikroarchitektonických vyrovnávacích pamětech a jsou dostupná pro extrakci pomocí známých metod určení reziduálních dat prostřednictvím bočních kanálů.

Výjimka „assist“, na rozdíl od „fault“, se zpracovává uvnitř procesoru bez vyvolání softwarových obslužných rutin. Assist může vzniknout například při aktualizaci bitu A (Accessed) nebo D (Dirty) v tabulce stránkování paměti. Hlavní obtíž při provádění útoku na jiné procesy spočívá v tom, jak vyvolat vznik assist, manipulováním s cílovým procesem. V současnosti neexistují spolehlivé metody, jak to prověřit, ale v budoucnu nelze vyloučit jejich nalezení. Možnost provedení útoku byla dosud potvrzena pouze pro enclavy Intel SGX, ostatní scénáře jsou teoretické nebo reprodukovatelné v syntetických podmínkách (vyžaduje přidání určitých gadgetů do kódu)

LVI - nová třída útoků na mechanismus spekulativního vykonávání v CPU

LVI - nová třída útoků na mechanismus spekulativního vykonávání v CPU

Možné vektory útoků:

  • Únik dat ze struktur jádra do procesu na úrovni uživatele. Ochrana poskytovaná jádrem Linux proti útokům třídy Spectre 1, stejně jako mechanismus ochrany SMAP (Supervisor Mode Access Prevention), podstatně snižují pravděpodobnost útoku LVI. Dodatečná ochrana v jádře může být vyžadována při zjištění jednodušších metod provádění útoku LVI v budoucnu.
  • Únik dat mezi různými procesy. Pro provedení útoku je vyžadována přítomnost určitých fragmentů kódu v aplikaci a určení metody vyvolání výjimky v cílovém procesu.
  • Únik dat z hostitelského prostředí do hostované systému. Útok je považován za příliš složitý, vyžadující provedení různých těžko realizovatelných kroků a předpovědí aktivity v systému.
  • Únik dat mezi procesy v různých hostovaných systémech. Vektor útoku je blízký organizaci úniku dat mezi různými procesy, ale navíc vyžaduje provedení složitých manipulací k obcházení izolace mezi hostovanými systémy.

Výzkumníci publikovali několik prototypů s demonstrací principů provádění útoku, ale ty zatím nejsou vhodné pro provedení skutečných útoků. První příklad umožňuje přesměrování spekulativního vykonávání kódu v procesu-obreze podle analogy s návratem orientovaným programováním (ROP, Return-Oriented Programming). V tomto příkladu je obětí speciálně připravený proces, který obsahuje potřebné gadgety (aplikace útoku na skutečné externí procesy je obtížná). Druhý příklad umožňuje zasáhnout do výpočtů během šifrování AES uvnitř Intel SGX enclave a organizovat únik dat během spekulativního vykonávání instrukcí k obnovení hodnoty používané pro šifrování klíče.


Přehrát video

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster