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


12

我已经使用CentOS盒了两年了。所以我对终端非常满意。但是,我读了很多博客文章,声称chroot是不安全的,并且这些文章的数量令人恐惧。真的是这样吗 为什么?

我使用chroot在特定上下文中锁定仅SFTP用户,而根本没有任何外壳或命令。真的,那有什么安全问题?

问题从StackOverflow被放逐。


1
第一:问题尚未在Stack Overflow上关闭/迁移,但显然在那儿是OT。适当的操作是等到迁移或标记它并要求mod进行操作,而不是将其交叉发布到另一个站点上。但是第二:如果您“玩CentOS”,那么您在这里也是错误的。该站点仅适用于专业的系统管理员,不适合业余爱好者-请参阅我们的常见问题解答
斯文

2
@SvenW谢谢,我会记住您对未来的建议。关于“第二”,很抱歉,但是我看不出我的问题如何违反了FAQ。现在阅读两次之后,我可以说不是。关于“与CentOS一起玩”,我认为chroot和仅SFTP用户以及对安全性的考虑是一个非常严肃的话题,专业人员可以从其公司或任何其他组织中受益,这很明显。专业”环境。
Aleksandr Makov

1
@sven,以防您不知道,SF已从SO的迁移列表中删除,因为它们向我们发送了多少个问题。
MDMarra 2012年

Answers:


9

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

艾伦·考克斯(Alan Cox)曾以某位著名的专家谴责开发人员该开发人员提交了一个内核补丁来“修复”此行为,声称chroot已被滥用为安全设备,但从未打算成为一个安全设备。


完善!非常感谢你。因此,这是存在于根中或可从根访问的根过程的问题。谢谢。
Aleksandr Makov

我刚刚验证了它,通过在Linux 4.18 上以root身份运行unixwiz.net/techtips/mirror/chroot-break.html上显示的C程序,可以逃脱chroot。

因此,不要发放root特权。甚至常规的“安全”系统也具有root帐户。
Cees Timmerman

6

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

将Chrooted环境用于SFTP很好,并且可以显着提高安全级别。只是不要滥用它作为基于容器的虚拟化,它可以提供更高级别的安全性。在此,我强调@MDMarra的答案。


谢谢。因此,现在变得更加清楚了,chroot本身并不缺乏安全性,但是其安全性取决于设置它的环境。
亚历山大·马可夫

实际上,chroot在安全性上并不差,因为它从未打算用作安全设备。它原本是一个开发工具,用于以不同的依赖关系并排运行同一二进制文件的多个版本。它不能代替正确保护服务的方法-尽管在某些情况下(只要您了解它是什么,什么不是)就可以有所帮助。
MDMarra

MDMarra,因此从根本上来说,chroot并不旨在用于捕获SSH连接。然后,您认为“ chrooting the传入的SSH连接”对您来说听起来有点不专业,应该避免吗?
Aleksandr Makov

不,不一定,只要意识到可能导致特权提升的任何漏洞利用或在chroot中以root用户身份运行的任何进程都是微不足道的。它当然可以成为难题的一部分,但不应该是全部。
MDMarra 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.