2011-02-02 34 views
9

在當今大多數操作系統中,缺省情況是,當我們安裝一個程序時,它可以訪問許多可能不需要的資源,而且用戶可能不打算給它訪問權限。例如,當你安裝一個封閉的源程序時,原則上沒有什麼可以阻止它讀取~/.ssh中的私鑰並通過互聯網將它們發送給惡意的第三方,除非用戶是精通使用跟蹤的安全專家程序,他可能無法檢測到這種違規行爲。沙盒操作系統

隨着計算機上安裝許多封閉源程序的激增,不同的操作系統採取了哪些措施來解決沙盒第三方程序的問題?

是否有任何操作系統是從頭到尾設計的,其中每個程序或可執行文件都必須以清晰可讀的格式由用戶聲明運行所需的資源,以便操作系統以沙箱只能訪問那些資源?例如,可執行文件必須聲明它需要訪問文件系統上的某個目錄或文件,它必須通過網絡訪問某些域或IP地址,它需要一定量的內存等。 ...如果可執行文件位於系統資源要求的聲明中,則應禁止操作系統訪問它們。

回答

4

這是虛擬化之美。執行測試或操作有問題的應用程序的任何人都會明智地使用虛擬機。

虛擬機:

  • 提供一個完整的操作系統的優點,但沒有直接訪問硬件
  • 會崩潰或失敗並不會影響主機
  • 是便宜的部署和配置的重新啓動各種環境
  • 非常適合使用爲其他平臺設計的應用程序
  • 可能試圖訪問其他私人數據的沙箱應用程序在您的計算機上

藉助VirtualBox等無縫模式虛擬化程序,您可以近乎無縫地利用虛擬機的沙盒。

+0

Qubes(http://qubes-os.org/Architecture.html)是一個使用虛擬機實現獨立域的項目。在某些方面,這是使用虛擬化作爲構建塊的MAC的重新發現/重新實現。 – ninjalj 2011-02-02 18:38:28

2

您剛剛在最後一段描述了MAC(強制訪問控制)。

0

我一直都很好奇。

像Android這樣的移動操作系統現在有沙盒內置。安裝應用程序時,它會要求獲得訪問一組資源/功能的權限。據我所知,至少在某種程度上,Windows也是如此。儘管如此,它更加寬容。具有諷刺意味的是,linux和其他人似乎距離「基於軟件的權限」還很遙遠,並且陷入了過去,這很遺憾。至少,據我所知,至少是。我會很高興有人向我展示錯誤,並向我展示一個「可用」的開源系統,其中內置了應用程序沙箱/權限。目前,據我所知,權限完全是基於用戶的。

我認爲這種意識不僅用戶需要權限訪問文檔,而且可執行文件需要權限來訪問資源已經有幾十年了。它可能避免了本世紀的病毒和安全問題。