一种基于多模式的恶意代码匹配方法及装置的制造方法

文档序号:9888027阅读:342来源:国知局
一种基于多模式的恶意代码匹配方法及装置的制造方法
【专利说明】一种基于多模式的恶意代码匹配方法及装置
[0001]
技术领域
[0002]本发明涉及信息安全技术领域,尤其涉及一种基于多模式的恶意代码匹配方法及
目.ο
【背景技术】
[0003]AC算法是Alfred V.Aho和Margaret J.Corasick于1974年提出的一个经典的多模式匹配算法,可以保证对于给定的长度为η的文本,和模式集合P {pi, p2,...pm},在0(n)时间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关。从本质来说,AC算法是一个有限状态自动机算法,在字符串的匹配和操作之前,先对模式集进行预处理,建造自动机。在处理字符串时只需要对文本扫描一次,即可匹配出模式串。
[0004]目前,AC算法作为一种线性复杂度的多模式匹配算法,在IDS(入侵检测系统)和恶意代码特征匹配等方面具有很广泛的应用。但是,当特征库中的特征码较多时,就会因为创建自动机引起过大的内存开销。在AC状态机中,由于是按照字节匹配,所以每个节点都有256个指针以对应ASCII字符,在实际匹配过程中,如果下一个字符在模式集中不存在,则需要将指针置空,并利用fail表跳转到下一节点。实际应用中,由于模式集不可能包括全部256个ASCII码字符,所以大量指针置空,相应的,需要的指针空间也就越大,对内存的要求也就越高。因此,当特征库中特征码过多时,传统AC算法不仅不利于硬件实现,而且还会对算法的匹配速度造成影响。

【发明内容】

[0005]本发明所述的技术方案通过缩短待检测样本长度和压缩存储生成的有限状态机的手段,减少系统资源占用;并通过坏字符跳转的原则减少参与匹配的字符数量,从而有效缩短匹配所需的时间。
[0006]本发明采用如下方法来实现:一种基于多模式的恶意代码匹配方法,包括:
基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;
判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
对于生成的有限状态机进行压缩存储;
基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
[0007]进一步地,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
[0008]进一步地,所述压缩存储方法包括:矩阵压缩存储或者Bitmap压缩存储。
[0009]本发明可以采用如下装置来实现:一种基于多模式的恶意代码匹配装置,包括: 预处理模块,用于基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;
状态机生成模块,用于判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
压缩存储模块,用于对于生成的有限状态机进行压缩存储;
匹配模块,用于基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
[0010]进一步地,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
[0011]进一步地,所述压缩存储方法包括:矩阵压缩存储或者Bitmap压缩存储。
[0012]综上,本发明给出一种基于多模式的恶意代码匹配方法及装置,与传统的AC算法匹配模式不同,本发明首先将待检测样本进行缩短处理,去除无意义的字符;基于特征库中的全部特征码生成树状有限状态机;并将所述有限状态机基于一定范围进行压缩存储;基于坏字符跳转的原则将有限状态机与待检测样本进行匹配,最终给出匹配结果。
[0013]有益效果为:本发明通过缩短待检测样本长度的手段,减少匹配时间;将特征库中的特征码生成有限状态机并压缩存储,从而减小内存压力;基于坏字符跳转的原则进行匹配操作,减少参与匹配的字符数量,进一步缩短匹配所需时间。
【附图说明】
[0014]为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1为本发明提供的一种基于多模式的恶意代码匹配方法实施例流程图;
图2为本发明提供的方法实施例中构建的树状有限状态机示意图;
图3为本发明提供的方法实施例中基于坏字符跳转原则跳转后的树状有限状态机示意图;
图4为本发明提供的一种基于多模式的恶意代码匹配装置实施例结构图。
【具体实施方式】
[0016]本发明给出了一种基于多模式的恶意代码匹配方法及装置实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
本发明首先提供了一种基于多模式的恶意代码匹配方法实施例,如图1所示,包括:SlOl基于特征库中特征码的语义特征对待检测样本进行筛选,缩短待检测样本长度;S102判断特征库是否存在更新,若是,则重新基于各特征码前缀构建树状有限状态机,否则沿用已生成的有限状态机;
其中,如果在匹配过程中特征库中的特征码没有改变,则不需要重新构建有限状态机;
例如,特征码分别为 ethernetmovesme, ethernetisking, ethernetisdead 和ethernetforever,要检查的数据包内容为nothingtoworryaboutinthis ;则基于各特征码前缀构建的树状有限状态机如图2所示;
S103对于生成的有限状态机进行压缩存储;
S104基于坏字符跳转的原则利用压缩存储的有限状态机从后向前匹配待检测样本。
[0017]其中,所述坏字符跳转的原则为:当树状有限状态机与待检测样本从后向前匹配时,当有限状态机中的字符与待检测样本匹配失效时,则有限状态机向右跳转到下一个失效字符处,如果有限状态机中并不存在该失效字符,则有限状态机向右跳转到最小特征码长度处。
[0018]例如:如图2所示的有限状态机,从待检测样本的字符r开始匹配,显然r与特征码中的字符e不匹配,由于有限状态机的下一个r出现在深度5的位置,特征码中最小长度为14,根据坏字符跳转,有限状态机的字符串树可以向左移动5个字符,跳转过程如图3所不O
[0019]优选地,所述缩短待检测样本长度的方法为:利用多模式近似匹配算法在预设错误率下缩短待检测样本长度。
[0020]其中,所述多模式近似匹配算法可以采用散列多模
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1