Uvedene su zakrpe za nasumično podešavanje adresa stogova jezgra Linuxa za sistemske pozive

Kees Cook, bivši glavni sistem administrator kernel.org i vođa Ubuntu sigurnosnog tima, koji sada radi u Google-u na osiguravanju Androida i ChromeOS-a, objavio je set zakrpa za nasumično podešavanje odstupanja u kernel steku prilikom obrade sistemskih poziva. Zakrpe poboljšavaju sigurnost kernela promjenom položaja steka, čineći napade na stek mnogo težim i manje uspješnim. Početna implementacija podržava ARM64 i x86/x86_64 procesore.

Originalna ideja za zakrpu pripada PaX RANDKSTACK projektu. U 2019. godini, Elena Reshetova, inženjerka iz Intela, pokušala je da stvori implementaciju ove ideje pogodne za uključivanje u glavni Linux kernel. Kasnije je inicijativu preuzeo Kees Cook, koji je predstavio implementaciju prikladnu za glavnu verziju kernela. Planirano je da zakrpe budu uključene kao dio izdanja 5.13. Režim će po defaultu biti onemogućen. Da biste to omogućili, predloženi su parametar komandne linije kernela “randomize_kstack_offset=on/off” i postavka CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Troškovi omogućavanja načina rada procjenjuju se na približno 1% gubitka performansi.

Suština predložene zaštite je u odabiru slučajnog pomaka steka za svaki sistemski poziv, što otežava određivanje rasporeda steka u memoriji, čak i nakon prijema adresnih podataka, jer će sljedeći sistemski poziv promijeniti osnovnu adresu steka. Za razliku od PaX RANDKSTACK implementacije, u zakrpama predloženim za uključivanje u kernel, randomizacija se ne vrši u početnoj fazi (cpu_current_top_of_stack), već nakon postavljanja strukture pt_regs, što onemogućava korištenje metoda zasnovanih na ptrace za određivanje randomiziranog pomaka tokom dugotrajnog sistemskog poziva.

izvor: opennet.ru

Dodajte komentar