沙盒 (电脑安全)
外观
(重定向自沙盒 (計算機安全))
沙盒(英语: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).