Patches introduceret for at randomisere Linux-kernestakadresser til systemkald

Kees Cook, tidligere chefsystemadministrator for kernel.org og leder af Ubuntu Security Team, der nu arbejder hos Google med at sikre Android og ChromeOS, udgav et sæt patches til at randomisere forskydninger i kernestakken, når systemkaldene behandles. Patches forbedrer kernesikkerheden ved at ændre stakkens placering, hvilket gør angreb på stakken meget vanskeligere og mindre vellykkede. Den indledende implementering understøtter ARM64- og x86/x86_64-processorer.

Den originale idé til patchen tilhører PaX RANDKSTACK-projektet. I 2019 forsøgte Elena Reshetova, en ingeniør fra Intel, at skabe en implementering af denne idé, der var egnet til inklusion i Linux-hovedkernen. Senere blev initiativet taget op af Kees Cook, som præsenterede en implementering, der passer til hovedversionen af ​​kernen. Patcherne er planlagt til at blive inkluderet som en del af 5.13-udgivelsen. Tilstanden vil være deaktiveret som standard. For at aktivere det, foreslås kernekommandolinjeparameteren "randomize_kstack_offset=on/off" og indstillingen CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Omkostningerne ved at aktivere tilstanden anslås til ca. 1 % ydeevnetab.

Essensen af ​​den foreslåede beskyttelse er at vælge en tilfældig stak offset for hvert systemkald, hvilket gør det vanskeligt at bestemme staklayoutet i hukommelsen, selv efter at have modtaget adressedata, da det næste systemkald vil ændre stakkens basisadresse. I modsætning til PaX RANDKSTACK-implementeringen udføres randomisering i de patches, der foreslås til inklusion i kernen, ikke på det indledende stadium (cpu_current_top_of_stack), men efter indstilling af pt_regs-strukturen, hvilket gør det umuligt at bruge ptrace-baserede metoder til at bestemme den randomiserede offset under et længerevarende systemopkald.

Kilde: opennet.ru

Tilføj en kommentar