理论教育 使用Chroot监狱提升应用安全

使用Chroot监狱提升应用安全

时间:2023-11-24 理论教育 版权反馈
【摘要】:Chroot监狱将限制服务看到整个文件系统,使其只能看到指定的部分。它是通过使用Chroot系统调用实现的。因此,Chroot监狱技术有助于限制某个被攻破或被劫持的服务带来的负面影响。另外,如果Chroot监狱内的程序遇到了问题,也是很难解决的。即使某个应用明确支持这个功能,它在Chroot监狱内运行时也可能表现出莫名其妙的行为。尽管如此,将网络服务关进Chroot监狱的优点远多于缺点。

使用Chroot监狱提升应用安全

一些网络服务并不需要访问整个文件系统,它们只需要访问有限的数据文件和目录就可以正常运作。FTP是此类服务的一个常见例子。FTP提供了在特定目录下载和上传文件的功能。如果这个服务能够访问整个文件系统,那么,一旦它被攻破,攻击者就有可能访问和破坏其他目录中的数据。Unix和Linux系统提供了一种让此类服务运行在Chroot监狱(Chroot Jail)中的机制。Chroot监狱将限制服务看到整个文件系统,使其只能看到指定的部分。它是通过使用Chroot系统调用实现的。Chroot系统调用通过将文件系统的根目录“/”映射到其他目录(如/srv/ftp/public),将一个进程对文件的访问限制在文件系统的某个子集中。对于被限制的服务而言,Chroot监狱中的所有文件都像位于真实的根目录中一样(如实际的目录/srv/ftp/public/ etc/myconfigfile在Chroot监狱中表现为/etc/myconfigfile),而位于Chroot监狱之外的目录(如/srv/www或/etc)中的文件是根本不可见且无法访问的。

因此,Chroot监狱技术有助于限制某个被攻破或被劫持的服务带来的负面影响。这种技术的主要缺点是增加了复杂性:许多文件(包括服务器使用的所有可执行库)、目录和需要设备都必须复制到Chroot监狱中。虽然有许多详细的指南描述了如何将各种程序“关进监狱”,但是,决定需要将什么东西放入监狱从而可以让服务器工作得更好,依然是件麻烦事。(www.daowen.com)

另外,如果Chroot监狱内的程序遇到了问题,也是很难解决的。即使某个应用明确支持这个功能,它在Chroot监狱内运行时也可能表现出莫名其妙的行为。还有一点需要注意是,如果关进Chroot监狱中进程是以超级用户的身份运行的,那么它能毫不费力地越狱。尽管如此,将网络服务关进Chroot监狱的优点远多于缺点。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