Kees Cook, tidligere hovedadministrator for kernel.org og leder af Ubuntu Security Team, som i dag arbejder hos Google med at sikre Android og ChromeOS, har offentliggjort et sæt patches til implementering af randomisering af stakforskyvninger i kernen ved behandling af systemanrop. Patches øger sikkerheden i kernen ved at ændre placeringen af stakken, hvilket gør angreb på stakken væsentligt mere komplekse og mindre succesfulde. Den indledende implementering understøtter ARM64- og x86/x86_64-processorer.
Den oprindelige idé til patchen tilhører PaX RANDKSTACK-projektet. I 2019 forsøgte Elena Reshetova, ingeniør fra Intel, at lave en implementering af denne idé, der kunne inkluderes i den hovedkernen i Linux. Senere overtog Kees Cook initiativet og præsenterede en implementering, der er egnet til hovedversionen af kernen. Patches planlægges at blive inkluderet i udgivelsen 5.13. Tilstanden vil være deaktiveret som standard. For at aktivere den foreslås kernel-kommandolinjeparameteren "randomize_kstack_offset=on/off" og indstillingen CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Omkostningerne ved at aktivere tilstanden vurderes til cirka 1% tab af ydeevne.
Essensen af den foreslåede beskyttelse ligger i at vælge en tilfældig stakforskyvning ved hvert systemanrop, hvilket komplicerer bestemmelsen af stakens layout i hukommelsen, selv når adresserne er blevet afsløret, da den grundlæggende stakadresse ændres ved næste systemanrop. I modsætning til implementeringen af PaX RANDKSTACK, hvor randomiseringen udføres i det indledende stadium (cpu_current_top_of_stack), udføres randomiseringen i de foreslåede patches efter opstillingen af strukturen pt_regs, hvilket gør det umuligt at bruge ptrace-baserede metoder til at bestemme den randomiserede forskydning under udførelsen af langvarige systemanrop.
Kilde: opennet.ru
