У OpenBSD прыняты змены для дадатковай абароны памяці працэсаў

Тэа дэ Раадт (Theo de Raadt) дадаў у кодавую базу OpenBSD серыю патчаў для дадатковай абароны памяці працэсаў у прасторы карыстача. Распрацоўнікам прапанаваны новы сістэмны выклік і звязаная з ім аднайменная бібліятэчная функцыя mimmutable, якая дазваляе зафіксаваць правы доступу пры адлюстраванні ў памяць (memory mappings). Пасля фіксацыі, выстаўленыя для вобласці памяці права, напрыклад, забарона на запіс і выкананне, немагчыма ў далейшым змяніць праз наступныя выклікі функцый mmap(), mprotect() і munmap(), якія пры спробе змены будуць выдаваць памылку EPERM.

Для кіравання магчымасцю мяняць правы адлюстраванай памяці для аб'ектных файлаў прапанавана новая секцыя Mutable BSS (.openbsd.mutable, Mutable Block Starting Symbol), а таксама дададзены новыя сцягі PF_MUTABLE і UVM_ET_IMMUTABLE. У кампаноўнік дададзеная падтрымка азначэння секцый «openbsd.mutable» і размяшчэнні іх у асобную вобласць у BSS, выраўнаваную па мяжы старонкі памяці. Праз выклік функцыі mimmutable падаецца магчымасць пазнакі ўсіх адлюстраваных абласцей як нязменных (immutable), за выключэннем секцый, адзначаных як "openbsd.mutable". Новая магчымасць будзе даведзена да карыстальнікаў у выпуску OpenBSD 7.3.

Крыніца: opennet.ru

Дадаць каментар