2010-01-06 34 views
11

要在家中運行不受信任的代碼,我使用VMWare虛擬機。我想找到一個用於運行不受信任應用程序的備用輕量級沙箱API,而不需要安裝VMWare或任何其他類型的終端用戶虛擬化工具。 (編輯:我不希望它託管操作系統 - 我希望它運行不受信任的應用程序)。是否有適用於Windows平臺的輕量級可編程Sandbox API?

理想情況下,沙箱將會(或可以被製作)透明,以便在沙箱中運行的應用程序不顯示任何額外的鑲邊或特徵。 (難道他們不是在Mac上的Parallels中這樣做的)

我的Windows .NET開發人員希望有一個API,所以不用啓動特殊的GUI,我可以爲它編寫腳本。

這就好比Google Chrome網絡瀏覽器如何將自己的技術包含在沙箱中,以便從Internet運行以保護系統。 Google不需要在他們的瀏覽器上分發VMWare,但他們可以實現應用程序的沙盒安全。

編輯:

尋找輕量級的東西像谷歌Chrome瀏覽器包含了像極大地制約了文件/網絡/ UI訪問,低權限等功能,不找運行/託管自己的操作系統。

+0

....你在這裏尋找什麼樣的沙箱?完全獨立,在自己的操作系統上運行等等?或者,受到很大限制的文件/網絡/ UI訪問?有很多方法可以採取這個問題,答案差異很大。 – 2010-01-06 23:47:30

+0

@凱文:好的問題,謝謝,我通過編輯進行了澄清。 – 2010-01-07 00:03:52

+0

您可以嘗試編寫Google Chrome沙盒的前端。 http://dev.chromium.org/developers/design-documents/sandbox – hwiechers 2012-10-04 04:57:37

回答

5

不,沒有。

我的意思是,你可以使用一個不同的Windows帳戶(無論你認爲合適的權限),但是你需要確保不受信任的應用程序無法解決這個問題。但是你在VMWare上也遇到了同樣的問題(它在過去有過漏洞可以讓你分手)。最好的事情是在虛擬機中運行。

+3

柔滑是100%正確的。我也不確定是否有可能建立一個「輕量級可編程沙箱API」 - 我知道每個現有的沙箱實現都是一個非常複雜的野獸(包括AppArmor和SeLinux)。恕我直言,如果你是偏執狂,虛擬機是要走的路 - 絲毫說有虛擬機繞過問題,但使用虛擬機比不使用虛擬機更安全。 – 2010-01-07 00:56:06

+0

哇,沒有比自己等人的確認好得多:) – 2010-01-07 01:08:18

+0

@silky:同意 - 這是什麼讓這真棒的一部分。專家和平民(指自己:)在編程方面混在一起。 – 2010-01-07 02:20:20

3

您可能也有興趣谷歌的Native Client(也被稱爲氯化鈉)。這是一個旨在能夠在沙箱內運行(可驗證)x86代碼的項目。

+0

它似乎只能通過瀏覽器插件在網絡上運行x86。儘管如此,仍然非常有趣。 – 2010-01-07 02:16:37

6

谷歌的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

他們有他們在做什麼的詳細描述。

+0

良好的資源。謝謝! – 2012-03-08 19:20:12

+0

更新後的鏈接:https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md – Miscreant 2017-07-12 21:48:02

0

在我的「沙盒」問題中,我被指出Sandboxie。 我並沒有解決我的問題,但也許這對你很有趣?

我不知道它是否有一個API,但快速谷歌指示它至少通過命令行somehow automatable

2

我沒有實現這個..但是我的$ .02。

您可以考慮實施Windows工作站。一個窗口站基本上是一個安全邊界包含臺式機和處理 只有一個Windows站被允許進行控制檯登錄(Winsta0) 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​​監控調試Win32 API調用 http://www.rohitab.com/apimonitor

心連心

+0

呃!拉里奧斯特曼在這個主題上回答。我不知何故錯過了他的評論。) 如果他說不,我猜測答案是否定的。 – 2014-05-29 19:40:55

0

不幸的是,Windows主機您的選擇是非常有限的。但是,在Linux主機上,可以使用諸如mboxcapsicum之類的選項,它們執行您所描述的操作 - 即輕量級應用程序級沙盒。

相關問題