非包还原恶意代码检测的特征提取方法
时间:2013-12-28 10:10 文章来源:http://www.lunwenbuluo.com 作者:王光卫 陈健 范明钰 点击次数:
【摘要】恶意代码在网络中传播时不会表现出恶意行为,难以通过基于行为的检测方法检测出。采用基于特征的方法可以将其检测出,但需要进行网络包还原,这在大流量时对网络数据包进行还原不仅存在时空开销问题,且传统的特征提取方法提取的特征往往过长,容易被分割到多个网络数据包中,导致检测失效。本文提出非包还原恶意代码特征提取,采用自动化与人工分析相结合、基于片段的特征码提取,以及基于覆盖范围的特征码筛选等方法,实验结果表明,对恶意软件片段具有一定识别能力。
【关键词】特征码提取;非包还原方法;恶意代码检测
1引言
网络的普及为恶意代码传播带来了巨大的方便。通过网络,恶意代码容易实现大规模的传播,给网络安全带来巨大威胁。如果能通过对网络传输包的分析,检测出恶意代码的传播,对预警恶意代码的大规模爆发具有重要意义。
目前流行的恶意代码检测方法,主要有基于行为的和基于特征码的恶意代码检测方法,以及混合型的检测方法。传统的反病毒软件,大多基于特征码,其主要思路是,通过静态扫描文件内容,将文件内容和特征库中的特征进行匹配。因此,特征码的提取是这种检测方法的技术核心,一般通过对恶意代码进行逆向分析,提取具有恶意代码特征代码段的方法获得。特征码检测方法的优点是,对特征库中存在的恶意代码具有非常高的检测成功率,能精确地检测出恶意代码的类型甚至是恶意代码的具体名称,能在恶意代码首次进入计算机的时候而不是恶意代码运行以后进行检测。其缺点也很明显,需要频繁更新特征库,不能检测未知和变形的恶意代码,对于恶意代码的每一种变形,都需要在特征库中加入相应的特征,才能检测对应的恶意代码,导致特征库过于庞大。另一类基于行为的恶意代码检测方法,是在程序代码运行期间,监视其行为,当程序的行为触发预定义规则的时候,发出警报并挂起恶意行为。这种检测方法的优点是能检测未知和变形的恶意代码,不需要频繁的检测规则库更新,但是它的误报率和漏报率相对特征码检测方法要高,且必须恶意代码运行在系统中以后才能检测。由于基于特征码检测方法在检测效率和准确率等方面的优势,相对于基于行为的检测方法得到了更广泛的应用。
由于恶意代码在网络中传播的时候,与正常网络通信行为无任何差异,并不会表现出任何恶意行为,所以基于行为分析的检测方法不能用于检测在网络上正在传播中的恶意代码。特征码检测方法可以用于检测通过网络传播中的恶意代码,但是在大流量网络中对网络数据包进行还原,存在时间和空间开销问题,而且传统的特征提取方法提取的特征往往过长,在网络传输中,这些特征很容易被分割到多个网络数据包中,导致检测失效。另外,现在的恶意代码的种类层出不穷,数量越来越多,导致特征库也越来越庞大,特别是在对网络数据包检测时,匹配特征库花费的时间过长,要么会影响网络的吞吐量,要么会导致丢包率过高,漏报率提升。
本文提出非包还原恶意代码检测的特征码提取方法(Non-Packets-ReducingBasedMalwareSignatureExtractionMethod,以下简称NPR恶意代码特征提取方法),采用了自动化与人工相结合的恶意代码分类方法、基于片段的恶意代码特征提取,以及基于覆盖范围的特征码筛选技术,在一定程度上解决了上述问题,实验结果表明,效果较好。
2NPR恶意代码特征码提取方法
NPR恶意代码特征提取方法,其基本思想是对恶意代码样本库中的恶意代码进行分类,然后对每一类恶意代码提取若干能表征此类恶意代码的特征码,最后对提取到的特征码进行筛选,选择满足条件的特征码来构建特征库,如图1所示。这种方法的优点是,能显著减小特征库的规模,明显减少匹配特征库的时间花费,同时有效降低特征码因为文件被分割被截断的概率,降低漏报率。
2.1自动化与人工相结合的分类
对恶意代码样本按相似性进行分类,这是NPR特征码提取方法的第一步,也是关键步骤,只有对恶意代码进行准确的分类,后面才能提取得到同一类恶意代码的共同特征。
对于恶意软件的相似性,即分类准则,我们采用(加载方式、自身的隐藏、对硬件和系统注入、复制与传播、危害系统功能)五个方面进行表征,对于不存在某一或某些方面功能的情况,该项可以空缺。
具体实施的时候,如果采用人工方式进行分类,可以准确掌握恶意软件的功能和技术特点,实现对恶意软件的精确分类。但是由于恶意代码的数量巨大,这样做工作量巨大,需要大批训练有素的工程人员,成本较高。也可以采用开发自动分类系统,进行自动化分类,但是由于自动分类缺乏对代码语义的解析,可导致分类不够精确。我们采用机器辅助人工分类的方法。为了提高分类的效率,借助了开源虚拟机进行开发。自动分类系统先对开源的虚拟机进行裁剪,去掉不必要的功能,以提高虚拟机的运行效率,然后在虚拟机中安装相应的操作系统,将内核模式的监控程序加载到操作系统内核,以监控恶意软件加载和运行过程的特征,最后让恶意软件在虚拟机中运行起来,把具有相似特征的恶意软件归为疑似同一类恶意软件。采用这种方法实现对恶意软件进行自动分类的技术优势是分类速度很快,同时通过监控虚拟机可以获得程序执行时底层的信息,准确性相对较高。最后分析人员对自动分类系统的结论进行核实,实现恶意软件的准确分类。
2.2基于片段的特征码提取
传统方法提取的恶意软件特征码,是在恶意软件的整个空间范围内寻找能唯一标识的该恶意软件的字段,这些字段构成了其特征码。因此,采用这种方法得到的恶意软件的特征码具有全局性,在使用特征码进行匹配时,匹配的范围要求使用整个恶意软件。
基于NPR特征码提取方法与此不同,它是对恶意软件的片段进行特征码提取。对于提取到的较长片段恶意软件特征码,由于获得的信息比较全面,因此误报率相对较低,但进行检查时也要求使用较长的恶意软件片段,否则其漏报率将显著提高;相对的,对于提取到的较短片段恶意软件特征码,由于要求的信息较少,因此误报率相对较高,但在检测时不需要获得恶意软件的完整样本,在只能获得较短的恶意软件片段时也能获得较好的检测效果。基于片段的特征码提取思路是,按照前述恶意软件分类方法,同一类的恶意软件必定有相似的代码段片段,或者相似的特殊指令的调用。这种NPR特征码提取方法采用静态启发式技术来进行特征码的提取,主要是因为静态启发式技术能进行代码级的分析,对未知的恶意软件也有一定的检测能力。
因此,可以对每一类恶意软件的特征代码段采用静态启发式分析技术进行代码级的分析,模拟代码执行逻辑,提取若干条特征码。由于是对每一类恶意软件相类似的代码段进行特征提取,这样的特征码具有通用性,在一定程度上避免了为每一个恶意软件提取一个或多个特征,导致特征库过于庞大的问题。采用代码静态启发式分析技术提取的特征码视为某种语义行为的操作序列,可以是连续的代码序列,也可以是由通配符连接的多个代码序列。
为了更好地在漏报率和误报率之间做好平衡,使其误报率、漏报率和检测成功率都控制在合理的范围之内,需要在为NPR特征提取方法获得的特征码中引入采用传统方法提取的特征码中没有的参考量,即特征码在恶意软件中的跨度。本文使用特征码的覆盖范围的概念,来精确表示每条采用NPR特征码在恶意软件中的跨度。所谓特征码的覆盖范围,是指在采用NPR特征码提取方法获得的特征码的第一条指令和最后一条指令在恶意软件中的实际间隔长度,单位用字节表示。特征码覆盖范围的信息需要在构建特征库的同时进行收集,并取每一条特征所对应的恶意软件片段的最大值。
2.3基于覆盖范围的特征码筛选
最后一步是对提取到的每一类恶意软件的通用特征码进行筛选。如果提取到的特征码的覆盖范围越小,在恶意软件通过网络传输时或者将本身代码分段注入到其他系统文件中时被分割的几率就越小。
因此筛选的最重要的依据是特征码的覆盖范围。特征码的覆盖范围表示了特征码在理想状况下能够识别恶意软件所需要的最短的片段长度。特征码的覆盖范围越小,说明它工作需要的特征码片段的长度越短,在实际应用中该特征码被分割的可能性也越小,检测的成功率越高。因此在提取特征码和筛选特征码时要尽量挑选覆盖范围小的特征码。在对每一类恶意软件提取到的通用特征中选择特征码覆盖范围小特征码来构建特征库;在特征码覆盖范围相似的情况下,可以优先选择特征码长度相对较小的特征码来构建特征库。这样不仅可以有效降低特征码被分割概率,也能在一定程度上减小特征库的规模,提高匹配特征库的效率。
3实验设计与实验结果分析
为了测试NPR恶意代码检测的特征的性能和效果,从恶意软件样本库中随机选择1000个恶意软件样本,大小为3GB的文件组成测试样本,设计两个实验来测试检测效果。
3.1不同特征码的覆盖范围
本节统计了基于恶意软件分类的检测引擎使用的特征库中,恶意软件的加载方式、自身的隐藏、对硬件和系统的注入、复制与传播、危害系统功能的五大类型特征码的覆盖范围的分布情况,结果如图2所示。
- 论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
- 论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
-
- 论文投稿客服QQ:
2863358778、
2316118108
-
- 论文投稿电话:15380085870
-
- 论文投稿邮箱:lunwenbuluo@126.com