【问题标题】:Using chroot() after loading shared libraries?加载共享库后使用 chroot()?
【发布时间】:2014-11-02 14:27:10
【问题描述】:

为了避免将所有共享库和配置文件复制到 chroot 文件夹中,我计划在所有共享库和配置文件加载完毕后立即调用chroot("path/to/folder");

先前加载的库中的缓冲区溢出漏洞是否会为攻击者提供 chroot 之外的访问权限? (因为它们是在 chrooting 之前加载的。)

与程序执行前的 chroot 相比,这种延迟 chroot 方法有什么缺点吗?

【问题讨论】:

    标签: linux shared-libraries chroot


    【解决方案1】:

    共享库被加载到可执行文件的进程空间中,并拥有与可执行文件一样多的权限。一旦您的可执行文件被 chroot,它们也是如此。

    延迟 chrooting 对于运行 setuid/setgid 的可执行文件不一定是一个好主意,并且旨在加强对本地攻击的攻击,因为它们在 chroot 之前访问的各种东西(命令行参数、配置文件)正是可以利用的东西。我想这也适用于共享库。但是,如果您想减轻网络服务器进程的潜在漏洞,延迟 chroot 可为您提供两全其美的选择。

    【讨论】:

      【解决方案2】:

      这是一种相对遥远的可能性,但是您加载的库可能会在您加载它们后立即打开文件/目录、创建线程等 (source)。这意味着可能存在对chroot 之外的事物开放的句柄,这些句柄可能会在被利用时被滥用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-10
        • 1970-01-01
        • 2014-03-04
        • 2019-04-17
        • 1970-01-01
        • 2015-03-02
        • 2012-07-25
        相关资源
        最近更新 更多