V procesorech AMD byla identifikována další zranitelnost, která umožňuje útoky Meltdown

Tým výzkumníků z Technické univerzity ve Štýrském Hradci (Rakousko) a Helmholtzova centra pro informační bezpečnost (CISPA) zveřejnil informaci o zranitelnosti (CVE-2021-26318) ve všech procesorech AMD, která umožňuje provádět Meltdown třídy. útoky postranním kanálem (původně se předpokládalo, že procesory AMD nejsou zranitelností Meltdown ovlivněny). V praxi lze útok použít k vytvoření skrytých komunikačních kanálů, sledování aktivity v jádře nebo získání informací o adresách v paměti jádra, aby se obešla ochrana KASLR a zároveň zneužily zranitelnosti v jádře.

AMD považuje za nevhodné přijímat zvláštní opatření k zablokování problému, protože zranitelnost, stejně jako podobný útok objevený v srpnu, je v reálných podmínkách málo použitelná, je omezena aktuálními hranicemi adresového prostoru procesu a vyžaduje přítomnost určitých hotové sekvence instrukcí (gadgetů) v jádře. Aby vědci útok demonstrovali, nahráli svůj vlastní modul jádra uměle přidaným gadgetem. V reálných podmínkách mohou útočníci využít například pravidelně vyskakující zranitelnosti v subsystému eBPF k nahrazení potřebných sekvencí.

K ochraně proti tomuto novému typu útoku AMD doporučilo používat techniky bezpečného kódování, které pomáhají blokovat útoky Meltdown, jako je použití instrukcí LFENCE. Vědci, kteří problém identifikovali, doporučují povolit přísnější izolaci tabulky stránek paměti (KPTI), která se dříve používala pouze pro procesory Intel.

Během experimentu se vědcům podařilo uniknout informace z jádra do procesu v uživatelském prostoru rychlostí 52 bajtů za sekundu, vzhledem k přítomnosti gadgetu v jádře, který provádí operaci „if (offset < data_len) tmp = LUT[data[offset] * 4096];” . Bylo navrženo několik metod pro získávání informací prostřednictvím postranních kanálů, které končí ve vyrovnávací paměti během spekulativního provádění. První metoda je založena na analýze odchylek v době provádění instrukce procesoru „PREFETCH“ (Prefetch+Time) a druhá na změně změny spotřeby energie při provádění „PREFETCH“ (Prefetch+Power).

Připomeňme, že klasická zranitelnost Meltdown je založena na tom, že při spekulativním provádění instrukcí může procesor přistupovat do oblasti soukromých dat a následně zahodit výsledek, jelikož nastavená oprávnění takový přístup uživatelskému procesu zakazují. V programu je spekulativně prováděný blok oddělen od hlavního kódu podmíněnou větví, která se v reálných podmínkách vždy spustí, ale vzhledem k tomu, že podmíněný příkaz používá vypočítanou hodnotu, kterou procesor při preemptivním provádění nezná kódu, všechny možnosti větve jsou prováděny spekulativně.

Protože spekulativně prováděné operace používají stejnou mezipaměť jako normálně prováděné instrukce, je možné během spekulativního provádění nastavit v mezipaměti značky, které odrážejí obsah jednotlivých bitů v oblasti soukromé paměti, a poté v normálně prováděném kódu určit jejich hodnotu pomocí časování. analytické přístupy k datům uloženým v mezipaměti a neuloženým datům.

Zdroj: opennet.ru

Přidat komentář