Zaprezentowano poprawki do randomizacji adresów stosu jądra Linux podczas wywołań systemowych

Kees Cook, były główny administrator systemów kernel.org i szef Ubuntu Security Team, obecnie pracujący w Google nad zabezpieczeniami Androida i ChromeOS, opublikował zestaw poprawek implementujących randomizację przesunięć stosu jądra podczas obsługi wywołań systemowych. Poprawki zwiększają bezpieczeństwo jądra poprzez zmianę rozmieszczenia stosu, co znacznie utrudnia ataki na stos i obniża ich skuteczność. Początkowa implementacja obsługuje procesory ARM64 oraz x86/x86_64.

Pierwotna idea poprawki wywodzi się z projektu PaX RANDKSTACK. W 2019 roku Elena Reshetova, inżynier z firmy Intel, podjęła próbę stworzenia implementacji tego rozwiązania, nadającej się do włączenia do głównej gałęzi jądra Linux. Później inicjatywę przejął Kees Cook i to on przedstawił implementację odpowiednią dla podstawowej wersji jądra. Planowane jest włączenie poprawek do wydania 5.13. Tryb będzie domyślnie wyłączony. Do jego włączenia przewidziano parametr wiersza poleceń jądra «randomize_kstack_offset=on/off» oraz ustawienie CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Narzut po włączeniu trybu szacowany jest na około 1% spadku wydajności.

Istota proponowanego zabezpieczenia polega na wybieraniu losowego przesunięcia stosu przy każdym wywołaniu systemowym, co utrudnia określenie układu stosu w pamięci, nawet po uzyskaniu danych o adresach, ponieważ przy kolejnym wywołaniu systemowym bazowy adres stosu się zmieni. W przeciwieństwie do implementacji PaX RANDKSTACK, w poprawkach proponowanych do włączenia do jądra randomizacja wykonywana jest nie na początkowym etapie (cpu_current_top_of_stack), lecz po ustawieniu struktury pt_regs, co uniemożliwia wykorzystanie metod opartych na ptrace do określenia zrandomizowanego przesunięcia w trakcie działania długotrwale wykonywanego wywołania systemowego.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster