一种基于特征值的多模式匹配算法制造技术

技术编号:16970024 阅读:25 留言:0更新日期:2018-01-07 06:48
一种基于特征值的多模式匹配算法是采用二次匹配的思想,完成改变了现行的匹配算法。把处理速度的瓶颈转移到由逻辑实现的第一次模糊匹配,过滤掉大量正常数据包,接着对小量可疑数据包进行第二次精确匹配。最好第一次和第二次匹配都由硬件逻辑来实现,以减轻系统的负担,提高运行的效率。求特征值的方法有多种,如求和计算或循环冗余计算等,但它们应尽量满足先前给出的求特征值条件。

【技术实现步骤摘要】
一种基于特征值的多模式匹配算法
一种基于特征值的多模式匹配算法主要是涉及计算机算法领域。
技术介绍
入侵检测是对网络或系统进行监视,发现各种攻击的企图,行为或攻击结果,采取相应的响应措施以保护系统资源的机密性、完整性和可用性。根据入侵检测系统对数据分析方法的不同,可将其分为两大类:异常入侵检测和误用入侵检测。误用入侵检测⋯是当前的主流,它的核心是规则库的组织和模式匹配算法。但随着网络速度的迅速提高,规则库的日益增大,误用入侵检测暴露出其致命缺陷:检测速率太低,在一个满负荷的lOOM以太网上,将不得不丢掉30%一75%的网络数据包[2J,这将漏掉对许多可疑数据包的检测,严重影响了系统检测的准确性。
技术实现思路
在入侵检测系统中,字符串匹配消耗了大量的系统资源(主要是CPU资源),严重制约着系统检测速率的提高。当前常用的匹配算法主要有:KMP算法BM算法等。这些算法都有一个共同特点:一次性准确匹配。它们的思想是在数据包中对模式字符串直接匹配,若不匹配则根据某种启发式策略跳过一定量字符后接着匹配。在实际高速网络中未发生带宽类型攻击的情况下,真正的入侵数据包只占网络总流量的较少一部分。系统资源的消耗主要不是在对入侵数据包的检测,而是对正常数据包的穷举匹配。针对这一实际的情况,本文提出了基于特征值的快速匹配算法。定义1特征值:一个字符串经过某种简单运算而得到的一个值,这个值称为该字符串的特征值,用T标志。一般而言,字符串和特征值可能存在多对一的关系,即一个字符串有且仅有一个特征值,而多个字符串以一定概率对应于同~特征值。我们的目的就是选择合适的简单运算,尽可能的降低不同字符串对应相同特征值的概率。基于特征值匹配算法的基本思想是:把数据包中字符串的特征值与等长模式字符串的特征值相比较,若不等则两个串肯定不匹配若相等则两个字符串以极大概率匹配,需要进行第二次匹配确认。简单地说,就是采取两次匹配的方法,首先过滤掉大量肯定不匹配的字符串,接着进行第二次准确匹配。第一次匹配算法要求简单,由硬件直接实现,以减轻CPU的负担,而且要能过滤掉绝大多数正常数据包。首次匹配是关键所在,这里主要详细探讨基于特征值的第一次匹配算法。设模式字符串S={S1,S2,S3,…,Sm},长度为m,特征值为r。数据包字符串P={P1,P2,…,Pm},长度为n。首先求出数据包中长为n的字符串{P1,P2,…,Pm}的特征值,然后与模式字符串的特征值T相比较,若相等则进行第二次匹配,否则两个字符串肯定不匹配,数据包字符串P往右平移一个字符继续匹配{P2,P3,…,Pm+1}。平移后的特征值可以由平移前的值经过简单运算得到,这一过程支持硬件实现。为了提高系统的并行度,可以采用分组匹配的方法。首先把数据包分成┌n/m┐个组,每组长度为m,然后用硬件同时计算各组的特征值,把特征值与模式字符串的特征值相比较,若相等则进行第二次匹配,否则同时往右平移一个字符继续匹配,总共只需平移m次便可完成整个匹配计算过程。特征值的计算方法有多种,但它们应符合以下几点要求:(1)计算简单,能由硬件电路直接实现,以减轻CPU负担。(2)能过滤掉大量的正常数据包,也就是说,和同一特征值对应的字符串应较少。(3)平移后的特征值可以由平移前的特征值经过简单运算得出,以减少特征值的计算次数。定义2位向量:在一个字符串中,取每个字符相同位上的比特按字符顺序构成的二进制串称为位向量。任何一个长为m的字符串有且仅有8个长为Be/的位向量,例如字符串“GOOD”中各个字符的ASCII码为{01000111、01001111、01001111、01000100},取每个字符的最低位构成的位向量为{l110}。该字符串共有8个长为4的位向量,分别是{0000、l1l1、0000、0000、0110、l1l1、l110、l110}。根据位向量求出的特征值称为位特征值,用t.标志。8个位特征值组成该字符串的特征值T,T=[t7、t6、t5、t4、t3、t2、t1、t0]。定义3过滤率:第一次匹配过滤的正常数据包量与总流量的比值称为过滤率,一般要求第一次匹配的过滤率越高越好。当网络中没有入侵包时,准确匹配算法的过滤率是100%。字符串中各个字符通过异或即可得到该字符串的异或特征值。为不失一般性,设字符串为{S1,S2,…,Sm},则该字符串的特征值{S1⊕S2⊕S3…⊕Sm},共8个比特。例如,模式字符串“CMD”中各字符对应的ASCII码为{01000011、01010l11、01001101},它的特征值T={C⊕M⊕D}={01011001}。按所有代码出现的概率相同计算,则位向量中“1的个数为奇数和偶数的概率是相同的,即一个位特征值的过滤率为50%。各个位特征值之间相互独立,8个位特征值的过滤率为1-(1/2)8=99.61%。也就是说,需要第二次匹配的可疑数据包是总流量的0.39%。实验结果表明,其平均过滤率为99.8%,可以采用简单的异或逻辑来实现平移前的特征值与移入和移出的字符异或便可得出平移后的特征值。例如:字符串“POWER”中匹配“PING时,首先求出“POWE”的特征值T1=[P⊕O⊕W⊕E]=[0000l101]。它与“PING的特征值[00010000]不匹配,分组往右平移一个字符,变成“0WER”。该分组的特征值由[T1⊕P⊕R]两次异或得出等于[000011l1],与[00010000]也不相等,由此得知字符串“P0WER”中不包含模式串“PING”,匹配结束。当模式串长为m时,第一次求特征值需要进行(m-1)次异或运算,平移后的特征值只需2次异或运算。多特征值计算逻辑实现,为了加快处理速度,采用移位寄存器和异或逻辑来同时求出不同长度字符串的特征值。以后每移一个字符便可同时得出各种长度字符串的异或特征值,再与模式库中相同长度模式字符串的特征值相匹配,即R7中的字符串特征值与模式库中L=7的分支匹配,R6的字符串特征值与模式库中L=6的分支匹配等等。匹配过程的处理;为了提高匹配速度,采用直接地址映射的方法来完成对模式特征值的查找过程。在模式库初始化时,给每一种长度的规则分支分配256字节的存储空间,每个存储单元中保存着一个指针,该指针指向模式特征值等于其偏移地址的规则。如果没有模式特征值和其偏移地址相等,则指针为空;若有多个规则和其偏移相等,则其它规则依次链接在指针指向的第一个规则后面,形成一个链表结构。当特征值计算电路得出某一长度字符串的特征值后,直接找到偏移地址是字符串特征值的存储单元,若该存储单元指针为空,则表明该字符串与模式库不匹配;否则和指针指向的规则进行第二次匹配。在Snort规则库中抽出100个规则形成模式库结构,指针非空的存储单元占总存储空间的2.07%,对应于同一存储单元的规则占0.19%。从特征值的计算至找到对应长度模式特征值的时间非常短,基本可以忽略。在多模式匹配中,也可采用模3方法计算特征值,其过滤率为99.985%,逻辑实现与异或逻辑实现相似。如果采用模5方法计算特征值,其过滤率可达99.99974%,但实现比较复杂,数据的延时也会增加,成为处理的瓶颈,因此需要多个逻辑并行处理。本文档来自技高网...

【技术保护点】
一种基于特征值的多模式匹配算法其特征将模式库中的规则按其长度分组。

【技术特征摘要】
1.一种基于特征值的多模式匹配算法其特征将模式库中的规则按其长度分组。2.根据权利1的要求其在组内再按特征值排序并建立索引,组内特征值相同的规则通过链表的形式链接在同一特征值索引上。3.根据权利2的要求其通过第一次匹配,找到可疑...

【专利技术属性】
技术研发人员:杨际荣
申请(专利权)人:江苏华扬信息科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1