chroot 用于执行不安全的程序

chroot 用于执行不安全的程序

我之前从未设置过 chroot-jailed 环境,恐怕我需要一些帮助才能做好这件事。

简单解释一下这到底是怎么回事:我有一个 Web 服务器,用户向其发送 Python 脚本来处理存储在服务器上的各种文件(该系统用于研究目的)。每天,cron 作业都会通过以下命令开始执行上传的脚本:

/usr/bin/python script_file.py

所有这些都是非常不安全的,我想创建一个监狱,在其中复制必要的文件(上传的脚本、要处理的文件、python 二进制文件和依赖项)。

我已经研究过各种创建 jail 的实用程序,但它们似乎都不是最新的,或者缺乏可靠的文档(即在我如何运行不受信任的 Python 脚本

有人可以指导我找到一个可行的解决方案吗?比如创建一个监狱、在其中放入一些文件并执行 python 脚本的工作示例?

非常感谢。

答案1

您需要 debootstrapchroot,请查看有关设置 chroot 的说明:https://wiki.kubuntu.org/DebootstrapChroot

答案2

您需要在 chroot 中安装相当多的库,但这不会阻止某人安装套接字服务器。由于您需要允许 Python 脚本运行,这意味着可以完全访问标准 Python 模块,如套接字等。我真的不明白您能用那个 chroot 保护什么?

如果用户可以创建套接字服务器,他将能够在该 chroot 中连接并访问/修改任何内容。

即使像这样的简单脚本也os.system('rm -rf /')无法被阻止,并且会导致您的监狱无法使用。

一种可能的解决方案是使用类似知世,可以配置为阻止基于内核原语(打开、写入等)的访问。

相关内容