用于网络入侵检测系统的快速匹配方法技术方案

技术编号:6619569 阅读:352 留言:0更新日期:2012-04-11 18:40
本文提出一个创新的、不同的模式匹配方法:我们把数据包的有效载荷划分成多个固定长度的块,逐个地对每一块执行模式匹配。对于每一个块仅需要较少数量的比较,这是基于这样一个事实:网络入侵检测系统中正常的数据流几乎不与任何病毒签名相匹配,而且我们需要比较的大部分密钥都很短。对多个密钥的并行检查加快了处理速度,减少指令间数据相关性。对于非固定长度的正则表达式密钥,我们的算法被用作一个哈希表来尽可能避免对大部分数据包的进一步检查。我们的算法只需要少量的内存来存储经常使用的数据,这些数据存储在高速缓存(Cache)中,因此CPU绝大部分时间并不需要访问主内存。内存访问延迟的时间通常是数百倍于CPU时钟周期,由于需要很少的内存访问,我们的算法加快了模式匹配的速度。

【技术实现步骤摘要】

【技术保护点】
1.一种基于Snort网络入侵检测系统的快速字符串匹配方法,其中,把数据包的有效负荷划分成多个相同大小的块,每一块的长度是L字节,而且需要3个长度为L-比特的窗来记录暂时的结果。用来记录正在被检查的块的结果的窗被称为CW,用来记录前一个块所产生的结果的窗称为PW,用来记录由当前块产生并用于下一个块匹配的结果的窗被称作NW,该方法包括以下步骤:(1)对于第一个块,将这三个窗中的比特全部设定成0,并且将一个计数器“CNT”初始化为L;(2)如果CNT是L,将当前块与密钥的第一个字符的L个副本进行NXOR(异或非)运算,并将该L-比特的结果存储至CW中;如果不是,将当前块与密钥的下一个字符的L个副本进行NXOR运算,随后与CW进行AND运算,并将结果存储至CW;(3)如果这是密钥中的最后一个字符,且新的CW不是0,则就找到了匹配;如果不是,则进入第四步;(4)如果PW和CW都是0,则将{CW,NW}向右移CNT个比特,然后将NW复制至PW,设置CNT为L并移动至下一个块并进行至步骤2以进行进一步的检查;(5)如果PW全部是0,且CW除了最低有效比特之外也全是0,则将{CW,NW}向右移CNT个比特,然后将NW复制至PW,将CNT设置成L并移动至下一个块并进行至步骤2以进行进一步的检查;(6)如果PW不是0,或者CW不是0或1,则将{PW,CW,NW}向右移1个比特,并将CNT数减1;(7)回到步骤2。...

【技术特征摘要】

【专利技术属性】
技术研发人员:张萌萌
申请(专利权)人:北方工业大学
类型:发明
国别省市:11

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

1