Luka w jądrze Linuksa 6.2, która może ominąć ochronę przed atakami Spectre v2

W jądrze Linuksa 6.2 zidentyfikowano lukę (CVE-2023-1998), która wyłącza ochronę przed atakami Spectre v2, które umożliwiają dostęp do pamięci innych procesów działających w różnych wątkach SMT lub Hyper Threading, ale na tym samym procesorze fizycznym rdzeń. Luka może zostać wykorzystana m.in. do spowodowania wycieku danych pomiędzy maszynami wirtualnymi w systemach chmurowych. Problem dotyczy tylko jądra Linuksa 6.2 i jest spowodowany niepoprawną implementacją optymalizacji mających na celu zmniejszenie znacznych kosztów związanych ze stosowaniem ochrony Spectre v2. Luka została naprawiona w eksperymentalnej gałęzi jądra Linux 6.3.

W przestrzeni użytkownika, aby chronić się przed atakami Spectre, procesy mogą selektywnie wyłączać spekulatywne wykonywanie instrukcji za pomocą prctl PR_SET_SPECULATION_CTRL lub używać filtrowania wywołań systemowych w oparciu o mechanizm seccomp. Według badaczy, którzy zidentyfikowali problem, nieprawidłowa optymalizacja w jądrze 6.2 pozostawiła maszyny wirtualne co najmniej jednego dużego dostawcy usług w chmurze bez odpowiedniej ochrony, pomimo włączenia trybu blokowania ataków spectre-BTI przez prctl. Luka pojawia się także na zwykłych serwerach z jądrem 6.2, gdzie podczas ich ładowania wykorzystywane jest ustawienie „spectre_v2=ibrs”.

Istota podatności polega na tym, że przy wyborze trybów ochrony IBRS lub eIBRS wprowadzone optymalizacje uniemożliwiały wykorzystanie mechanizmu STIBP (Single Thread Indirect Branch Predictors), który jest niezbędny do blokowania wycieków przy korzystaniu z technologii jednoczesnej wielowątkowości (SMT lub Hyper- Gwintowanie). Jednak tylko tryb eIBRS zapewnia ochronę przed wyciekami między wątkami, ale nie tryb IBRS, ponieważ w tym przypadku bit IBRS zapewniający ochronę przed wyciekami pomiędzy rdzeniami logicznymi jest kasowany ze względów wydajnościowych, gdy sterowanie powraca do przestrzeni użytkownika, co sprawia, że wątki w przestrzeni użytkownika niechronione przed atakami Spectre v2.

Źródło: opennet.ru

Dodaj komentarz