对 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

添加评论