首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >伪造文件系统/虚拟文件系统

伪造文件系统/虚拟文件系统
EN

Stack Overflow用户
提问于 2010-03-16 14:24:40
回答 3查看 1.8K关注 0票数 4

我有一个web服务,用户可以上传在服务器上运行的python脚本。这些脚本处理服务器上的文件,我希望它们只能看到服务器文件系统的某个层次结构(best:一个临时文件夹,我在这个文件夹上复制我想要处理的文件和脚本)。

服务器最终将是基于linux的,但如果解决方案也可能在Windows上,那将是很好的知道如何。

我想到的是创建一个对FS文件夹具有受限访问权限的用户-最终只能访问包含脚本和文件的文件夹-并使用此用户启动python解释器。

有没有人能给我一个更好的选择?因为只依赖于此会让我感到不安全,我想要一个真正的沙箱或虚拟FS功能,在那里我可以安全地运行不受信任的代码。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-16 14:36:40

可以使用chroot jail或更高级别的安全机制(如SELinux )来限制对特定资源的访问。

票数 5
EN

Stack Overflow用户

发布于 2010-03-16 14:31:07

您最好使用VirtualBox或VMware之类的虚拟机(甚至可以为每个用户/会话创建一个虚拟机)。

这将允许您在一定程度上控制其他资源,如内存和网络以及磁盘

据我所知,唯一一个python内置了这样的功能是在Google App Engine上。对你来说,这也可能是一个可行的选择。

票数 3
EN

Stack Overflow用户

发布于 2010-03-17 04:14:58

这是一个本质上不安全的软件。通过允许用户上载脚本,您正在引入远程代码执行漏洞。除了修改文件之外,您还有更多需要担心的事情,什么会阻止python脚本访问网络或其他资源?

要解决此问题,您需要使用沙箱。为了更好地强化系统,您可以使用分层安全方法。

第一层,也是最重要的一层是python sandbox。用户提供的脚本将在python沙箱中执行。这将为您提供所需的细粒度限制。然后,整个python应用程序应该在它自己的专用chroot中运行。我强烈推荐使用grsecurity内核模块,它可以提高chroot的强度。例如,除非攻击者能够在内核中撕开一个洞,否则一个可靠的chroot是无法破解的,这在当今是很难做到的。确保你的内核是最新的。

最终结果是您试图限制攻击者脚本拥有的资源。层是一种经过验证的安全方法,只要层的差异足够大,相同的攻击不会破坏这两个层。您希望尽可能地将脚本与系统的其余部分隔离开来。任何共享的资源也是攻击者的路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2452488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档