沙盒 (電腦安全)
为正在执行的程序提供隔离环境的一种安全机制
沙盒(英語:sandbox,又譯為沙箱)是一種安全機制,為執行中的程式提供隔離環境。通常是作為一些來源不可信、具破壞力或無法判定程序意圖的程序提供實驗之用[1]。
沙盒通常嚴格控制其中的程序所能訪問的資源,比如,沙盒可以提供用後即回收的磁盤及內存空間。在沙盒中,網絡訪問、對真實系統的訪問、對輸入設備的讀取通常被禁止或是嚴格限制。從這個角度來說,沙盒屬於虛擬化的一種。
沙盒中的所有改動對操作系統不會造成任何損失。通常,這種技術被計算機技術人員廣泛用於測試可能帶毒的程序或是其他的惡意代碼[2]。
現在的整合式防火牆常含有雲端沙盒,當本地靜態分析無法辦別時,就會去雲端比對hash值,查看是否有相關情資,若為未發現過的可疑程式,則送入沙盒測試,並記錄其行為模式。
具體實現
編輯沙盒將軟件運行於一個受限的系統環境中,控制程序可使用的資源(如文件描述符、內存、磁盤空間等)[3]。
以下是一些沙盒的具體實現:
- 軟件監獄(Jail):限制網絡訪問、受限的文件系統命名空間。軟件監獄最常用於虛擬主機上[4]。
- 基於規則的執行:通過系統安全機制,按照一系列預設規則給用戶及程序分配一定的訪問權限,完全控制程序的啟動、代碼注入及網絡訪問[5]。也可控制程序對於文件、註冊表的訪問。在這樣的環境中,病毒木馬感染系統的幾率將會減小。Linux中,安全增強式Linux和AppArmor正使用了這種策略。
- 虛擬機:模擬一個完整的宿主系統,可以如運行於真實硬件一般運行虛擬的操作系統(客戶系統)。客戶系統只能通過模擬器訪問宿主的資源,因此可算作一種沙盒。
- 主機本地沙盒:安全研究人員十分依賴沙盒技術來分析惡意軟件的行為。通過創建一個模擬真實桌面的環境,研究人員就能夠觀察惡意軟件是如何感染一台主機的。若干惡意軟件分析服務使用了沙盒技術[6]。
- 在線判題系統:用於編程競賽中的程序測試。
- 安全計算模式(seccomp):Linux內核內置的一個沙盒。啟用後,seccomp僅允許write()、read()、exit()和sigreturn()這幾個系統調用。
參見
編輯參考來源
編輯- ^ Ian Goldberg, David Wagner, Randi Thomas, and Eric Brewer. A Secure Environment for Untrusted Helper Applications (Confining the Wily Hacker) (PDF). Proceedings of the Sixth USENIX UNIX Security Symposium. 1996 [25 October 2011]. (原始內容存檔 (PDF)於2010-06-15).
- ^ Geier, Eric. How to Keep Your PC Safe With Sandboxing. TechHive. 2012-01-16 [2014-07-03]. (原始內容存檔於2014-07-12).
- ^ Sandboxing Applications (PDF). 2001 [7 May 2013]. (原始內容存檔 (PDF)於2015-09-23).
- ^ Auto-Sandboxing secure system. [2015-01-30]. (原始內容存檔於2015-02-12).
- ^ Computer System Security and Access Controls. 1991 [17 May 2013]. (原始內容存檔於2013年5月28日).
- ^ Native Client Sandbox – Untrusted x86 Native Code (PDF). [2015-01-03]. (原始內容存檔 (PDF)於2015-02-12).