vsftp:为什么 allow_writeable_chroot=YES 是个坏主意?

vsftp:为什么 allow_writeable_chroot=YES 是个坏主意?

关于 vsftp 的博客文章有几千篇,allow_writeable_chroot=YES

常见错误信息:

修复 500 OOPS:vsftpd:拒绝在 chroot 内以可写 root 身份运行()

我在我的服务器上解决了这个问题。

但还有一个问题:

为什么建议使用allow_writeable_chroot=NO

到目前为止,我只发现诸如“出于安全原因”之类的模糊论点。

这些“安全原因”是什么?

答案1

如果具有可写权限的用户(甚至是虚拟用户)的 FTP 凭据chroot被泄露,攻击者可能会执行咆哮野兽攻击。总结一下我对这种攻击的粗略理解,它利用了某些 C 库(可能包括 FTP 服务器使用的库)会在硬编码路径/etc或其他常见位置查找它们所依赖的动态库这一事实。攻击者将这些动态库的恶意版本上传到/etc chroot,然后向(以 root 身份运行的)FTP 服务器发送命令,诱导其运行一些从 加载该动态库的代码/etc。然后攻击者的恶意代码以 root 身份运行。这将攻击从单纯破坏用户的 FTP 文件夹升级为获取整个机器的 root 权限。

拥有不可写的 chroot 会使这种攻击不可能发生(除非您,系统管理员,不明智地在 FTP 用户目录中创建了可写文件夹,名称类似于/etc和)。/libchroot

答案2

主要问题是它使点文件可写。根据您的 shell、登录设置方式、是否使用 $HOME/.ssh、正在运行哪些其他服务以及其他一些因素,这为滥用提供了更多的攻击面,主要是通过操纵用户环境变量。没有关于是什么以及为什么会发生的全面指南,因为这需要在攻击发生之前了解攻击。

长话短说,为了可用性,大多数发行版都以某种方式引用用户的主目录,并使其可写意味着这些引用可能会被操纵。

相关内容