关于企业使用沙箱(盒)设备的思考
沙箱(盒)设备系统,有时候又被称为未知威胁检测系统;因为防火墙、WAF、反病毒等产品能力不足或针对性不足,逐步开始被甲方公司所重视、所使用。因公司自身业务及安全发展原因,自2017年以来,个人接触了一些沙箱项目的建设,特将工作内容、思考的重点进行了归纳总结。
文章目录如下:
1.为什么引入沙箱系统;
2.沙箱系统在整个技术防御体系中的定位;
3.沙箱系统选型;
4.沙箱系统部署与联动;
5.沙箱系统的长期运营。
一、为什么引入沙箱系统?
一般来说,在甲方公司安全设备采购实施路线上,沙箱是优先级比较靠后的产品。防火墙、防病毒、IPS/IDS这些传统安全设备,虽然一直被人们所诟病,但因为其技术稳定性、功能可靠性还是有采购必要的。当传统的安全设备采购的差不多了的时候,甲方公司往往会考虑采购沙箱系统。一张图可以说明原因。
以OSI七层模型来分析,下三层面的技术相对比较固定,需要的安全防护手段往往也比较传统和单一,一定的成本投入就可以较好的保护下三层安全问题,但是自网络层往上,随着层级的上升,协议越发复杂和多样,黑客手段也越发复杂和多样,到了应用层,几乎再也没有了万金油的安全手段,WAF、RAS、蜜罐、APP加壳、沙箱均面向不同的应用层防护,而沙箱系统主要面向应用级文件层面的防护。而文件又是一个企业的普遍信息资产承载体。所有沙箱系统对企业安全大有裨益。
总结来说,沙箱系统做的就是应用层面针对文件的检测防护,防止哪些恶意、有害的文件进入企业系统或在企业网络里流转,从而规避安全危害。
二、沙箱系统在整个技术防御体系中的定位
每一个重视安全的企业,都会有一套自己的安全体系框架或架构。那么沙箱系统应该被放置在哪个位置才能起到良好的安全作用呢?个人认为,应该部署在关键的安全边界上,比如“内外网边界”、“逻辑独立的两个DMZ区的边界“和”物理接口边界“。
”内外网边界“其实就是所说的互联网与企业内网的边界,只要企业对外提供服务,就会有这个边界,而这个边界也是最容易被人攻击的。在这个边界上,沙箱系统一般保护三类系统:邮箱系统、有附件上传功能的业务系统(例如招聘系统)、企业网盘。每一个准备进入内网的附件,都应该接受沙箱系统的安全扫描,阻止“僵木蠕”等混入企业网络。
“逻辑独立的两个DMZ区的边界”一般指的是企业内网抽象出来的内部边界,各个区域之间物理隔离,或者物理相连但逻辑隔离,或逻辑上相连但资源上隔离,每家企业各不相同。无论如何,只要应用级能相连,文件就可以从一个区域转移到另一个区域,这给病毒木马的横向传播提供了条件,如果我们能有效的识别这些边界,然后在边界上部署沙箱系统,就可以有效的方式病毒内网传播。
“物理接口边界”是指USB接口等媒介边界问题,通过U盘把病毒木马从外部带入企业办公网,然后通过病毒木马的横向扩展能力起到传播的效果。虽然我们的终端可能部署了防病毒软件,但防病毒能应对的实在是太有限的。
三、沙箱系统选型
选型过程通过POC功能测试完成,对于甲方了解乙方产品的真实能力有很大帮助。选型过程必须谨慎认真对待,将产品能力介绍和产品实际能力情况做一个清晰对比。在沙箱选型过程中,可以考虑以下几个方面:
1. 能支持的文件检测类型:除了常规的pdf、office系列、exe文件,还要重点评估对图片、程序代码、APK包等“企业日常运营过程中常用的软件”类型;
2. 苛刻的文件检测边界要求:比如能否支持超大附件检测,能否支持多媒体文件检测,能否支持带弱密码压缩包检测等;
3. 文件分析检测项:注册表、系统调用、网络请求、延时运行、进程分析等是否都在检测范围内;是否同时支持动态和静态检测;
4. 文件分析检测苛刻要求:是否支持对win10接口的检测、是否支持逃逸检测;
5. 沙箱的虚拟程度:是应用级虚拟、还是操作系统级虚拟还是硬件级虚拟;
6. 检测报告内容:MD5、sha1、SHA256;进程、注册表、接口记录、程序运行逻辑示意图、视频回放、威胁环节标注和打分等;
7. WEB控制台能力:规则因企业而异,原则只有一个,能控制台操作的不要后台ssh操作;
8. 多样化报表能力及仪表盘能力:UI友好及炫酷程度很重要;
9. API接口能力:这一点及其重要,因为沙箱会和很多企业内部系统进行联动,API能力将直接影响代码改造量等问题,一般API需要支持如下三种模式:
(1) http模式;
(2) 基于agent客户端的命令行调用模式;
(3) ftp指定目录读取模式;
每一种API模式下,还需要分三类API:只调用静态检测;只调用动态检测;同时调用静态、动态检测;
10. 集群能力和横向扩展能力:谨慎使用HA模式方案;
11. 威胁情报导出能力:能以IOC、STIX形式将沙箱检测结果中的所有内容(如hash值、域名请求、进程名称、病毒分析结果)以威胁情报模式发出给其他系统;
12. AAA认证、自我性能监控、syslog能力等;
13. 是否能接入网络流量,自行还原流量附件并检测;
除了这些内容,还可以让厂商自述“竞品优势”,将相应优势内容应用到测试过程中。选型测试过程中,建议邀请国内外、大中小各类厂商(不少于5家)都来参加,多家对比,以求掌握更加精准的产品能力信息。降低入坑的风险。
四、沙箱系统部署与联动
做好了产品选型及后续的采购,那么接下来就进入了部署和联动环节。一般情况下,沙箱需要三个IP地址,一个管理地址、一个虚拟沙箱访问外网地址、一个流量接入地址;这三个IP对应的功能要不三合一,要不完全拆分,否则会造成很大的后续使用困扰。
(一)沙箱部署过程中,首先实现与邮箱系统的对接
这个过程感觉起来比较简单,但是坑很多,由于邮箱是最常用的办公系统,对稳定性要求极高,这给沙箱部署带来一定的挑战,部署方案要尽可能“无干扰模式”,以“旁路的模式”加载到整个网络中。同时沙箱系统往往也有内置的反垃圾模块和反病毒模块,如何选择模块(沙箱的还是邮件的模块)也是关键问题。
第一种做法是邮箱的反垃圾反病毒模块与沙箱实现对接,沙箱系统自身不启用反垃圾反病毒模块。反垃圾反病毒模块对外来邮件进行第一次检测,当确认无危害后,投递给沙箱检测,沙箱系统检测完毕后,再投递给反垃圾反病毒模块,反垃圾反病毒模块接收邮件后投递到邮箱系统。如下图所示:
这种模式下:
(1)沙箱是“旁路接入,串行效果”,当反垃圾反病毒模块发现沙箱系统“崩溃”或“不可达”(心跳监测)时,可以自行改变投递线路。
(2)使用的是原有的反垃圾反病毒模块,运维人员配置的黑白名单不用更改,也不用移植,降低了运维成本,是技术人员比较喜欢的方式。
(3)这种模式最大的问题是反垃圾反病毒模块和沙箱之间的“对接能力以及稳定程度是个未知数”,如果两个产品出自一家公司还比较好说,如果是不同的安全公司的产品,那么前期测试阶段就必须加大测试力度,保障稳定性。尤其沙箱投递邮件给反垃圾反病毒模块的环节,是“心跳检测”不能解决的。
第二种常见的做法是负载均衡设备和沙箱系统实现对接,如下图所示:
负载均衡设备将邮件的流量投递给沙箱系统(一般沙箱会开启反垃圾反病毒模块,否则沙箱性能会被严重损害),沙箱系统检测完成后,把流量原封不动的投递给负载均衡设备,负载均衡设备按常规模式完成后续工作;这种模式对沙箱的功能提出了要求,不但要能从流量中还原出附件(配置邮箱系统私钥),同时还能“还原出邮件流量”重新投递给负载均衡设备,这是很多产品做不到的。
这种模式还有一个变种,如下图所示:
因沙箱系统功能所限,沙箱直接将邮件负载均衡投递给反垃圾反病毒模块。变种方案一般被认为不如前一个模式;原因在于对沙箱系统负载均衡能力的不信任;在“负载均衡设备和沙箱系统实现对接”的模式下,当沙箱系统出现故障时,负载均衡设备可以立刻停止投递,并恢复“无沙箱时”的运行模式,直接投递给反垃圾反病毒模块。
第三种模式是应用级对接模式,是类似于第一种方案的模式;如下图所示:
有时候,一个企业的邮箱系统和反垃圾反病毒模块是在一台服务器上的,第一种模式没有机会通过“网络层接入方式”接入,因此开发出了这第三种“应用层接入模式”;通过投递EML文件来解决此问题,效率也是不错的。一个好的产品应该同时支持上述三种模式,然而因种种原因,一般并做不到。
(二)沙箱部署过程中,第二部是实现与业务系统的对接。
一般情况下,采用API对接的串行模式或者流量检测的旁路模式;流量检测旁路模式的整体架构如下图:
沙箱系统独立于业务逻辑之外,旁路镜像数据先通过流量解析及附件还原设备,之后在投递到沙箱系统集群。有时候流量解析及附件还原设备以模块的形式和沙箱在一台物理设备上。这样做的好处是不干扰正常业务逻辑,缺点是不能进行实时阻断,只能做事后审计追踪。
API对接的串行模式如下图:
在应用级串行模式下,对API接口的要求比较高,一般需要至少支持三种功能:
(1) 只调用静态检测(特征库检测、反编译分析);
(2) 只调用动态检测(文件行为检测);
(3) 静态+动态检测。
有了这三种模式,业务系统的开发人员可以根据业务系统对实时性的要求,而选择不同的API接口,达到一种安全服务于业务的逻辑能力。
(三)沙箱集群方案
一般来说可以使用负载均衡设备实现集群,或者用一台沙箱自身来充当负载均衡设备,同时为这个沙箱置一个冷备机(形成HA模式),这样的话就会造成一台沙箱的成本浪费。所以需要在负载均衡设备成本和沙箱成本之间做一个平衡;看公司实际情况。
五、沙箱系统的长期运营
除了日常的巡检排查外,沙箱系统运营过程中碰到的最多的事情是“事件调查取证”和“外部安全设备API对接”。都是比较麻烦但意义重大的事情。
(一) 事件调查取证
在一个企业内,中毒应该是一个普遍的、日常的安全问题。随着安全技术的发展,依托全流量解析设备、威胁情报系统、蜜罐、网络防杀毒系统等,我们逐渐能发现一些终端防病毒软件不能扫描出的问题,但病毒被检测出时,往往安全技术人员会在终端进行取证,想办法把样本提取出来,这样就可以算出样本的hash值,然后同步到防病毒软件中,达到“一处发现病毒,全网可查杀应对”的目的。但是,如何证明提取到的样本就是引起“全流量解析设备、威胁情报系统、蜜罐、网络防杀毒系统”等设备告警的原因呢?这就需要进行特征核对,沙箱由于可以进行动态行为检测,所以在这个过程中,可以发挥重要作用。
(二) 外部安全设备API对接
万物互联的时代,安全自然也不例外。安全产品间的联动需要不断被加强,这样实现“自适应”、“安全自动化”、“SOAR”这些概念才能成为可能。沙箱由于其强大的数据产生能力,如hash值、注册表信息、网络请求信息、进程变化信息等,对其他安全系统有着非常重要的意义,实现这些数据的共享就需要更加完备的API接口体系,只能将hash值、注册表信息、网络请求信息、进程变化信息等写入pdf报告的沙箱不是一个合格的沙箱,能把这些数据通过syslog、ftp、API、agent命令行调用、STIX、IOC等方式共享给别人才是关键。