要在家中运行不受信任的代码,我使用的是VMWare虚拟机。我想找到一个替代的轻量级沙箱API来运行不受信任的应用程序,而无需安装VMWare或任何其他类型的最终用户虚拟化工具。 (编辑:我不希望它托管操作系统 - 我希望它能运行不受信任的应用程序。)
理想情况下,沙箱将是(或可以制作)透明,因此在沙箱中运行的应用程序不会显示任何额外的镶边或功能。 (他们不是在Mac上的Parallels中这样做)
我的Windows .NET开发人员希望使用API,而不是启动特殊的GUI,我可以为它编写脚本。
这就像Google Chrome网络浏览器如何将自己的技术用于从Internet运行的沙箱脚本以保护系统。 Google不需要使用他们的浏览器分发VMWare,但他们实现了应用程序的沙箱安全性。
修改
寻找像Google Chrome一样轻量级的内容,其功能包括严格限制文件/网络/ UI访问,低权限等。不寻找运行/托管自己的操作系统。
答案 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)