计算机科学

首页 > 计算机科学

沙盒 (计算机安全)

在计算机安全领域,沙盒英语:sandbox,又译为沙箱)是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用[1]

沙盒通常严格控制其中的程序所能访问的资源,比如,沙盒可以提供用后即回收的磁盘及内存空间。在沙盒中,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制。从这个角度来说,沙盒属于虚拟化的一种。

沙盒中的所有改动对操作系统不会造成任何损失。通常,这种技术被计算机技术人员广泛用于测试可能带毒的程序或是其他的恶意代码[2]

目录

  • 1 具体实现
  • 2 参见
  • 3 参考来源
  • 4 外部链接

具体实现

沙盒将软件运行于一个受限的系统环境中,控制程序可使用的资源(如文件描述符、内存、磁盘空间等)[3]

以下是一些沙盒的具体实现:

  • 软件监狱(Jail):限制网络访问、受限的文件系统名字空间。软件监狱最常用于虚拟主机上[4]
  • 基于规则的执行:通过系统安全机制,按照一系列预设规则给用户及程序分配一定的访问权限,完全控制程序的启动、代码注入及网络访问[5]。也可控制程序对于文件、注册表的访问。在这样的环境中,病毒木马感染系统的几率将会减小。Linux中,安全增强式Linux和AppArmor正使用了这种策略。
  • 虚拟机:模拟一个完整的宿主系统,可以如运行于真实硬件一般运行虚拟的操作系统(客户系统)。客户系统只能通过模拟器访问宿主的资源,因此可算作一种沙盒。
  • 主机本地沙盒:安全研究人员十分依赖沙盒技术来分析恶意软件的行为。通过创建一个模拟真实桌面的环境,研究人员就能够观察恶意软件是如何感染一台主机的。若干恶意软件分析服务使用了沙盒技术[6]
  • 在线判题系统:用于编程竞赛中的程序测试。
  • 安全计算模式(seccomp)英语seccomp:Linux内核内置的一个沙盒。启用后,seccomp仅允许write()read()exit()sigreturn()这几个系统调用。

参见

  • chroot
  • 虚拟系统
  • Sandboxie

参考来源

  1. ^ 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]. 
  2. ^ Geier, Eric. How to Keep Your PC Safe With Sandboxing. TechHive. 2012-01-16 [2014-07-03]. 
  3. ^ Sandboxing Applications (PDF). 2001 [7 May 2013]. 
  4. ^ Auto-Sandboxing secure system. [2015-01-30]. 
  5. ^ Computer System Security and Access Controls. 1991 [17 May 2013]. (原始内容存档于2013年5月28日). 
  6. ^ Native Client Sandbox – Untrusted x86 Native Code (PDF). [2015-01-03]. 

外部链接

  • Security In-Depth for Linux Software: Preventing and Mitigating Security Bugs
  • Sandbox – The Chromium Projects

上一篇:安全描述符
下一篇:数据执行保护
相关推荐