如何为不受信任的应用程序运行沙箱?

时间:2012-06-08 10:35:56

标签: java .net native sandbox

我想创建一个通过一些队列任务收到的​​Windows服务来同时运行很多控制台应用程序。另外,我想让我的服务器安全。只是因为任何人都可以将病毒上传到我的服务器并安排它运行。应用程序可以用Java,C#编写,它们也可以是纯C语言的本机应用程序。

最简单的方法是使用虚拟机来运行应用程序。但是VM获得了大量的资源来运行,事实上,对于每个VM,我将运行单独的Windows副本,这需要大量的内存和处理器资源。

第二种方法是编写文件系统minifilter内核驱动程序来控制文件系统和Windows注册表。我可以创建隔离文件夹并限制对其他文件夹的所有访问。我也可以为每个正在运行的线程和进程制定配额。但我无法控制内存,可以用来破解我的沙箱。

理想情况下,我需要一个可以在沙箱中运行应用程序的解决方案,我还需要控制这个沙箱(清理它,将新应用程序部署到其中,运行刚部署的应用程序,从沙箱复制日志文件)。

1 个答案:

答案 0 :(得分:0)

我刚刚找到解决方案。解决方案是在VirtualBox上使用ReactOS作为来宾操作系统。因为我想使用4-5台PC和每台约20个客户操作系统来创建“计算集群”,我需要拥有客户操作系统,它不会占用大量内存。 ReactOS吃大约25 Mb或RAM。和25到视频卡仿真和其他VirtualBox的东西。我将创建部署服务来部署我需要运行到ReactOS的应用程序。之后客户操作系统将收到有关部署完成的通知,并将运行已部署的应用程应用程序完成工作后,所有日志都将复制到主机,而来宾VM将回滚到快照。因此,如果有人上传病毒,其工作的所有结果将自动清除。而且我可以运行很多副本,因为ReactOS仅消耗25-30 Mb的RAM