Linux 5.13: n monista uusista ominaisuuksista yksi merkittävimmistä suojausominaisuuksista on kyky satunnaistaa ytimen pinopoikkeama jokaisessa järjestelmäkutsussa. Kun Linux 5.13 on vakaa, tässä on joitain suorituskyvyn vertailuarvoja tämän suojausominaisuuden käyttöönoton vaikutuksista.
Linux 5.13 pystyy satunnaistamaan ytimen pinopoikkeama järjestelmäkutsua kohti , jotta hyökkääjien olisi vaikeampaa saavuttaa pinoihin perustuvia hyökkäyksiä ytimeen niille hyökkäyksille, jotka luottavat pinon determinismiin. Tämä päälinjan ytimen ominaisuus on saanut inspiraation PaX: n olemassa olevasta”RANDKSTACK”-palvelusta, kun tosiasiallinen toteutus eroaa.
Alun perin tuettujen arkkitehtuurien x86/x86_64/AArch64 avulla mahdollisuus satunnaistaa jokaisen syscall-ytimen pino-offset voidaan määrittää randomize_kstack_offset=-käynnistysparametrilla. Oletusarvon voivat määrittää jakelupalveluntarjoajat ja muut ytimenrakentajat CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT Kconfig-asetuksella.
Satunnainen_kstack_offset-järjestelmän puheluiden suorituskyvyn yleinen synteettinen vertailuarvo on noin 1%. Viime päivinä olen käyttänyt kymmeniä vertailuarvoja Lenovo-kannettavalla tietokoneella, jossa on Ryzen 5 5500U-prosessori, tarkastelemalla synteettisiä ja tosielämän suorituskykykustannuksia, jotka aiheutuvat siitä, että randomize_kstack_offset otetaan käyttöön ja poistetaan käytöstä melkein lopullisen Linux 5.13-ydinrakenteen avulla.
Peruskokeen ctx_clock testi syklien lukumäärän mittaamiseksi kontekstikytkimen suorittamiseksi näki kaikkien suoritettujen vertailuarvojen suurimman vaikutuksen… Myönnetty, vain 20 sykliä ja huomattavasti pienempi suhteellinen vaikutus kontekstinvaihtotehoon kuin mitä’Olemme huomanneet tietyt turvallisuuden lieventämiset.
Todellisista testatuista kuormituksista Redis koki suurimman vaikutuksen, joka oli noin 2% hitaampi, kun ytimen pino-offset-satunnaistaminen järjestelmäkutsua kohden oli käytössä.
Satunnaisilla muilla synteettisillä ja reaalimaailman vertailuarvoilla randomize_kstack_offset-arvo oli 1% tai vähemmän, eikä monissa tapauksissa mitattavissa olevaa eroa.
Joten niille, jotka ovat huolissaan järjestelmän turvallisuudesta, suorituskyky ei näytä olevan lainkaan liian suuri, kun suoritetaan randomize_kstack_offset=1 : n kanssa vaatimattomalla Ryzen 5-kannettavalla. Tämä kiihdyttää muiden testien aikaisempia testejä ja 1%: n tai vähemmän yleiskustannuksia tuotantoketjussa.