Kees Cook, endine kernel.org peamine süsteemiadministraator ja Ubuntu turvameeskonna juht, kes praegu töötab Google'is Androidi ja ChromeOSi kaitse nimel, avaldas komplekti patšše, mis rakendab kuhjade segamist tuumastiku süsteemikutsumise töötlemisel. Patšod suurendavad tuuma turvalisust, muutes kuhja asukohta, mistõttu on kuhjakutsed märkimisväärselt keerulisemad ja vähem edukad. Esialgne rakendus toetab ARM64 ja x86/x86_64 protsessoreid.
Patši algne idee kuulub PaX RANDKSTACK projekti. 2019. aastal proovis Intel'i insener Jelena Reshetova luua rakendust, mis sobiks Linuxi tuuma põhikoosseisu. Hiljem võttis Kees Cook algatuse üle ja esitas rakenduse, mis sobib peamise tuuma variandi jaoks. Patšod kavatsetakse lisada versiooni 5.13 väljalaskesse. Režiim on vaikimisi keelatud. Selle lubamiseks on ette nähtud tuuma käsklus 'randomize_kstack_offset=on/off' ja seade CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Režiimi lubamisega seotud kulud on ligikaudu 1% jõudluse kaotus.
Pakutud kaitse tuum seisneb kuhja juhuslikus nihkes iga süsteemikutsumise puhul, mis raskendab kuhja jaotuse määramist mälus, isegi kui on saadud aadresside andmed, kuna järgmise süsteemikutsumise korral muutub kuhja põhja aadress. Erinevalt PaX RANDKSTACK rakendustest toimub pakkumistes, mis on mõeldud tuumasse lisamiseks, segamist mitte algstaadiumis (cpu_current_top_of_stack), vaid pärast pt_regs struktuuri seadistamist, mis muudab ptrace meetodite kasutamise võimatuks, et määrata jooksva süsteemikutsumise raames segatud nihke aadress.
Allikas: opennet.ru
