Windows平台是否有一个轻量级的可编程Sandbox API?

要在家中运行不可信的代码,我使用一个VMWare虚拟机。 我希望find一个用于运行不受信任的应用程序的备用轻量级沙箱API,而不需要安装VMWare或任何其他types的terminal用户虚拟化工具。 ( 编辑:我不希望它主持一个操作系统 – 我希望它运行不受信任的应用程序)。

理想情况下,沙盒将(或可以做成)透明,以便在沙箱中运行的应用程序不显示任何额外的镶边或特征。 (不要他们在Mac上的Parallels中这样做)

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

这就好比谷歌Chromenetworking浏览器如何将自己的技术包含在从互联网运行的沙盒脚本中来保护系统。 Google不需要在他们的浏览器上分发VMWare,但是他们可以实现应用程序的沙盒安全。

编辑:

寻找像Google Chrome那样的轻量级function,包含极其受限的文件/networking/ UI访问权限,低权限等function。不寻找运行/托pipe自己的操作系统。

不,那里没有。

我的意思是,你可以使用一个不同的Windows帐户(无论你认为合适的权限),但是你需要确保不受信任的应用程序无法解决这个问题。 但是你在VMWare上也遇到了同样的问题(过去有一些错误可以让你跳出来)。 最好的事情是在虚拟机中运行。

谷歌的Chrome使用4个窗口机制来实现这一点:

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

他们有详细的描述他们在做什么。

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

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

你可以考虑实施一个Windows站。 Windows站基本上是包含桌面和进程的安全边界只有一个Windows站点被允许用于控制台登录(Winsta0) http://msdn.microsoft.com/en-us/library/windows/desktop/ms682573 (v=vs 0.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​​监视器来调试Win32 API调用http://www.rohitab.com/apimonitor

心连心

您可以使用Invincea FreeSpace或免费的Sandboxie 。 不知道他们中的任何一个是否可以编写脚本。

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

在我的“沙箱”问题中,我被指向了Sandboxie 。 我没有解决我的问题,但也许这对你有趣?

我不知道它是否有一个API,但一个快速谷歌表明,至少以某种方式通过命令行自动化 。

不幸的是,对于Windows主机,您的选择是非常有限的。 但是,在Linux主机上,可以使用mbox和capsicum等选项来执行您所描述的操作 – 即轻量级应用程序级别沙盒。