Системалык чалуулар үчүн Linux ядросунун стек даректерин рандомизациялоо үчүн киргизилген тактар

Кис Кук, kernel.org сайтынын мурдагы башкы системалык администратору жана Ubuntu коопсуздук тобунун лидери, азыр Google'да Android жана ChromeOS'тун коопсуздугун камсыздоо боюнча иштеп жаткан системалык чалууларды иштетүүдө ядро ​​стекиндеги офсеттерди рандомизациялоо үчүн патчтардын топтомун жарыялады. Патчтар стектин жайгашуусун өзгөртүү менен ядронун коопсуздугун жакшыртат, стекке чабуулдарды бир топ кыйындатат жана ийгиликсиз кылат. Алгачкы ишке ашыруу ARM64 жана x86/x86_64 процессорлорун колдойт.

Патчтын баштапкы идеясы PaX RANDKSTACK долбооруна таандык. 2019-жылы Intel компаниясынын инженери Елена Решетова бул идеяны Linuxтун негизги ядросуна киргизүүгө ылайыктуу ишке ашырууга аракет кылган. Кийинчерээк, демилгени Кис Кук көтөрүп, ядронун негизги версиясына ылайыктуу ишке ашырууну сунуштады. Патчтарды 5.13 чыгаруунун бир бөлүгү катары киргизүү пландаштырылууда. Режим демейки боюнча өчүрүлөт. Аны иштетүү үчүн, ядронун буйрук сабынын параметри “randomize_kstack_offset=on/off” жана CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT жөндөөлөрү сунушталат. Режимди иштетүүнүн кошумча чыгымы болжол менен 1% аткарууну жоготууга бааланат.

Сунушталган коргоонун маңызы ар бир системалык чалуу үчүн кокус стектин офсеттин тандоо болуп саналат, бул дарек маалыматтарын алгандан кийин да эстутумдагы стектин жайгашуусун аныктоону кыйындатат, анткени кийинки системалык чакыруу стектин базалык дарегин өзгөртөт. PaX RANDKSTACK ишке ашыруусунан айырмаланып, ядрого киргизүү үчүн сунушталган патчтарда рандомизация баштапкы этапта эмес (cpu_current_top_of_stack) эмес, pt_regs структурасын орноткондон кийин жүргүзүлөт, бул рандомизацияланган офсетти аныктоо үчүн ptrace негизиндеги ыкмаларды колдонууга мүмкүн болбой калат. узакка созулган система чалуу учурунда.

Source: opennet.ru

Комментарий кошуу