chroot 和 Linux 二进制文件的安全性

chroot 和 Linux 二进制文件的安全性

我想验证 Linux 发行版(例如 Ubuntu)中 chroot 和默认程序的安全性。

示例:我设置了 jail 目录“A”。发行版中的每个 Linux 二进制文件都放置在“A”中,并且 ACL 相同。

例如,A/usr/bin 包含所有可执行文件 /usr/bin,A/bin 包含来自 /bin 的 exe 文件,等等。

假设没有写入其他文件。

然后将不受信任的用户放入 chroot 监狱“A”并以某个随机 uid 的身份进行操作。

问题是:这个环境和未监禁的环境一样安全吗?他不可能获得 root 访问权限或越狱吗?(除非利用 Linux root 漏洞)

例如,我最初担心现在用户可以编写自己的 sudoers 文件。但幸运的是,sudo 会验证 sudoers 是否由 root 拥有。每个标准的 setuid 程序都这么小心吗?

答案1

我无法具体回答你的问题,所以如果你愿意的话,可以把我的回答调低一些。然而,在我之前和之后的许多人都会向你证实一个显而易见的事实:chroot jail 不是一种安全机制(你谈到了 Linux;BSD jail 已经足够不同了,我不是在谈论它们)。引用一位非常著名的内核黑客,Alan Cox,它们不是一种安全机制。说实话,我只看到/听到/读到过关于成功使用 chroot 进行打包构建和测试环境的文章。这就是它的闪光点。它不是一个好的安全平台,尤其是如果只是孤立的话。

如今,人们谈论的是带有 cgroups 的 Linux 容器和其他更强大的虚拟化解决方案,例如开放VZ或者Linux虚拟服务器。我并不是说它们就是明确的答案,但性能下降的影响在于主机和客户虚拟机之间有良好的隔离。我希望这对您有用。

答案2

我建议你看一下一般限制chrooting 过程以及哪些项目开放VZ限制 chroot jail 或虚拟化环境内的资源使用来回答您的“是否不可能突破”的问题。

如果您只是尝试在整个系统的副本中手动 chroot 用户,并在这里和那里修改权限并尝试使其与主系统的安全更新保持同步,那么您将不会拥有相同的安全标准。

相关内容