在FreeBSD jail中使用allow.sysvipc有什么安全隐患

jail的手册页说, allow.sysvipc使“系统V原语[在]主机和监狱环境中共享一个命名空间…”,因此“…在监狱内的进程将能够与… …在监狱之外的进程以及其他监狱里。“

这有什么实际的安全影响? 最极端的解释意味着当使用这个选项时,在整个监狱基础设施内几乎没有有效的安全措施。 (如果进程可能干扰主机和其他监狱的其他进程并与之通信,那为什么还要打扰监狱呢?)

所以,事实certificate,这种极端的解释是正确的 。 允许sysvipc“ ……击败监狱的全部目的;来自监狱的特权用户将能够影响监禁环境以外的进程。

更新2010年8月3日:经过一些偶然的研究,我已经能够充实一些细节。 问题源于这样一个事实,即进程权限是基于UID的(请注意,这意味着数字,而不是string标识符)。 所以,尽pipe主机和监狱的用户空间是相互独立的,但是这个部门并不是铁皮的,而且根目录的UID为0,我们可以得到上面的报价。 一些选项,以尽量减less风险:

  1. 确保整个系统(主机和监狱)的所有用户具有不同的UID
  2. 为jail禁用rootlogin(不会帮助以root身份运行的进程,所以sudo技巧,但有一些比没有更好)。