12

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

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

我的 Windows .NET 开发人员希望有一个 API,因此我可以为它编写脚本,而不是启动一个特殊的 GUI。

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

编辑:

寻找像谷歌浏览器这样的轻量级的东西,它包含文件/网络/UI 访问、低权限等功能。而不是寻找运行/托管自己的操作系统。

4

7 回答 7

6

Google 的 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

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

于 2011-02-02T00:46:09.693 回答
5

不,那里没有。

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

于 2010-01-07T00:06:44.840 回答
4

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

于 2010-01-07T01:56:47.163 回答
2

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

您可以考虑实现一个 Windows 站。Windows 站基本上是包含桌面和进程的安全边界 控制台登录 (Winsta0) 只允许一个 Windows 站 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

于 2014-05-29T19:39:11.333 回答
1

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

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

于 2014-01-28T01:33:10.247 回答
0

在我的一个“沙盒”问题中,我被指向Sandboxie。我根本没有解决我的问题,但也许这对你来说很有趣?

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

于 2013-01-10T09:20:11.123 回答
0

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

于 2015-09-03T21:49:18.360 回答