Linux中的安全Python环境

时间:2009-05-20 08:50:11

标签: python linux runtime sandbox restriction

是否可以创建一个在Linux下安全运行任意Python脚本的环境?这些脚本应该是从不受信任的人那里收到的,可能太大而无法手动检查。

非常强力的解决方案是创建虚拟机并在每次启动不受信任的脚本后恢复其初始状态。 (太贵了。)

我想知道是否可以限制Python访问文件系统并与其他程序交互等等。

5 个答案:

答案 0 :(得分:4)

考虑使用chroot监狱。这不仅非常安全,受到良好支持和测试,而且还适用于您从python运行的外部应用程序。

答案 1 :(得分:4)

您可以尝试以下四种方法:

  • 正如您已经提到的,使用虚拟机或其他形式的虚拟化(也许solaris区域足够轻便?)。如果脚本在那里打破了操作系统,那么你就不在乎了。
  • 使用chroot将shell会话放入虚拟根目录,与主OS根目录分开。
  • 使用systrace。可以将其视为系统调用的防火墙。
  • 使用基于systrace构建的“jail”,为每个jail提供自己的进程表等。

Systrace最近受到了损害,所以请注意这一点。

答案 2 :(得分:2)

您可以运行jython并使用JVM中的沙盒机制。 JVM中的沙箱非常强大,非常好理解,并且或多或少地记录在案。需要一些时间来准确定义您想要允许的内容以及您想要允许的内容,但是您应该能够从中获得非常强大的安全性......

另一方面,jython与cPython不是100%兼容......

答案 3 :(得分:1)

答案 4 :(得分:1)

你能不能只是作为一个除了该目录中的脚本之外的任何东西都没有访问权限的用户运行?