Patch-uri introduse pentru a randomiza adresele stivei de kernel Linux pentru apelurile de sistem

Kees Cook, fost administrator șef de sistem al kernel.org și lider al echipei de securitate Ubuntu, care lucrează acum la Google pentru securizarea Android și ChromeOS, a publicat un set de corecții pentru a randomiza offset-urile în stiva de kernel atunci când procesează apelurile de sistem. Patch-urile îmbunătățesc securitatea nucleului prin schimbarea plasării stivei, făcând atacurile asupra stivei mult mai dificile și mai puțin reușite. Implementarea inițială acceptă procesoare ARM64 și x86/x86_64.

Ideea originală pentru patch aparține proiectului PaX RANDKSTACK. În 2019, Elena Reshetova, un inginer de la Intel, a încercat să creeze o implementare a acestei idei potrivită pentru includerea în nucleul principal Linux. Ulterior, inițiativa a fost preluată de Kees Cook, care a prezentat o implementare potrivită pentru versiunea principală a nucleului. Patch-urile sunt planificate să fie incluse ca parte a versiunii 5.13. Modul va fi dezactivat implicit. Pentru a-l activa, sunt propuse parametrul liniei de comandă kernel „randomize_kstack_offset=on/off” și setarea CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Suprafața de activare a modului este estimată la o pierdere de performanță de aproximativ 1%.

Esența protecției propuse este alegerea unui decalaj ale stivei pentru fiecare apel de sistem, ceea ce face dificilă determinarea aspectului stivei în memorie, chiar și după primirea datelor de adresă, deoarece următorul apel de sistem va schimba adresa de bază a stivei. Spre deosebire de implementarea PaX RANDKSTACK, în patch-urile propuse pentru includerea în kernel, randomizarea se realizează nu în stadiul inițial (cpu_current_top_of_stack), ci după setarea structurii pt_regs, ceea ce face imposibilă utilizarea metodelor bazate pe ptrace pentru a determina offset-ul randomizat. în timpul unui apel de sistem de lungă durată.

Sursa: opennet.ru

Adauga un comentariu