当前位置: 首页 > 专利查询>湖南大学专利>正文

一种面向高速网络的模式匹配方法组成比例

技术编号:3543091 阅读:234 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种面向高速网络的模式匹配方法,由计算机对每种攻击网络的数据流提取出特征值并按照规则语言将其写成规则模式;网络通信中,计算机通过检测系统将捕获到的数据包与所述规则模式进行匹配;如果匹配成功,则检测系统将其判断为攻击行为。本发明专利技术所述匹配步骤结合已有BM方法从比较方式和移动策略两个方面出发实现创新突破,大大提高了匹配效率。本发明专利技术适合于高速网络环境下网络入侵检测、网络入侵保护和计算机病毒特征码匹配等需要进行快速字符匹配的领域应用。

【技术实现步骤摘要】

本专利技术是一种字符串模式匹配的方法,适用于高速网络环境下网络入侵检测、网络入侵保护、计算机病毒特征码匹配等需要进行字符匹配的领域的应用。
技术介绍
目前模式匹配方法很多,其中应用最广泛的就是基于BM方法原理实现的模式匹配方法。BM模式匹配方法是一种精确单匹配方法,该方法利用启发式策略跳过不必要的比较来减少模式串与文本的比较次数来提高匹配效率。在进行匹配时将模式串与文本左端对齐,由模式串右端起向左逐个字符比较。开始阶段先对模式串的后缀与文本进行匹配,在完成一次尝试(无论匹配失败或者成功)后,利用移位函数将模式串向右滑动一定的距离,重新从模式串的后缀进行匹配。著名的轻量级入侵检测系统Snort的核心部分检测引擎中就采用了BM方法进行规则的匹配。但是由于该方法没有考虑已匹配的后缀与导致匹配失败的当前字符之间的相邻关系,使得字符串匹配的效率不够高。
技术实现思路
本专利技术要解决的问题是,通过分析已有模式匹配方法,针对现有字符串匹配方法的缺陷,适应当前高速网络对模式匹配高效率的需求,提出一种面向高速网络的模式匹配方法,即HPMM方法,用于高速网络环境下网络入侵检测、网络入侵保护和计算机病毒特征码匹配等需要进行字符匹配的领域,提高匹配-->效率。本专利技术的解决方案是,结合BM方法的比较方式,提出一种面向高速网络的模式匹配方法,首先由计算机对每种攻击网络的数据流提取出特征值并按照规则语言将其写成规则模式;网络通信中,计算机通过检测系统将捕获到的数据包与所述规则模式进行匹配;如果匹配成功,则检测系统将其判断为攻击行为;所述匹配具体包括如下步骤:(1)设所述捕获到的数据包中的正文串T=T1…Tn(长度为n)所述规则模式的模式串P=P1...Pm(长度为m),(n>>m)(2)给出滑动距离函数上述函数给出了正文串中可能出现的任意字符c在模式串中的位置(3)给出判断字符在模式串中出现的频次的函数;(4)T[1]和P[1]对齐,对P[m]与T[m]匹配;若P[m]与T[m]匹配不成功,则按步骤(5)计算出模式串向右移动的距离,右移相应距离;若P[m]与T[m]匹配成功,则比较模式P[1]与文本相应的字符,若P[1]匹配不成功,则按步骤(5)将模式串右移;若p[1]匹配成功,则依次对P[m-1]P[2]P[m-2]P[3]...进行匹配,依次类推,直到匹配完成。(5)计算向右移动距离,其移动步骤为:1):在失去匹配时,首先计算出由文本串最后一个字符,设为T[k],启发得到的右移位置k+Skip[k],其值记为k1;-->2):计算由文本串的下一个字符T[k+1]启发得到的右移位置k+1+Skip[k+1],其值记为k2;3):判断k1、k2的大小,如果k1>k2,再判断T[k+1]在模式串出现频次,用步骤(2)中的函数B(c)判断T[k+1]在模式串出现的频次。若B(T[k+1])=1,即T[k+1]在模式串只出现一次,则将模式串末端和T[k+1+m]处对齐进行新一轮的匹配;若B(T[k+1])=0,即T[k+1]在模式串只出现大于一次,则将模式串末端和T[k1]处对齐进行新一轮的匹配;如果k2>=k1,则将模式串末端和T[k2]对齐进行新一轮的匹配。本专利技术提供的上述面向高速网络的模式匹配方法HPMM,结合BM方法从比较方式和移动策略两个方面出发实现创新突破:一是打破了传统的从左向右或是从右向左的匹配方式,采用从模式两端向中间位置交替的匹配顺序,减少了在BM方法匹配过程中,出现模式的一部分后缀与文本匹配,而模式的前缀却不匹配情况下不必要的比较;二是同时考虑字符串后一位字母的唯一性,提高最大位移m+1的出现概率。本专利技术适合于高速网络环境下网络入侵检测、网络入侵保护和计算机病毒特征码匹配等需要进行快速字符匹配的领域应用。附图说明图1是本专利技术所述模式匹配方法的移动策略示意图;图2是实施例中BM与HPMM方法的测试数据结果;图3是实施例中测试数据包类型统计;图4是Snort中用BM方法和HPMM方法的处理时间的比较;图5是Snort中用BM方法和HPMM方法的所需内存的比较;图6是HPMM方法总体流程图;-->图7是Snort工作流程图。具体实施方式本实施例是HPMM方法在轻量级入侵检测系统Snort中的应用及性能测试,从图7可以看出,轻量级入侵检测系统Snort由数据包嗅探器、预处理器、检测引擎、报警输出模块四个基本模块组成。其最基本的功能部件是数据包嗅探器,数据包嗅探器只是Snort工作的开始,Snort取得数据包后先用预处理器进行处理,然后经过检测引擎中的所有规则链,如果有符合规则链的数据就会被检测出来。Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上;数据包记录模式将数据包记录在硬盘上;网络入侵检测模式是最复杂的,而且是可配置的,其可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。Snort就是先对每种攻击提取出其特征值并按照规则语言把它写成规则,然后把捕获来的数据包进行解析再与规则匹配,若匹配成功则为攻击行为。在运行中,入侵检测系统将当前操作系统的审计数据和网络中流经的数据包进行分析处理,从中筛选出与安全有关的信息,然后将其与数据库中的攻击模式相匹配,当发现有匹配的行为时,认为有入侵行为发生,然后就按照一定的策略进行响应,移动思路如图1。具体的匹配过程包括如下步骤:(1)设所述捕获到的数据包中的正文串T=T1…Tn(长度为n)所述规则模式的模式串P=P1...Pm(长度为m),(n>>m)(2)给出滑动距离函数-->上述函数给出了正文串中可能出现的任意字符c在模式串中的位置(3)给出判断字符在模式串中出现的频次的函数;(4)T[1]和P[1]对齐,对P[m]与T[m]匹配;若P[m]与T[m]匹配不成功,则按步骤(5)计算出模式串向右移动的距离,右移相应距离;若P[m]与T[m]匹配成功,则比较模式P[1]与文本相应的字符,若P[1]匹配不成功,则按步骤(5)将模式串右移;若p[1]匹配成功,则依次对P[m-1]P[2]P[m-2]P[3]...进行匹配,依次类推,直到匹配完成。(5)计算向右移动距离,其移动步骤为:1):在失去匹配时,首先计算出由文本串最后一个字符,设为T[k],启发得到的右移位置k+Skip[k],其值记为k1;2):计算由文本串的下一个字符T[k+1]启发得到的右移位置k+1+Skip[k+1],其值记为k2;3):判断k1、k2的大小,如果k1>k2,再判断T[k+1]在模式串出现频次,用步骤(2)中的函数B(c)判断T[k+1]在模式串出现的频次。若B(T[k+1])=1,即T[k+1]在模式串只出现一次,则将模式串末端和T[k+1+m]处对齐进行新一轮的匹配;若B(T[k+1])=0,即T[k+1]在模式串只出现大于一次,则将模式串末端和T[k1]处对齐进行新一轮的匹配;如果k2>=k1,则将模式串末端和T[k2]对齐进行新一轮的匹配。本实施例将BM方法和HPMM方法分别应用到Snort进行比较,操作过程-->为:(1)找到BM方法在Snort源文件中所在的位置。BM方法应用本文档来自技高网...

