为什么 chroot 被认为是不安全的?

为什么 chroot 被认为是不安全的?

我已经玩 CentOS 系统好几年了。所以我对终端很熟悉。但是,我读了很多博客文章,声称 chroot 不安全,这些帖子的数量令人恐惧。真的是这样吗?为什么?

我使用 chroot 将仅使用 SFTP 的用户锁定在特定上下文中,无需任何 shell 或命令。那么,这样做到底有什么安全问题呢?

问题被放逐堆栈溢出

答案1

因为在大多数情况下,root 进程可以轻松退出 chroot。这是设计使然,因为 chroot 从未打算用作安全设备。

艾伦·考克斯曾严厉斥责一名开发商提交了一个内核补丁来“修复”此行为,声称 chroot 已被滥用为安全设备,但从来就不是这样的设备。

答案2

我知道至少有一个它被认为不安全的例子。chroot 环境/proc不是隔离的,因此很容易访问 chroot 中启动的进程所不拥有的资源。

使用 chrooted 环境进行 SFTP 是可以的,并且可以显著提高安全级别。只是不要滥用它作为基于容器的虚拟化,它确实提供了更多级别的安全性。在此,我强调了 @MDMarra 的回答中的内容。

答案3

每当攻击者在 chroot 环境中获得超级用户访问权限时,都有不同的方法可以逃脱。一种方法是基于以下事实:并非所有文件描述符都已关闭调用 chroot() 时。可以编写一个简单的 C 程序来利用这一事实。存在比 chroot 更严格的解决方案,例如虚拟化。但是,chroot 提供了一种简单直接的方式来限制进程及其能力。

相关内容