Chyba zabezpečení v jádře Linuxu 6.2, která by mohla obejít ochranu proti útoku Spectre v2

V linuxovém jádře 6.2 byla identifikována zranitelnost (CVE-2023-1998), která deaktivuje ochranu proti útokům Spectre v2, které umožňují přístup k paměti jiných procesů běžících v různých vláknech SMT nebo Hyper Threading, ale na stejném fyzickém procesoru. jádro. Zranitelnost mimo jiné může být využita ke způsobení úniku dat mezi virtuálními stroji v cloudových systémech. Problém se týká pouze jádra Linuxu 6.2 a je způsoben nesprávnou implementací optimalizací navržených tak, aby se snížila značná režie aplikace ochrany Spectre v2. Tato chyba zabezpečení byla opravena v experimentální větvi jádra Linuxu 6.3.

V uživatelském prostoru mohou procesy k ochraně před útoky Spectre selektivně zakázat spekulativní provádění instrukcí pomocí prctl PR_SET_SPECULATION_CTRL nebo použít filtrování systémových volání na základě mechanismu seccomp. Podle výzkumníků, kteří problém identifikovali, nesprávná optimalizace v jádře 6.2 zanechala virtuální stroje alespoň jednoho velkého poskytovatele cloudu bez řádné ochrany, a to i přes zahrnutí režimu blokování útoků spectre-BTI přes prctl. Zranitelnost se objevuje i na běžných serverech s jádrem 6.2, při jejich načítání se používá nastavení „spectre_v2=ibrs“.

Podstatou zranitelnosti je, že při volbě režimů ochrany IBRS nebo eIBRS zavedené optimalizace znemožnily použití mechanismu STIBP (Single Thread Indirect Branch Predictors), který je nezbytný pro blokování úniků při použití technologie simultánního multithreadingu (SMT nebo Hyper- Navlékání). Ochranu proti úniku mezi vlákny však poskytuje pouze režim eIBRS, nikoli však režim IBRS, protože v tomto případě je bit IBRS, který poskytuje ochranu proti únikům mezi logickými jádry, vymazán z důvodu výkonu, když se řízení vrátí do uživatelského prostoru, což vlákna v uživatelském prostoru nejsou chráněna před útoky Spectre v2.

Zdroj: opennet.ru

Přidat komentář