TikTag — útok na mechanismus spekulativního vykonávání v CPU ARM, který umožňuje obejít ochranu MemTag

Skupina výzkumníků ze Soulu a společnosti Samsung vyvinula techniku útoku na procesory ARM s kódovým označením TikTag, která může být použita k obcházení hardwarového ochranného mechanismu MemTag (MTE, Memory Tagging Extension), jenž je přítomen v čipech postavených na architektuře ARMv8.5-A. Útok umožňuje určování obsahu tagů TikTag pro libovolné adresy v paměti díky únikům dat, které vznikají v důsledku spekulativního vykonávání instrukcí CPU.

Technologie MemTag umožňuje přiřazení tagů k oblastem v paměti a provádění kontroly správnosti používání ukazatelů za účelem zablokování zneužívání zranitelností způsobených přístupem k již uvolněným blokům paměti, přetečením bufferu a přístupem před inicializací. Při použití MemTag je pro každých 16 bajtů fyzické paměti vytvořen 4-bitový tag, který funguje jako klíč k přístupu k této paměti. Tag může být generován aplikací pro alokovanou oblast paměti pomocí speciálních instrukcí CPU a poté uložen do horních nepoužívaných bitů ukazatele. Při přístupu k paměti s použitím tagovaného ukazatele procesor kontroluje shodu tagu přiřazeného k ukazateli s tagy přiřazenými k blokům paměti a povoluje přístup pouze tehdy, pokud se tagy shodují.

Navrhovaná metoda útoku umožňuje určování tagů přiřazených k blokům paměti a obcházení ochrany MemTag. Výzkumníci demonstrovali, že je možné provést útok TikTag při exploitaci zranitelností v jádře Linux a prohlížeči Chrome, přičemž využívají existující sekvence instrukcí (gadgets), které vedou k spekulativnímu vykonávání kódu. Takové gadžety při vykonávání v spekulativním režimu kódu, který pracuje s ukazateli, vyvolávají čtení metadat MemTag v závislosti na externích podmínkách, na které může útočník mít vliv. Po určení chybných předpokladů je výsledek spekulativního vykonávání odmítnut, avšak získaná data zůstávají v cache a mohou být poté vytažena pomocí analýzy prostřednictvím bočních kanálů. Pravděpodobnost úspěšného obcházení ochrany MemTag v provedených testech byla odhadnuta na 95 % při provádění útoku po dobu přibližně 4 sekund.

TikTag - útok na mechanismus spekulativního vykonávání v CPU ARM, který umožňuje obejít ochranu MemTag.

Byly odhaleny dva typy gadgetů, které vedou k úniku informací o tazích MemTag. V prvním případě dochází ke spekulativnímu vykonávání v důsledku chybných predikcí skoků, přičemž podmínky pro vykonávání gadgetu mohou být vytvořeny manipulacemi se systémovými voláními. Ve druhém případě
k spekulativnímu vykonávání dochází v důsledku chyby ve predikci souvislosti mezi operacemi čtení a zápisu při používání optimalizace STLF (Store-To-Load-Forwarding), což umožňuje vybrat tag, hodnocením stavu cache (pokud se tag shoduje, hodnota bude přímo přesměrována z předchozí instrukce "store" na operaci "load" a změní stav cache). První typ gadgetů je vhodný pro útok na jádro Linuxu, zatímco druhý na JavaScriptový engine V8, který se používá v prohlížečích založených na Chromiu. Prototyp nástroje pro provedení útoku byl zveřejněn na GitHubu.

TikTag - útok na mechanismus spekulativního vykonávání v CPU ARM, který umožňuje obejít ochranu MemTag.TikTag - útok na mechanismus spekulativního vykonávání v CPU ARM, který umožňuje obejít ochranu MemTag.

Společnost ARM potvrdila možnost provedení útoku na systémech s procesory Cortex-X2, Cortex-X3, Cortex-A510, Cortex-A520, Cortex-A710, Cortex-A715 a Cortex-A720, ale nemá v úmyslu provádět změny v CPU pro zablokování problému, protože architektura MemTag předpokládá, že tagy nejsou tajnými daty pro aplikace. V kódové základně Chromu problém také zůstává neopravován, protože v prohlížeči Chrome není ochrana založená na MemTag zatím aplikována jako výchozí. Tým odpovědný za bezpečnost platformy Android přiznal možnost provedení útoku na zařízení Pixel 8, kde je aplikována ochrana MemTag, přidal opravy pro zablokování úniků a vyjádřil ochotu vyplatit odměnu za nalezenou zranitelnost.

Jako obcházející metody pro blokování útoku navrhují vědci použít instrukce sb nebo isb k zákazu spekulativního vykonávání během provádění kritických operací s pamětí nebo vkládat mezi větvicími instrukcemi a instrukcemi přístupu k paměti vyplnění z jiných instrukcí.

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