在 FreeBSD jail 中使用 allow.sysvipc 有哪些安全隐患

在 FreeBSD jail 中使用 allow.sysvipc 有哪些安全隐患

手册页jail说,这allow.sysvipc使得“System V 原语能够在主机和监狱环境中共享单个命名空间...”,因此“...监狱内的进程将能够与监狱外以及其他监狱内的进程进行通信”。

这会带来哪些实际的安全隐患?最极端的解释是,使用此选项时,整个监狱基础设施内几乎没有有效的安全性。(如果进程可以干扰并与主机上的其他进程和其他监狱进行通信,那么为什么还要费心使用监狱呢?)

答案1

因此,极端的解释是正确的. 允许 sysvipc "... 破坏了设立监狱的整个目的;监狱中的特权用户将能够影响监狱环境之外的进程。

2010 年 8 月 3 日更新:经过一些偶然的研究,我终于能够充实一些细节。问题源于进程权限基于 UID(请注意,这意味着数字,而不是字符串标识符)。因此,即使主机和监狱的用户空间是相互独立的,这种划分也不是铁板一块,而且考虑到 root 的 UID 为 0,我们得到了上面的引文。一些选项可以最大限度地降低风险:

  1. 确保整个系统(主机和 jail)中的所有用户都有不同的 UID
  2. 禁用 jail 的 root 登录(对于以 root 身份运行的进程没有帮助,所以需要 sudo 技巧,但有总比没有好。)

相关内容