Zraniteľnosť v jadre Linuxu 6.2, ktorá by mohla obísť ochranu pred útokmi Spectre v2

V linuxovom jadre 6.2 bola identifikovaná chyba zabezpečenia (CVE-2023-1998), ktorá zakazuje ochranu pred útokmi Spectre v2, ktoré umožňujú prístup k pamäti iných procesov bežiacich v rôznych vláknach SMT alebo Hyper Threading, ale na rovnakom fyzickom procesore. jadro. Zraniteľnosť okrem iného môže byť použitá na spôsobenie úniku dát medzi virtuálnymi strojmi v cloudových systémoch. Problém sa týka iba jadra Linuxu 6.2 a je spôsobený nesprávnou implementáciou optimalizácií navrhnutých na zníženie významnej réžie aplikácie ochrany Spectre v2. Zraniteľnosť bola opravená v experimentálnej vetve jadra Linuxu 6.3.

V užívateľskom priestore, na ochranu pred útokmi Spectre, môžu procesy selektívne zakázať špekulatívne vykonávanie inštrukcií pomocou prctl PR_SET_SPECULATION_CTRL alebo použiť filtrovanie systémových hovorov na základe mechanizmu seccomp. Podľa výskumníkov, ktorí identifikovali problém, nesprávna optimalizácia v jadre 6.2 zanechala virtuálne stroje aspoň jedného významného poskytovateľa cloudu bez riadnej ochrany, a to aj napriek zahrnutiu režimu blokovania útokov spectre-BTI cez prctl. Zraniteľnosť sa objavuje aj na bežných serveroch s jadrom 6.2, pri ich načítavaní sa používa nastavenie „spectre_v2=ibrs“.

Podstatou zraniteľnosti je, že pri výbere režimov ochrany IBRS alebo eIBRS zavedené optimalizácie znemožnili použitie mechanizmu STIBP (Single Thread Indirect Branch Predictors), ktorý je potrebný na blokovanie únikov pri použití technológie simultánneho multithreadingu (SMT alebo Hyper- Navliekanie). Avšak iba režim eIBRS poskytuje ochranu proti úniku medzi vláknami, ale nie režim IBRS, pretože v tomto prípade je bit IBRS, ktorý poskytuje ochranu proti únikom medzi logickými jadrami, vymazaný z dôvodov výkonu, keď sa riadenie vráti do používateľského priestoru, čo vlákna v užívateľskom priestore nie sú chránené pred útokmi Spectre v2.

Zdroj: opennet.ru

Pridať komentár