1、定义
在计算机领域中,沙箱技术是一种用于隔离正在运行程序的安全机制,其目的是限制不可信进程或不可信代码运行时的访问权限。这个虚拟环境中包含一些虚拟的硬件和软件资源,如文件系统、网络、操作系统等,使应用程序或进程可以在该环境中运行。在沙箱中运行的程序只能访问沙箱给它加载的资源,而不会影响到外部的应用、系统或平台,避免其对计算机中的其他程序或数据造成永久的更改。沙箱应用在网络安全领域,可以通过隔离沙箱中的病毒文件,以达到识别未知攻击的效果。
2、沙箱中的三个关键技术
- 虚拟化技术
是一种资源管理技术。通过虚拟化,计算机的很多实体资源,包括CPU、内存、磁盘空间等,都会被抽象化后成为可供分割和重新组合的状态,让用户可以自己重新分配计算机硬件资源。
- 访问控制技术
当沙箱环境中的程序需要去访问一些沙箱外的、但对其运行有必要的资源时,就需要访问控制规则去限制程序的行为。沙箱的访问控制往往由程序监控器与访问控制规则引擎等部分组成。程序监控器监控沙箱内程序的运行,并将监控到的行为提交给访问规则控制引擎。访问规则控制引擎会根据规则,判断是否允许程序使用沙箱外的特定资源(防逃逸)。
- 防躲避技术
当恶意软件在运行时检测到自己处于沙箱环境中,会采取一系列措施来规避沙箱的检测和分析,沙箱一般需具备如下防躲避技术防止恶意软件躲避:
对病毒隐藏虚拟机固定字符串的硬件注册表信息
对病毒隐藏虚拟机中独有的服务进程
对病毒隐藏虚拟机中独有的应用软件信息
拦截系统序列号注册表查询动作,返回某个不会被怀疑的序列号
3、沙箱中用到的检测技术
- 静态检测
基于病毒特征码的检测,只能识别已知病毒,准确率高;
- 动态检测
基于行为的检测(操作注册表、创建进程\线程、创建服务、操作系统启动项、修改配置文件、外联等),可以实现未知病毒的检测,某些时候也会归属于预防APT攻击当中的一环,准确率虽然没有静态检测高,但是可以识别未知攻击。
4、沙箱的分类
从支持的操作系统划分来开的话,主要分为两个大类:
Linux系统类型的沙箱(CentOS、Ubuntu等),Windows类型的沙箱(windows xp\windows server 2012\windows 7等);一个硬件盒子,上面运行的沙箱越多,设备性能消耗也就越高,检测速度也会相对慢一点。
5、实验测试一下
(1)病毒样本:也可以在互联网搜索一下,但是提供恶意软件样本的这些网站大多是国外的网站,可能涉及到FQ,有些网站因为怀揣着一颗虔诚学习的心也是可以访问到的,慢一些而已;而国内某些提供恶意样本的网站话说我也不敢用。本次实验用到的样本是工作用遇到的,和大家分享一下。如果有些小伙伴需要下载恶意样本学习恶意代码分析或者逆向相关,也可以去Hybrid Analysis(https://www.hybrid-analysis.com/)获取恶意样本进行分析学习。
(2)沙箱环境:这里我使用的是放在互联网上面的“云沙箱”。很多甲方会从安全厂商采购硬件盒子(沙箱),一般就是一个服务器,工控机的比较少,这个沙箱还是很消耗性能的。国内很多安全厂商都有云沙箱对外提供,某些厂商的云沙箱可能需要注册一个账号才能使用,有些也不用。微步在线、安恒、360、奇安信等都有提供云沙箱,在网络上面搜索一下就能找到。这里我用的微步:https://s.threatbook.com/;国外的云沙箱我推荐virustotal:https://www.virustotal.com。当我们在日常运维或者护网中研判的时候,经常可以结合多个沙箱平台分析出来的结果进行汇总分析处理,比如我本人经常使用国内和国外的沙箱互相佐证。


检测结果是很明显的,纯纯的恶意软件,在行为检测部分可以看到这个恶意软件有大量的高危操作,这些高危操作,在正常软件安装和运行过程中是极少出现的。包括删除大量文件、修改引导配置、删除卷影副本,破坏系统备份等操作。上述种种行为十分恶劣,放在刑侦剧中可以说是穷凶极恶之徒了。好在现在的防病毒软件也在不断进化,针对行为检测来判断未知病毒这一方面也有很多进步,不过是没有专业的沙箱做的好罢了。不过这一点也很快被厂商察觉到,很多厂商在给出的解决方案中会强调,打造防病毒软件和沙箱的联动,将防病毒软件无法识别的未知样本发给沙箱,沙箱检测之后会将结果反馈给防病毒软件,由防病毒软件完成处置(删除或者隔离或者不操作等),从而完成一个不需要人工参与的完美闭环。

2824

被折叠的 条评论
为什么被折叠?



