目录
- 一、沙箱(网络编程虚拟执行环境)
- 1.1 概述
- 1.2 重定向技术
- 1.3 虚拟机和沙箱的区别
- 二、蜜罐
- 2.1 概述
- 2.2 蜜罐诱捕关键能力
- 2.3 反蜜罐技术
- 2.4 蜜罐的思考
- 三、网络欺骗(Cyber Deception)
一、沙箱(网络编程虚拟执行环境)
1.1 概述
Sandboxie(又叫沙箱、沙盘)即是一个虚拟系统程序,在计算机安全领域中是一种安全机制,为运行中的程序提供的隔离环境。 在网络安全中,沙箱指在隔离环境中,用以测试不受信任的、具破坏力的或无法判定程序意图的程序行为的工具。
- 虚拟系统程序:沙箱通常严格控制其中的程序所能访问的资源,比如,沙箱可以提供用后即回收的磁盘及内存空间。在沙箱中,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制。从这个角度来说,沙盒属于虚拟化的一种。
- 隔离环境:当前的有效沙箱基本都是在专用虚拟机上执行。这么做可以在与网络隔离的主机上用多种操作系统安全地测试恶意软件。简言之,沙箱就是供应用执行或文件打开的安全隔离环境。官方用一个很形象的比喻说明了沙箱的原理:你的电脑是一张纸,程序的运行与改动就是在纸上写字。而沙箱相当于放在纸上的一块玻璃,程序的运行与改动只能写在那块玻璃上,而纸还是干干净净的。
- 不受信任的、具破坏力的、无法判定程序意图的程序:因为现代恶意软件大多经过模糊处理以规避基于特征码的杀毒软件,所以基于内容(静态分析)的恶意代码检测技术就显得比较吃力了,基于行为分析(动态分析)的反恶意软件解决方案就变得越来越重要了,该方法是将不受信任的、具破坏力的、无法判定程序意图的程序在沙箱中运行,根据运行结果判定可疑程序是否真的为恶意软件。
1.2 重定向技术
沙箱究竟是怎么做到在安全隔离环境中去测试可疑程序呢?总结起来就是三个字:重定向!
重定向,即重新指定方向,也就是说沙箱能够做到让沙箱内软件操作的文件、接口、注册表等路径重定向到其他位置(沙箱指定位置),这样可疑软件程序本来想访问或执行的系统资源就不会被访问或执行,保证资源的安全性。其实重定向也可以叫做“虚拟化”,或者称作"隔离"。
举个栗子:
如果电脑里面不小心中了恶意程序,该恶意程序会自动删除C:\ProgramData这个文件夹里面的所有数据,那么如果把这个恶意程序先放到沙箱中去运行,结果会是怎样呢?
1.沙箱hook ZwDeleteFile,函数是HOOK_ZwDeleteFile;
2.在HOOK_ZwDeleteFile中,将路径C:\ProgramData加上一个前缀C:\sandbox\ProgramData,转到沙箱内文件路径;
3.接着把C:\ProgramData拷贝到沙箱内,现在沙箱内就存在C:\sandbox\ProgramData这样的一个文件了;
4.然后调用原始ZwDeleteFile,删除C:\sandbox\ProgramData。
这样,利用沙箱的重定向技术,我们观察到可疑程序的危险动作,从而判断这个可疑程序是个恶意程序,并对这个恶意程序做进一步处理。
一个完备的沙箱一般需要虚拟化(隔离)处理这些东西:
- 文件
- 注册表
- DCOM(RPCSS)
- 服务 安全浏览器
- 其他如:窗口、类名、消息、token等
- 进程、线程安全
- 全局钩子、注入等防护
- 驱动加载
…
1.3 虚拟机和沙箱的区别
上面反复提到虚拟化和沙箱,需要注意的是虚拟机和沙箱是两个东西,不要混淆,具体区别如下:
运行在沙盒中的application和沙盒外的application共享机器的存储内存和计算资源。当沙盒内的application退出后,沙盒内的application已下载或“安装”的恶意软件都将 被丢弃。
虚拟机简称VM,其本质上是一个运行在操作系统之上的application,其特殊之处在于,虚拟机通过软件的方法模拟出一个完整独立的计算机的环境(但是并不是真是的计算机环境),这也是虚拟机名字的由来。
在一个虚拟机内部,可以安装很多个application,这些application可以使用虚拟机内部的资源,包括虚拟硬盘和计算资源。此外虚拟机内部可以享有属于自身的驱动程序,因此虚拟机是作为一个application,利用真是的硬件资源来模拟了属于自己的硬件资源和软件环境。因此当虚拟机退出后,发生在虚拟机内部的更改(包括下载、设置、更新、安装等操作)会被保存下来。
总结下沙箱和虚拟机的区别主要有亮点,如下:
- 当沙箱中的应用程序退出后,其所做的更改会被丢弃;而当虚拟机退出后,其所做的更改会被保存下来;
- 沙箱中的application和其他application共享机器的硬件资源;而虚拟机在安装时需要为其指定内存memory和cpu核且虚拟机不和其他application共享硬件资源。因此虚拟机实际上是很耗系统资源的。
二、蜜罐
2.1 概述
蜜罐是一种软件应用系统,用来称当入侵诱饵,引诱黑客前来攻击。蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
首先我们要弄清楚一台蜜罐和一台没有任何防范措施的计算机的区别,虽然这两者都有可能被入侵破坏,但是本质却完全不同,蜜罐是网络管理员经过周密布置而设下的“黑匣子”,黑夹子是一个安全隔离环境,而且上方还悬着研究人员的八倍镜,蜜罐可以让研究人员观测真实的攻击者是怎样一步一步实施攻击动作的,而沙箱仅揭示恶意软件的行为结果。
设计蜜罐的初衷就是让黑客入侵,借此收集证据,同时隐藏真实的服务器地址,因此我们要求一台合格的蜜罐拥有这些功能:发现攻击、产生警告、强大的记录能力、欺骗、协助调查。另外一个功能由管理员去完成,那就是在必要时候根据蜜罐收集的证据来起诉入侵者。
2.2 蜜罐诱捕关键能力
从安全价值来看,蜜罐诱捕技术可以分为拆分为四层:
- 诱饵层:通过散布诱饵信息(比如项目信息、虚假邮箱等)使攻击者根据特定的路线进行行进攻击;通过部署面包屑,将攻击者逐渐引入蜜罐系统。
- 探针层:探针用于监测客户未使用的端口、IP段等,将试图接入的访问重定向到蜜罐系统。
- 蜜罐层:蜜罐层为蜜罐设备,有各类仿真的系统、应用服务、数据库,甚至设备等,并且对事件信息进行采集。
- 分析层:分析层的主要任务是将诱捕环境中收集到的信息进行分析,从而达成攻击溯源、攻击手段分析、威胁情报生成等目的。需要注意的是,这一部分能力,如果蜜罐诱捕产品无法提供,可以联动其他安全产品达成。
这里就不再对每一层的技术展开了,感兴趣的欢迎评论区讨论。
2.3 反蜜罐技术
有蜜罐技术,就存在反蜜罐技术,现有的反蜜罐措施主要针对低交互蜜罐,这是因为蜜罐仿真系统对协议分片的处理不正确或协议仿真不完全会导致出现网络层指纹信息,如果指纹信息倍攻击者检测到,那么攻击者就知道自己身处蜜罐中了。
攻击者亦可利用时间延迟也可识别蜜罐,因为低交互蜜罐作为软件运行在操作系统上层,会对资源造成消耗,增大响应时延。
也有一些反蜜罐措施是在进入蜜罐系统后,采用系统调用的方式,调用内部某些功能,依据执行的结果判断是否是蜜罐。
2.4 蜜罐的思考
蜜罐是用来给黑客入侵的,它必须提供一定的漏洞,但是我们也知道,很多漏洞都属于“高危”级别,稍有不慎就会导致系统被渗透,一旦蜜罐被破坏,入侵者要做的事情是管理员无法预料的。例如,一个入侵者成功进入了一台蜜罐,并且用它做“跳板”去攻击别人,那么这个损失由谁来负责?因此,设置一台蜜罐必须面对三个问题:设陷技术、隐私、责任。
三、网络欺骗(Cyber Deception)
欺骗防御则是一个新的术语,其定义尚未定型,但基本指的是一系列更高级的蜜罐和蜜网产品,能够基于所捕获的数据为检测和防御实现提供更高的自动化程度。