Patcher introdusert for å randomisere Linux-kjernestabeladresser for systemanrop

Kees Cook, tidligere sjefsystemadministrator for kernel.org og leder av Ubuntu Security Team, som nå jobber hos Google med å sikre Android og ChromeOS, publiserte et sett med patcher for å randomisere forskyvninger i kjernestabelen ved behandling av systemanrop. Patcher forbedrer kjernesikkerheten ved å endre stabelplassering, noe som gjør angrep på stabelen mye vanskeligere og mindre vellykkede. Den første implementeringen støtter ARM64- og x86/x86_64-prosessorer.

Den opprinnelige ideen til oppdateringen tilhører PaX RANDKSTACK-prosjektet. I 2019 prøvde Elena Reshetova, en ingeniør fra Intel, å lage en implementering av denne ideen egnet for inkludering i hoved Linux-kjernen. Senere ble initiativet tatt opp av Kees Cook, som presenterte en implementering som passer for hovedversjonen av kjernen. Patchene er planlagt inkludert som en del av 5.13-utgivelsen. Modusen vil være deaktivert som standard. For å aktivere det, foreslås kjernekommandolinjeparameteren “randomize_kstack_offset=on/off” og CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT-innstillingen. Overheaden for å aktivere modusen er estimert til omtrent 1 % ytelsestap.

Essensen av den foreslåtte beskyttelsen er å velge en tilfeldig stabelforskyvning for hvert systemanrop, noe som gjør det vanskelig å bestemme stabeloppsettet i minnet, selv etter mottak av adressedata, siden neste systemanrop vil endre basisadressen til stabelen. I motsetning til PaX RANDKSTACK-implementeringen, i patchene som er foreslått for inkludering i kjernen, utføres randomisering ikke på det innledende stadiet (cpu_current_top_of_stack), men etter å ha satt pt_regs-strukturen, noe som gjør det umulig å bruke ptrace-baserte metoder for å bestemme den randomiserte offset under en langvarig systemsamtale.

Kilde: opennet.ru

Legg til en kommentar