2014-11-02 94 views
2

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

在以前加载的库中是否会发生缓冲区溢出攻击提供了攻击者在chroot之外的访问? (因为它们是在加入chroot之前加载的)。

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

回答

2

共享库被加载到可执行文件的进程空间中,并且具有与可执行文件一样多的特权。只要你的可执行文件被chrooted,他们也是。

延迟的chrooting对于运行setuid/setgid的可执行文件来说并不一定是个好主意,并且由于它们在chroot之前访问的内容的种类(命令行参数,配置文件)正是那些可以被利用的东西。我想,这也适用于共享库。但是,如果你减轻了网络服务器进程的潜在漏洞,延迟的chroot为你提供两全其美的解决方案。

0

这是一个相对较远的可能性,但加载库后可能会打开文件/目录,创建线程等(source)。这意味着可能会有一些处理方法可以在chroot以外的地方使用,在发生漏洞时可能会被滥用。