沙盒(英語:sandbox,又譯為沙箱)是一種安全機制,為執行中的程式提供隔離環境。通常是作為一些來源不可信、具破壞力或無法判定程式意圖的程式提供實驗之用[1]。
沙盒通常嚴格控制其中的程式所能訪問的資源,比如,沙盒可以提供用後即回收的磁碟及主記憶體空間。在沙盒中,網路訪問、對真實系統的訪問、對輸入裝置的讀取通常被禁止或是嚴格限制。從這個角度來說,沙盒屬於虛擬化的一種。
沙盒中的所有改動對作業系統不會造成任何損失。通常,這種技術被電腦技術人員廣泛用於測試可能帶毒的程式或是其他的惡意代碼[2]。
現在的整合式防火牆常含有雲端沙盒,當本地靜態分析無法辦別時,就會去雲端比對hash值,檢視是否有相關情資,若為未發現過的可疑程式,則送入沙盒測試,並記錄其行為模式。
具體實現
沙盒將軟體執行於一個受限的系統環境中,控制程式可使用的資源(如檔案描述子、主記憶體、磁碟空間等)[3]。
以下是一些沙盒的具體實現:
- 軟體監獄(Jail):限制網路訪問、受限的檔案系統命名空間。軟體監獄最常用於虛擬主機上[4]。
- 基於規則的執行:透過系統安全機制,按照一系列預設規則給使用者及程式分配一定的存取權限,完全控制程式的啟動、代碼注入及網路訪問[5]。也可控制程式對於檔案、登錄檔的訪問。在這樣的環境中,病毒木馬感染系統的機率將會減小。Linux中,安全增強式Linux和AppArmor正使用了這種策略。
- 虛擬機器:類比一個完整的宿主系統,可以如執行於真實硬體一般執行虛擬的作業系統(客戶系統)。客戶系統只能透過模擬器訪問宿主的資源,因此可算作一種沙盒。
- 主機本地沙盒:安全研究人員十分依賴沙盒技術來分析惡意軟體的行為。透過建立一個類比真實桌面的環境,研究人員就能夠觀察惡意軟體是如何感染一台主機的。若干惡意軟體分析服務使用了沙盒技術[6]。
- 線上判題系統:用於編程競賽中的程式測試。
- 安全計算模式(seccomp):Linux核心內建的一個沙盒。啟用後,seccomp僅允許write()、read()、exit()和sigreturn()這幾個系統呼叫。
參見
參考來源
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.