沙箱(Sandbox)

作者:{WZ}@ArkTeam

1、什么是Sandbox(沙箱/沙盒/沙盘)?

沙箱是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。

2、沙箱的分类

根据沙箱采用的访问控制思路不同,对沙箱技术的研究可分为两类:基于虚拟化的沙箱和基于规则的沙箱。

1)基于虚拟化的沙箱

基于虚拟化的沙箱基于虚拟化的沙箱为不可信资源构建封闭的运行环境,在保证不可信资源原有功能的同时提供安全防护。根据虚拟化层次的不同,基于虚拟化的沙箱可分为两类,即系统级别的沙箱和容器级别的沙箱。


图1 基于虚拟化的沙箱

系统级别的沙箱采用该技术为不可信资源提供完整的操作环境。采用硬件层虚拟化技术在硬件和目的操作环境之间增加操作层,即监控器层,由监控器层的程序实现对硬件的抽象操作和向上提供接口。其中主要包括VMware及VirtualBox在内的常用虚拟机。

容器级别的沙箱与基于硬件层虚拟化的系统级别沙箱相比,采用了更为轻量级的虚拟化技术,在操作系统和应用程序之间增加虚拟化层,实现用户空间资源的虚拟化,但在资源使用效率和资源管理上占有较大的优势。

(2)基于规则的沙箱

基于规则的沙箱使用访问控制规则限制程序的行为,主要由访问控制规则引擎、程序监控器等部分组成。程序监控器将监控到的行为经过转换提交给访问控制规则引擎,并由访问控制规则引擎根据访问控制规则来判断是否允许程序的系统资源使用请求。与基于虚拟化的沙箱不同,一方面,基于规则的沙箱不需要对系统资源进行复制,降低了冗余资源对系统性能的影响;另一方面,基于规则的沙箱方便了不同程序对资源的共享。


图2 基于规则的沙箱

3、沙箱可以干什么?

沙箱技术被广泛应用到浏览器(IE、Chrome、Firefox)、文档阅读器(Adobe Reader)等解析和处理网络资源的应用中。一些应用沙箱技术的方式如下:

虚拟机:模拟一个完整的宿主系统,可以如运行于真实硬件一般运行虚拟的操作系统(客户系统)。客户系统只能通过模拟器访问宿主的资源,因此可算作一种沙箱。

软件监狱(Jail):限制网络访问、受限的文件系统命名空间。软件监狱最常用于虚拟主机上。

基于规则的执行:通过系统安全机制,按照一系列预设规则给用户及程序分配一定的访问权限,完全控制程序的启动、代码注入及网络访问。也可控制程序对于文件、注册表的访问。在这样的环境中,病毒木马感染系统的几率将会减小。

主机本地沙箱:安全研究人员十分依赖沙箱技术来分析恶意软件的行为。通过创建一个模拟真实桌面的环境,研究人员就能够观察恶意软件是如何感染一台主机的。若干恶意软件分析服务使用了沙箱技术。

在线判题系统:用于编程竞赛中的程序测试。

安全计算模式(seccomp):Linux内核内置的一个沙箱。启用后,seccomp仅允许write()、read()、exit()和sigreturn()这几个系统调用。

4、常见的几种沙箱

Sandboxie:用户量较大的虚拟型沙箱,可以对沙箱里的程序进行非常细致的限制,包括文件/文件夹读写、COM接口、hook、驱动、硬件使用、联网等等。可以一键终止所有进程,非常方便地进行文件恢复(从沙箱内移至沙箱外),支持自动入沙,多沙箱等。但对于免费用户有诸多限制:每次开机首次运行会有6秒的暂停并提示进行付费注册;不支持自动入沙,虽然可以建多个沙箱但只能同时运行一个沙箱等。

Bufferzone:与sandboxie相比,bufferzone提供的高级设置选项较少,设置偏向傻瓜型。适合需求仅要求上网安全的用户,界面友好,设置简单。其中较有特色的功能是,自带一个针对沙箱内程序的简单防火墙。bufferzone为单沙箱,支持自动入沙。

Comodo D+的sandbox:嵌在D+里不是单独的程序,只提供了文件/注册表虚拟化功能,其他高级限制需要搭配defense+进行。单沙箱,支持强制入沙。

DefenseWall :DefenseWall是一款基于规则的沙箱,为普通用户设计的,简单易用、功能强大,没有弹出窗口,不用升级特征库;作为一款HIPS(Host-based Intrusion Prevention System HIPS,基于主机的入侵防御系统),能防御大部分的已知、未知病毒木马广告间谍 rootkits,并方式广告、键盘记录工具和一些打包的恶意脚本入侵电脑,但没有网络过滤功能。

Cuckoo:作为一款基于虚拟化环境所建立的恶意程序分析系统,它能自动执行并且分析程序行为,记录对真实操作系统的更改,并生成多种分析报告格式。

发表评论

电子邮件地址不会被公开。 必填项已用*标注