Kees Cook, kernel.org endine süsteemiadministraator ja juht Ubuntu Turvameeskond töötab nüüd Google'is turvalisuse tagamise nimel Android ja ChromeOS on avaldanud komplekti parandusi, mis rakendavad kerneli pinu nihke randomiseerimist süsteemikõnede käsitlemisel. Paigad parandavad kerneli turvalisust, muutes pinu paigutust, muutes pinu rünnakud oluliselt raskemaks ja vähem edukaks. Esialgne implementatsioon toetab ARM64 ja x86/x86_64 protsessoreid.
Paranduse algne idee pärines PaX RANDKSTACK projektist. 2019. aastal üritas Inteli insener Elena Reshetova luua selle idee teostuse, mis sobiks põhikerneli lisamiseks. LinuxHiljem haaras algatuse üle Keith Cook, kes esitles kerneli põhiversioonile sobivat implementatsiooni. 5.13 versioonis on plaanis lisada paigutusi. Režiim on vaikimisi keelatud. Selle lubamiseks pakutakse kerneli käsurea parameetrit "randomize_kstack_offset=on/off" ja CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT sätet. Režiimi lubamise üldkuludeks hinnatakse ligikaudu 1% jõudluse langust.
Pakutud kaitse olemus seisneb pinu nihke randomiseerimises iga süsteemikõne puhul, mis raskendab pinu paigutuse määramist mälus isegi pärast aadressiandmete hankimist, kuna pinu baasaadress muutub järgmise süsteemikõnega. Erinevalt PaX RANDKSTACK implementatsioonist teostavad kerneli kaasamiseks kavandatud plaastrid randomiseerimist mitte algstaadiumis (cpu_current_top_of_stack), vaid pärast pt_regs struktuuri määramist. See muudab võimatuks ptrace-põhiste meetodite kasutamise randomiseeritud nihke määramiseks pika süsteemikõne ajal.
Allikas: opennet.ru
