Patchar infördes för att randomisera Linux-kärnstackadresser för systemanrop

Kees Cook, tidigare chefssystemadministratör för kernel.org och ledare för Ubuntu Security Team, som nu arbetar på Google med att säkra Android och ChromeOS, publicerade en uppsättning patchar för att randomisera förskjutningar i kärnstacken vid bearbetning av systemanrop. Patchar förbättrar kärnsäkerheten genom att ändra stackens placering, vilket gör attacker mot stacken mycket svårare och mindre framgångsrika. Den initiala implementeringen stöder ARM64- och x86/x86_64-processorer.

Den ursprungliga idén för patchen tillhör PaX RANDKSTACK-projektet. Under 2019 försökte Elena Reshetova, en ingenjör från Intel, skapa en implementering av denna idé lämplig för inkludering i Linux-huvudkärnan. Senare togs initiativet upp av Kees Cook, som presenterade en implementering lämplig för huvudversionen av kärnan. Patcharna är planerade att inkluderas som en del av 5.13-utgåvan. Läget kommer att vara inaktiverat som standard. För att aktivera det, föreslås kärnans kommandoradsparameter "randomize_kstack_offset=on/off" och CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT-inställningen. Omkostnaderna för att aktivera läget uppskattas till cirka 1 % prestandaförlust.

Kärnan i det föreslagna skyddet är att välja en slumpmässig stackoffset för varje systemanrop, vilket gör det svårt att bestämma stacklayouten i minnet, även efter att ha mottagit adressdata, eftersom nästa systemanrop kommer att ändra stackens basadress. Till skillnad från PaX RANDKSTACK-implementeringen, i de patchar som föreslås för inkludering i kärnan, utförs randomisering inte i det inledande skedet (cpu_current_top_of_stack), utan efter inställning av pt_regs-strukturen, vilket gör det omöjligt att använda ptrace-baserade metoder för att bestämma den randomiserade offset under ett långvarigt systemsamtal.

Källa: opennet.ru

Lägg en kommentar