Kasper, skener problémů se spekulativním vykonáváním kódu v jádře Linux, je k dispozici

Skupina výzkumníků z Amsterdamské svobodné univerzity publikovala nástroj Kasper, který je určen k odhalování v jádře Linux útržků kódu, které mohou být použity k exploitaci zranitelností třídy Spectre, způsobených spekulativním vykonáváním kódu procesorem. Zdroje nástroje jsou distribuovány pod licencí Apache 2.0.

Připomeňme, že pro provádění takových útoků, jako je Spectre v1, které umožňují zjistit obsah paměti, je vyžadována přítomnost určité sekvence příkazů (gadgets) v privilegovaném kódu, která vede k spekulativnímu vykonávání instrukcí. Za účelem optimalizace začíná procesor vykonávat podobné gadgets v spekulativním režimu, poté zjistí, že předpověď větvení byla neúspěšná, a vrací operace do původního stavu, ale data zpracovaná během spekulativního vykonávání zůstávají v cache a mikroarchitektonických bufferech a jsou dostupná pro extrakci pomocí různých metod určení zbytkových dat prostřednictvím bočních kanálů.

Dříve dostupné nástroje pro skenování gadgets pro zranitelnost Spectre, založené na hledání typových šablon, vykazovaly velmi vysokou úroveň falešných pozitiv, přičemž přitom mnohé skutečné gadgets zůstaly přehlédnuty (experimenty ukázaly, že 99 % odhalených takovými nástroji gadgets nemohlo být použito k útokům a 33 % pracovních gadgets, které mohly vést k útoku, nebylo zaznamenáno).

Aby se zvýšila kvalita určování problematických gadgets, Kasper modeluje zranitelnosti, které útočník může využít v každém kroku provádění útoků třídy Spectre — modelovány jsou problémy, které umožňují kontrolovat data (například vkládání dat útočníka do mikroarchitektonických struktur k ovlivnění následného spekulativního vykonávání prostřednictvím útoků třídy LVI), získat přístup k důvěrným informacím (například při přetečení bufferu nebo používání paměti po jejím uvolnění) a organizovat únik důvěrných informací (například analýzou stavu procesorové cache nebo využitím metody MDS).

Kasper, skener problémů se spekulativním vykonáváním kódu v jádře Linux, je k dispozici

Při testování se jádro spojuje s runtime knihovnami Kasper a kontrolami, které fungují na úrovni LLVM. V rámci kontroly dochází k emulaci spekulativního vykonávání kódu, realizované pomocí mechanismu checkpoint-restore, který speciálně vykonává nesprávně předpovězenou větev kódu a poté se vrací do výchozího stavu před větvením. Kasper se také snaží modelovat různé softwarové a hardwarové zranitelnosti, analýzou dopadů architektonických a mikroarchitektonických efektů, a provádí fuzzingové testování možných útoků. Pro analýzu toků vykonávání se používá port DataFlowSanitizer pro jádro Linuxu, a pro fuzzingové testování modifikovaná verze balíčku syzkaller.

Kasper, skener problémů se spekulativním vykonáváním kódu v jádře Linux, je k dispozici

Během skenování jádra Linux pomocí Kasperu bylo odhaleno 1379 dosud neznámých gadgetů, které potenciálně vedou k úniku dat během spekulativního vykonávání instrukcí. Je poznamenáno, že jen část z nich může představovat skutečné problémy, ale pro demonstraci toho, že existuje skutečné nebezpečí, a ne jen teoretické, byl vyvinut funkční prototyp exploit pro jeden z problematických fragmentů kódu, který vede k úniku informací z paměti jádra.

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