OpenBSD 已採取更改以進一步保護進程內存

Theo de Raadt 在 OpenBSD 程式碼庫中添加了一系列補丁,以進一步保護使用者空間中的進程記憶體。 為開發人員提供了一個新的系統呼叫和相關的同名函式庫函數,mimmutable,它允許您在反映到記憶體(記憶體映射)時修復存取權限。 提交後,記憶體區域的權限設定(例如禁止寫入和執行)無法透過後續調用 mmap()、mprotect() 和 munmap() 函數來更改,這將在嘗試時產生 EPERM 錯誤改變。

為了控制更改物件檔案反射記憶體權限的能力,提出了一個新的可變 BSS 部分(.openbsd.mutable,可變區塊起始符號),並添加了新標誌 PF_MUTABLE 和 UVM_ET_IMMUTABLE。 新增了對連結器的支持,用於定義「openbsd.mutable」部分並將它們放置在 BSS 中的單獨區域中,與記憶體頁邊界對齊。 透過呼叫 mimmutable 函數,可以將所有鏡像區域標記為不可變,但標記為「openbsd.mutable」的部分除外。 新功能將在 OpenBSD 7.3 版本中向用戶推出。

來源: opennet.ru

添加評論