皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

合并 Linux 6.10 的内存密封 “mseal “系统调用

本周五晚,Linux 6.10 内核合并了用于内存密封的新 mseal() 系统调用。

mseal 系统调用由谷歌 Chrome 浏览器团队的 Jeff Xu 领导。内存密封的目的是保护内存映射本身不被修改。新的 mseal Linux 文档解释说
“现代 CPU 支持 RW 和 NX 位等内存权限。内存权限功能提高了对内存损坏 bug 的安全立场,即攻击者不能随便写入任意内存并将代码指向它,内存必须标记 X 位,否则就会出现异常。

内存密封还能保护映射本身不被修改。这对于缓解内存损坏问题非常有用,因为损坏的指针会传递给内存管理系统。举例来说,这种攻击基元会破坏控制流完整性保证,因为本应受信任的只读内存会变成可写内存,或者 .text 页面会被重新映射。运行时加载程序可自动应用内存密封,以密封 .text 和 .rodata 页面,应用程序还可在运行时密封安全关键数据。

类似的功能在 XNU 内核的 VM_FLAGS_PERMANENT 标志和 OpenBSD 的 mimmutable syscall 中已经存在。

mseal 系统调用设计用于 GNU C 库 “glibc “加载 ELF 可执行文件时密封不可写内存段,或用于谷歌 Chrome 浏览器和其他浏览器保护安全敏感数据结构。这种新的内存密封支持还可惠及其他应用程序。

合并 Linux 6.10 的内存密封 "mseal "系统调用

内存密封系统调用最初是在去年 10 月提出的,此后经历了多次修改。最初,Linus Torvalds 对 mseal 有一些保留意见,但最终都得到了解决,现在代码已被合并到上游。通过这次合并,mseal 系统调用不久前登陆 Linux 6.10 Git。这是 Linux 6.10 的又一重大改进,合并窗口将于周日结束,合并版本为 v6.10-rc1。

转自 Memory Sealing “mseal” System Call Merged For Linux 6.10 – Phoronix