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

Linux 6.11 将收紧 /proc/[pid]/mem 访问权限以提高安全性

Linux 6.11 将收紧 /proc/[pid]/mem 访问权限以提高安全性

Microsoft 的 Linux 工程师 Christian Brauner 在 Linux 6.11 合并窗口之前为他监督的内核区域发出了各种拉取请求。Brauner 在这个周期中提出的一个更有趣的拉取请求是“vfs procfs”更新,它现在允许限制对进程的 /proc/[pid]/mem 文件的访问。

新的 SECURITY_PROC_MEM_RESTRICT_WRITES Kconfig 选项允许限制对进程的 mem 文件的写入,除非当前进程跟踪到该给定任务。

Linux 6.11 将收紧 /proc/[pid]/mem 访问权限以提高安全性

Brauner 在 Pull 请求中解释了 Collabora 的 Adrian Ratiu 的补丁:

“这包含允许限制对 /proc/<pid>/mem 的访问的工作。多年来,各种漏洞开始滥用 /proc/<pid>/mem(参见 [1] 和 [2])。具体来说,[2] 很有趣,因为它将 noexec 存储中的任意有效负载安装到正在运行的进程中,然后执行它。该有效负载本身包括一个 ELF 加载器,用于在 noexec 存储中运行任意代码。

最大的问题是 /proc/<pid>/mem 通过使用 FOLL_FORCE 忽略了页面权限,这在列表内外已经讨论过几次了。

不幸的是,有各种使用 /proc/<pid>/mem 的用例,因此无法将其关闭。它们至少包括 PTRACE_POKEDATA 和用于模拟系统调用的 seccomp 通知程序。

因此,为用户空间提供一种通过内核命令行选项限制对 /proc/<pid>/mem 的访问的方法。将它们设置为“all”会限制对所有进程的访问,而“ptracer”将允许访问 ptracer:

(1) 通过 proc_mem.restrict_foll_force
限制使用FOLL_FORCE (2) 限制打开 /proc/<pid>/mem 进行读取。
(3) 限制打开 /proc/<pid>/mem 进行写入。
(4) 限制写入 /proc/<pid>/mem。

— 细粒度管理级别不是我最喜欢的,因为它要求发行版对 FOLL_FORCE 和 /proc/<pid>/mem 访问的含义有一定程度的了解。但是,需要 /proc/<pid>/mem 访问的用例已经意味着对其含义的复杂了解。特别是当涉及到 seccomp 通知程序和 gdb 来检查或模拟进程状态时。所以这最终动摇了我接受这一点。如果我们需要更简单的东西,我会全力以赴。

一旦 v6.11 合并窗口启动,这个新的安全功能现在正在等待 Linus Torvalds 的pull,假设没有 v6.10 发布延迟,该窗口将于明天开始。

转自 Linux 6.11 To Allow Tightening Of /proc/[pid]/mem Access For Better Security – Phoronix