APP下载

针对高级持续性威胁的防护研究

2016-05-14夏飞夏元轶

科学与财富 2016年6期
关键词:模拟器引擎威胁

夏飞 夏元轶

摘要:国网江苏省电力公司信通分公司基于虚拟执行技术的APT检测模型,采用了最新的虚拟执行技术,对网络内的APT攻击进行监测和分析,帮助公司了解自身网络的脆弱性,并采取有效措施。

一. 背景

如今,企业面临着一个不断演变的网络威胁环境。最初的黑客攻击是为了获得影响力及自我满足去攻击媒体网站,或者使用DoS方式来中断网站的服务;而现在已演变成为了经济、政治等目的的攻击。攻击者能够通过窃取知识产权来直接获取利益,也可以入侵、窃取客户的个人金融信息,更有甚者破坏对方的服务以至国家的基础设施。动机的变化,同时也带来了攻击方式的变化。

从过去广泛、漫无目的的攻击威胁,在数年内迅速的转化为针对受害者组织将造成严重后果的高级可持续威胁(Advanced Persistent Threat)。高级可持续威胁(APT)是由美国空军的信息安全分析师与2006年创造的术语,一般来说,高级可持续威胁具备以下三个特点:

高级:攻击者为黑客入侵技术方面的专家,能够自主的开发攻击工具,或者挖掘漏洞,并通过结合多种攻击方法和工具,以达到预定攻击目标。

持续性渗透:攻击者会针对确定的攻击目标,进行长期的渗透。在不被发现的情况下,持续攻击以获得最大的效果。

威胁:这是一个由组织者进行协调和指挥的人为攻击。入侵团队会有一个具体的目标,这个团队训练有素、有组织性、有充足的资金,同时有充分的政治或经济动机。

此类APT威胁往往可以绕过防火墙、IPS、AV以及网闸等传统的安全机制,悄无声息的从企业或政府机构获取高级机密资料。在2012年Verizon信息外泄调查报告中可以看到,2011年发生的重大信息数据外泄的受访组织中,有59%是在相关执法机构告知后才知道信息外泄的情况。

Gartner在2012年的报告中说道:"越来越多的人同意APT攻击是可以避开我们传统的基于特征的安全检测机制,并且存在与系统内的时间越来越长,无法被侦测出来。威胁真的发生了,你已经被入侵,只是你不知道而已"。高级可持续威胁(APT)已经成为当今公认最具威胁的网络攻击类型。

为了对APT有一个更好的认知,以更好的防护,我们对基于虚拟执行技术的APT检测模型进行了研究。

二. 模型原理

2.1 模型技术原理

基于虚拟执行技术的APT检测模型(简称AAS)通过新型的动态检测和静态检测技术可以精确检测通过网页、电子邮件或文件共享方式试图进入内部网络的恶意软件,包括零日攻击及具有抗检测能力的高级恶意软件。当前的恶意软件大多具备强大的抗逃避能力,而APT攻击还可能使用零日攻击的方式,传统的防病毒引擎很难发现它们。AAS可以有效发现这些攻击行为,帮助客户有效的遏制由此带来的风险,如敏感信息泄露、业务中断等。

2.2 检测原理

基于虚拟执行技术的APT检测模型(AAS)除了集成传统的反病毒引擎,还有集成了虚拟执行引擎。从不同的检测深度来看,AAS的虚拟执行引擎分为轻量级虚拟执行引擎和系统级虚拟执行引擎。轻量级虚拟执行引擎实现快速检测,系统级虚拟执行引擎实现深度检测。这种互补性提升了AAS引擎的检测效果。

2.3 基于文件格式的深入检测技术

基于文件格式的深入检测技术,是通过对文件进行解析,提取其中的关键部分进行恶意特征和恶意行为检测。相对于直接将原始文件丢入引擎的做法,基于文件格式的深入检测技术可以大大提高检测效果。如从PDF中提取JS脚本、从SWF里面提取AS脚本,然后针对脚本进行恶意检测,这使得检测引擎的检测效果大大提升。

2.4 轻量级虚拟执行技术

