是否有适用于Windows平台的轻量级可编程Sandbox API?

时间:2010-01-06 22:21:00

标签: windows api virtual-machine sandbox

要在家中运行不受信任的代码,我使用的是VMWare虚拟机。我想找到一个替代的轻量级沙箱API来运行不受信任的应用程序,而无需安装VMWare或任何其他类型的最终用户虚拟化工具。 (编辑:我不希望它托管操作系统 - 我希望它能运行不受信任的应用程序。)

理想情况下,沙箱将是(或可以制作)透明,因此在沙箱中运行的应用程序不会显示任何额外的镶边或功能。 (他们不是在Mac上的Parallels中这样做)

我的Windows .NET开发人员希望使用API​​,而不是启动特殊的GUI,我可以为它编写脚本。

这就像Google Chrome网络浏览器如何将自己的技术用于从Internet运行的沙箱脚本以保护系统。 Google不需要使用他们的浏览器分发VMWare,但他们实现了应用程序的沙箱安全性。

修改

寻找像Google Chrome一样轻量级的内容,其功能包括严格限制文件/网络/ UI访问,低权限等。不寻找运行/托管自己的操作系统。

7 个答案:

答案 0 :(得分:6)

谷歌的Chrome正在使用4种Windows机制来实现这一目标:

A restricted token
The Windows job object
The Windows desktop object
Windows Vista only: The integrity levels

看看: https://sites.google.com/a/chromium.org/dev/developers/design-documents/sandbox

他们详细描述了他们正在做的事情。

答案 1 :(得分:5)

不,没有。

我的意思是,您可以使用不同的Windows帐户(具有您认为合适的任何权限),但是您需要对不受信任的应用程序无法摆脱这种情况感到满意。但是你确实遇到了与VMWare相同的问题(它过去曾经有过让你爆发的bug)。最好的办法是在虚拟机中运行。

答案 2 :(得分:4)

您可能也对Google的Native Client(也称为NaCl)感兴趣。这个项目旨在能够在沙箱中运行(可验证的)x86代码。

答案 3 :(得分:2)

我没有实现这个..但我的$ .02。

您可以考虑实施Windows工作站。 Windows工作站基本上是一个包含桌面和进程的安全边界 控制台登录(Winsta0)只允许一个Windows Station http://msdn.microsoft.com/en-us/library/windows/desktop/ms682573(v=vs.85).aspx

您可以基于每个站实现,处理,Windows对象和ACL隔离。 此处列出了Windows Station中使用的一些API函数: http://msdn.microsoft.com/en-us/library/windows/desktop/ms687107(v=vs.85).aspx

会话,桌面和Windows工作站概述。 http://blogs.technet.com/b/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx

这里有一个带有源代码的CodeProject示例: http://www.codeproject.com/Articles/21352/Virtual-Desktop-A-Simple-Desktop-Management-Tool

我建议使用API​​ Monitor来调试Win32 API调用 http://www.rohitab.com/apimonitor

HTH

答案 4 :(得分:1)

您可以使用Invincea FreeSpace或免费Sandboxie。不确定它们中是否有任何可编写脚本。

这些称为包含应用程序,即沙箱。您可以在此处阅读:https://www.fas.org/irp/congress/1997_hr/h970211gm.htm

答案 5 :(得分:0)

在我的“沙盒”问题中,我被指出Sandboxie。 我根本没有解决我的问题,但也许对你来说很有意思?

我不知道它是否有API但快速谷歌通过命令行表明它至少是somehow automatable

答案 6 :(得分:0)

不幸的是,对于Windows主机,您的选择非常有限。但是,在Linux主机上,可以使用mboxcapsicum等选项来执行您所描述的内容 - 即轻量级应用程序级沙盒。