【技术保护点】
一种面向高速网络的模式匹配方法,首先由计算机对每种攻击网络的数据流提取出特征值并按照规则语言将其写成规则模式;网络通信中,计算机通过检测系统将捕获到的数据包与所述规则模式进行匹配;如果匹配成功,则检测系统将其判断为攻击行为,其特征在于,所述匹配包括如下步骤: (1)设所述捕获到的数据包中的正文串T=T↓[1]…Tn(长度为n); 所述规则模式的模式串P=P↓[1]…P↓[m](长度为m),(n>>m); (2)给出滑动距离函数 *** 上述函数给出了正文串中可能出现的任意字符c在模式串中的位置; (3)给出判断字符在模式串中出现的频次的函数; *** (4)T[1]和P[1]对齐,对P[m]与T[m]匹配; 若P[m]与T[m]匹配不成功,则按步骤(5)计算出模式串向右移动的距离,右移相应距离;若P[m]与T[m]匹配成功,则比较模式P[1]与文本相应的字符,若P[1]匹配不成功,则按步骤(5)将模式串右移;若p[1]匹配成功,则依次对P[m-1]P[2]P[m-2]P[3]…进行匹配,依次类推,直到匹配完成; (5)计算向右移动距离,其移动步骤为: 1):在失去匹配时,首先计算出由文本串最后一个字符,设为T[k],启发得到的右移位置k+Skip[k],其值记为k↓[1]; 2):计算由文本串的下一个字符T[k+1]启发得到的右移位置k+1+Skip[k+1],其值记为k↓[2]; 3):判断k↓[1]、k↓[2]的大小,如果k↓[1]>k↓[2],再判断T[k+1]在模式串出现频次,用步骤(2)中的函数B(c)判断T[k+1]在模式串出现的频次;若B(T[k+1])=1,即T[k+1]在模式串只出现一次,则将模式串末端和T[k+1+m]处对齐进行新一轮的匹配;若B(T[k+1])=0,即T[k+1]在模式串只出现大于一次,则将模式串末端和T[k↓[1]]处对齐进行新一轮的匹配;如果k↓[2]>=k↓[1],则将模式串末端和T[k↓[2]]对齐进行新一轮的匹配。...

【技术特征摘要】
1、一种面向高速网络的模式匹配方法,首先由计算机对每种攻击网络的数据流提取出特征值并按照规则语言将其写成规则模式;网络通信中,计算机通过检测系统将捕获到的数据包与所述规则模式进行匹配;如果匹配成功,则检测系统将其判断为攻击行为,其特征在于,所述匹配包括如下步骤:(1)设所述捕获到的数据包中的正文串T=T1…Tn(长度为n);所述规则模式的模式串P=P1...Pm(长度为m),(n>>m);(2)给出滑动距离函数上述函数给出了正文串中可能出现的任意字符c在模式串中的位置;(3)给出判断字符在模式串中出现的频次的函数;(4)T[1]和P[1]对齐,对P[m]与T[m]匹配;若P[m]与T[m]匹配不成功,则按步骤(5)计算出模式串向右移动的距离,右移相应距离;若P[m]与T[m]匹配成功,则比较模式P[1]与文本相应的字符,若P[1]匹配不成功,则按步骤(5)将模式串右移;若p[1]匹...

【专利技术属性】
技术研发人员:秦拯赵远武年华张生华
申请(专利权)人:湖南大学
类型:发明
国别省市:43[中国|湖南]

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

1
相关领域技术
  • 暂无相关专利