轻量级虚拟执行技术基于一个指令模拟器,可以将一段数据作为二进制指令流进行模拟执行,同时也支持对JS脚本进行模拟执行。通过观察执行过程中的指令行为,实现对恶意软件的检测。这种技术的优点是执行速度较快,部分情况下可以应用到流式引擎中。但缺点在只能再指令、寄存器和内存级别进行模拟执行,是无法模拟完整操作系统的。因此在模拟过程中只能执行部分指令片段,对于大量依赖于第三方库调用的指令序列则无法模拟。当然,轻量级虚拟执行本身就不是追求完整模拟整个软件行为,而是从指令层面对恶意行为进行捕获。

轻量级虚拟执行引擎可以作为一个普通的用户态进程,跑在操作系统上。为了提高检测性能,可以在用户态跑多个轻量级虚拟执行引擎。每个引擎内部集成了一个指令模拟器,将引擎接收的数据放在模拟器里面进行模拟执行。通过模拟器对外的API接口,可以获取或控制模拟器执行状态和执行过程。比如让模拟器单步执行、获取当前模拟器执行指令EIP、获取当前寄存器状态等等。

在实际应用过程中,模拟执行的效率仍然远低于签名引擎,因此我们需要更多的技术来干预执行过程。而不能将所有的网络数据统统放到模拟器中进行执行。一般做法是轻量级虚拟执行引擎真正开始模拟运行之前,还是要通过一些反编译技术来做前置过滤。

2.5 基于二进制动态翻译的系统级虚拟执行技术

相较于传统沙箱,基于动态二进制翻译的系统级虚拟执行技术则具有更多优势。传统沙箱一般是通过HOOK系统API的形式对恶意样本的执行行为进行监控和恶意判断。因为这种监控是API级别的,所以他只能监控到恶意样本调用了哪些系统API,而这些API调用中间的山下文指令则不能进行检测。而基于二进制动态翻译的系统级虚拟执行技术,则是在指令层面对整个系统进行完整检测。因此不但能够检测恶意样本的关键API调用行为,还能够检测更多的恶意指令序列。比如一般虚拟机逃逸技术里面用到的特殊指令,则传统沙箱是无法进行检测的。

一个通常的系统级虚拟执行引擎的架构,我们可以看到虚拟机进程跑在主操作系统之上,这是一种完全的软件模拟技术。这种架构的缺点就是执行速度慢,模拟出来的硬件性能和物理硬件的性能相比会低很多。最新的虚拟执行技术则更多的使用硬件加速技术,让指令直接映射到物理硬件上。

新增的内核模块在主操作系统中打开了一个通道,用来连接虚拟机和物理硬件,将虚拟机运行的指令映射到物理硬件上,以达到给虚拟机进程提速的目的。虽然这种架构提升了虚拟机的性能,但主操作系统仍然处于核心地位,虚拟机中的客户操作系统对硬件资源的占用仍然受限很大。

为了让客户操作系统拥有更大的权限,出现了一种新的架构。新的架构在硬件和操作系统直接,新增一个薄薄的管理层,然后所有操作系统均跑在管理层上面。

因此不再存在主操作系统的概念,所以操作系统均跑在虚拟机管理层(Hypervisor)上面。其中有一个特权虚拟机系统,可以整个系统进行管理。因为特权虚拟机系统仅仅是做管理,因此可以分配很少的资源。然后将其余资源分配给其他虚拟机进程。

对于AAS来说,选择合适的虚拟执行技术比较重要,目前综合考虑性能和业务要求,采用了带硬件加速的虚拟执行技术。第一种速度太慢,第三种虚拟执行技术,适用于完全虚拟化的产品,也就是把整个系统的所有东西全部放入虚拟机里面。

作者简介:

夏飞(1981-),江苏南京人,江苏省电力公司信息通信分公司,工程师,研究方向:信息安全。

猜你喜欢

模拟器引擎威胁
了不起的安检模拟器
盲盒模拟器
划船模拟器
人类的威胁
受到威胁的生命
面对孩子的“威胁”,我们要会说“不”
蓝谷: “涉蓝”新引擎
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
动态飞行模拟器及其发展概述