2012-06-16 26 views
5

我有一個問題,我似乎無法找到答案,雖然我確定它在那裏。有沒有辦法阻止新創建的進程的註冊表和文件訪問?我使用的是Job對象(http://msdn.microsoft.com/en-us/library/windows/desktop/ms682409(v=vs.85).aspx),它說爲每個新的作業進程設置權限,並且在一些書中我已經讀過,可以控制諸如註冊表和文件訪問之類的東西。禁用特定進程的註冊表訪問(WinAPI)

在尋找我的答案時,我看到我需要爲諸如SE_BACKUP_NAME之類的東西(或任何它所稱的東西)添加LUID,但這些特權常量中沒有一個似乎反映了我想要的控制類型。確切的問題是:我會如何去禁用在Job中新創建的進程的註冊表/文件寫入權限?

我想創建一個沙盒應用程序,順便說一句。這樣可以防止它在運行時對註冊表進行任何更改或編寫任何文件。

任何幫助,將不勝感激!

+0

+1關於一個有趣的話題寫得很好的問題。我不是Windows的傢伙,所以我不知道如何回答它,但祝你好運,歡迎來到SO! –

回答

3

Windows在進程啓動期間訪問許多資源,因此如果您成功禁用了對文件系統和註冊表的訪問權限,則進程將無法啓動。

理想情況下,您希望訪問在進程初始化完成後受到限制,但Windows沒有針對任意進程執行此操作的機制。 Chrome瀏覽器中的沙盒依賴於沙盒進程的合作。

documentation for the Chrome sandbox對Windows中可用的各種安全機制有很好的概述,並解釋了它們在Chrome中的使用方式。如果您嘗試使用自己的代碼,這是一個很好的解決方案。

+0

請注意,Chrome沙箱庫的「攔截」部分可能會使用DLL注入啓動進程。 「攔截」依靠API掛鉤來進一步限制沙盒進程可以執行的操作。 –

0

我不認爲你可以徹底禁止訪問儘可能多的susbsystems依靠它(COM,殼,一些DLL初始化,調試等)另一種方法是允許訪問,但對於有限的沙箱可以用integrity system完成。將其設置爲low integrity將阻止大多數寫訪問,並且被保護模式IE使用。