沙盒 (電腦安全)
为正在执行的程序提供隔离环境的一种安全机制
沙盒(英語: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).