- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种改进BM匹配入侵检测算法及其应用
一种改进的BM匹配入侵检测算法及其应用
摘要:该文在介绍了入侵检测技术以及相关的模式匹配算法后,提出了一种改进的BM匹配入侵检测算法XBM,提高了匹配的效率,增强了入侵检测系统的性能。
关键词:XBM;入侵检测;模式匹配
中图分类号:TP301文献标识码:A文章编号:1009-3044(2010)22-6198-03
当前的入侵检测还有一些不足之处,而模式匹配技术在入侵检测中占有重要的地位,所以提高模式匹配的效率是改善入侵检测算法的关键。在介绍了入侵检测技术的不足之后,本文将会详细介绍以BM算法为主的模式匹配算法,然后对其改进,提出一种改进的NBM算法,在时间复杂度和空间复杂度上提高了模式匹配的效率。
1 当前入侵检测的不足
入侵检测系统的不足之处主要表现在以下几个方面[1]:
1) 误报漏报比较多。入侵检测系统中对入侵数据的研究尚不足,因此在实际应用中会有比较高的误报和漏报率。2) 模式特征的问题。很多入侵检测系统都使用模式匹配的方法进行分析,但是特征的匹配存在效率和效果的矛盾。3) 加密网络的问题。目前的入侵检测系统还难以处理经过加密的会话,虽然已经存在不少入侵检测方法,但是将它们有效地用在处理加密会话的入侵检测中还比较困难。
针对以上不足之处,有必要对模式匹配算法进行分析和改进。
2 BM模式匹配算法
从本质上讲,模式匹配技术是一种攻击判别技术,它分析入侵行为,并从中抽取某些特征或表达,建立一种攻击行为模型,然后依据这种行为模型所代表的攻击意图的行为特征来判断它是否属于攻击行为。
传统的模式匹配算法采用的是单字符移动方式,即模式串每和文本串匹配一次,都仅仅移动一个字符,这样大大降低了查找的速度;另外,模式串与文本串每次对齐后都要进行全部字符的匹配,经常出现前面多数字符匹配而后面少量字符不匹配的情况,大大降低了匹配的效率。
BM(Boyer-Moore)算法是一种经典的字符串模式匹配方法,有效解决了上述问题。在进行模式匹配的时候,先对模式串进行预处理,找到不匹配时文本串指针的偏移值,然后“将模式串和文本串的左侧对齐,接着从右向左将模式串的字符与文本串的字符进行比较,如果完全匹配,就成功退出;如果比较中出现不匹配的情况,则计算模式串右移的距离,把模式串向右移动该距离,然后开始新一轮的比较[2]”。
针对单个字符移动的问题,BM模式匹配算法提供了两个解决问题的规则:好后缀规则和坏字符启发规则。
坏字符启发规则使用模式串中的失配字符作为判断标准,如果失配字符存在于模式串当中,那么就用这个失配字符和文本串中的坏字对齐;如果失配字符不在模式串当中,那么只有在文本串坏字之后的字串中才能找到能够和模式串相匹配的字符,因此直接将模式串移动到文本串坏字后面即可,不必仅仅移动单个字符,例子如下:
文本串T:e c d a b d c a d b
模式串P:e c b a b (1)
e c b a b (2)
假设位移函数是skip(b),而且当模式串中第j个字符等于b时,skip=m-j;可以发现上面的例子中失配字符是b(下划线),在模式串中第3个位置(j=3),而模式串长度m=5,所以移动距离m-j=2。将模式串向右移动两个字符后如式2所示,此时刚好将模式串中的失配字符b匹配了文本串中的字符b。
另外,当模式串中不含有b,则此时的位移函数skip=m;
文本串T:e c d a b d c a d b
模式串P:e c a c c (1)
e c a c c (2)
由于模式串中并不含有失配字符b,所以将模式串向右移动5(模式串长度)个字符,就把模式串移动到了坏字之后。
与坏字符启发规则不同的是,好后缀启发规则使用模式中已匹配的字段与文本串进行对齐,而且模式匹配中已经匹配字段的判断是从右向左进行的。
由BM算法的原理我们可以知道,BM模式匹配算法用到了上次匹配的结果,因此在一定程度上提高了模式匹配的效率;但也应该注意的是,在BM模式匹配过程中,很少用到好后缀规则,并且好后缀规则的使用没有规律性,反而增加了算法的时间开销:预处理阶段中,计算好后缀数组的过程其实也是在进行模式匹配;查找阶段进行的比较坏字符数组和好后缀数组的过程也增加了计算复杂性,因此有必要对BM匹配算法进行改进,并结合入侵检测算法的不足,将BM匹配算法用于入侵检测中。
3 改进的BM匹配算法
3.1 改进的BM匹配算法
分析一下BM匹配算法中的好后缀规则,我们可以发现它的一些不足之处[3]:
1) BM匹配算法中的好后缀规则本质上也是一种模式匹配算法,因此如果模式串的长度比较大,那么随后的匹配运算量
文档评论(0)