В 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

Додати коментар або відгук