Otettiin käyttöön korjaustiedostoja, jotka satunnaisoivat Linux-ytimen pinon osoitteet järjestelmäkutsuja varten

Kees Cook, entinen kernel.org:n pääjärjestelmänvalvoja ja Ubuntu Security Teamin johtaja, joka työskentelee nyt Googlella Androidin ja ChromeOS:n turvaamisessa, julkaisi joukon korjaustiedostoja, joilla satunnaistetaan siirrokset ytimen pinossa järjestelmäkutsujen käsittelyn aikana. Korjaukset parantavat ytimen turvallisuutta muuttamalla pinon paikkaa, mikä tekee pinoon kohdistuvista hyökkäyksistä paljon vaikeampia ja vähemmän onnistuneita. Alkutoteutus tukee ARM64- ja x86/x86_64-suorittimia.

Korjauksen alkuperäinen idea kuuluu PaX RANDKSTACK -projektiin. Vuonna 2019 Intelin insinööri Elena Reshetova yritti luoda tästä ideasta toteutuksen, joka soveltuu sisällytettäväksi Linuxin pääytimeen. Myöhemmin aloitteen otti Kees Cook, joka esitteli ytimen pääversioon sopivan toteutuksen. Korjaukset on tarkoitus sisällyttää osana 5.13-julkaisua. Tila on oletuksena pois käytöstä. Sen käyttöön ottamiseksi ehdotetaan ytimen komentoriviparametria "randomize_kstack_offset=on/off" ja CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT-asetusta. Tilan käyttöönoton ylikuormitus on arvioitu noin 1 %:n suorituskyvyn menetykseksi.

Ehdotetun suojauksen ydin on valita kullekin järjestelmäkutsulle satunnainen pinon siirtymä, mikä vaikeuttaa pinon asettelun määrittämistä muistissa jopa osoitetietojen vastaanottamisen jälkeen, koska seuraava järjestelmäkutsu muuttaa pinon perusosoitteen. Toisin kuin PaX RANDKSTACK -toteutuksessa, ytimeen sisällytettäväksi ehdotetuissa korjauspäivityksissä satunnaistamista ei suoriteta alkuvaiheessa (cpu_current_top_of_stack), vaan pt_regs-rakenteen asettamisen jälkeen, mikä tekee mahdottomaksi käyttää ptrace-pohjaisia ​​menetelmiä satunnaistetun siirtymän määrittämiseen. pitkän järjestelmäpuhelun aikana.

Lähde: opennet.ru

Lisää kommentti