Snort入侵检测中模式匹配算法的研究和改进.docx

Snort入侵检测中模式匹配算法的研究和改进.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

Snort入侵检测中模式匹配算法的研究和改进

?

?

刘凯

摘要:入侵检测系统Snort是一种常用的入侵检测软件,该文其分析系统的检测引擎及其采用的模式匹配算法尤其是BM算法进行了深入的分析和讨论,在分析的基础中对BM算法进行改进,使用一种新的模式匹配算法,以减少匹配时间,提高匹配效率,达到提高算法的平均性能和较少资源消耗的目的。

关键词:入侵检测;模式匹配;算法

:TP393:A:1009-3044(2014)34-8117-02

入侵检测系统(Intrusiondetectionsystem,简称“IDS”)[1]是一种对网络传输进行即时监控,在发现可以传输数据时发出警报或者采取主动反应措施的网络安全设备。

1入侵检测系统Snort

Snort[2]入侵检测是一个基于Libpcap的轻量级入侵检测系统软件,是从著名的tcpdump软件发展而来的。它是个基于Libpcap包的网络监视软件,是一个十分有效的网络入侵监测系统。Snort入侵检测系统基本由四部分组成:嗅探器,预处理器,检测引擎,日志报警[3]。如图1所示。

其中检测引擎,是Snort的核心部件,主要功能是规则分析和特征检测。当数据包从预处理器送过来后,检测引擎依据预先设置的规则检查数据包,使用某种模式匹配算法一旦发现数据包中的内容和某条规则相匹配,就通知报警模块。

2单模式匹配算法研究与改进

为了提高入侵检测系统的准确率,减少误报率,在实际的入侵检测系统中一般大都采用精确的模式串匹配算法。模式匹配问题分为单模式匹配算法和多模式匹配算法[4]。该文主要对单模式匹配算法(BM)进行研究和改进。

2.1单模式匹配算法(BM)

仅一次在文本串中查找一个模式串出现的过程,称为单模式匹配,相应的算法称为单模式匹配算法。目前比较常见的单模式匹配算法有KMP(Knuth-Morris-Pratt)算法,BM算法,BMH算法等。其中,BM算法由于使用了启发式有哪些信誉好的足球投注网站,采用从右向左的比较方式,使用好后缀和坏字符来决定模式串移动的距离,通常同时使用两个来加快查找速度。能够在有哪些信誉好的足球投注网站过程中跳过大部分文本,从而使执行效率得到很大的提高,因而在IDS中运用最为广泛。

Boyer-Moore算法(简称为BM算法)[5]是一个著名的字符串匹配算法,它把被匹配的字符串模板与匹配字符串自左向右对齐,并从字符串的最后一个字符开始自右向左进行比较。BM算法并不是对每个字符依次进行比较,当出现不匹配的字符时,它使用两步启发式有哪些信誉好的足球投注网站过程来决定字符串向右移动多少个字符继续与文本串进行比较,从而减少比较次数。

其中:nm,需要从T中查找出与P完全匹配的子串,并返回该子串在正文串的首字母的位置。

BM算法采用从右向左比较的方法,同时应用到了两种启发式规则,即坏字符规则和好后缀规则,来决定向右跳跃的距离。BM算法的基本流程:设文本串T,模式串为P。首先将T与P进行左对齐,然后进行从右向左比较。若是某趟比较不匹配时,BM算法就采用两条启发式规则,即坏字符规则和好后缀规则,来计算模式串向右移动的距离,直到整个匹配过程的结束。

2.2BM算法改进

尽管BM算法是拥有高效,考虑全面,简便易懂等优点,但是由于其使用了两个数组,预处理时间较大,匹配次数较多,造成许多重复、不必要的比较,还是存在很多需要改进的地方。

通过对BM算法的分析,我们可以发现,原算法虽然是用到了两种启发式规则,即坏字符规则和好后缀规则。但是,在算法的分析中我们看到,当进行字符或者字符串匹配时,大多数匹配都用到的规则是坏字符规则。因此我们可以只用坏字符规则,通过移动量和规定字符这两个方面对BM算法进行一些改进。

根据改进算法的思想,可以对BM算法进行如下改进。由文本串和模式串最后一个位置对应的字符的下一个字符做启发向右滑动。其作用在于在每次匹配失败后,把模式向右滑动的距离变大,减少了模式匹配中一些不必要的和重复的比较,缩短了模式匹配的时间。

首先,对模式串和文本串进行分析,将文本串中文本串与模式串最后一个位置对应的字符的下一个字符(假设为x)与模式串进行匹配。当字符x在模式串中不存在时,那么显然从x开始的m个文本不可能与模式串匹配成功,所以直接跳过,移动距离为模式串长度+1。当x在模式串中出现,并且x的前一位字符也存在于模式串中。移动模式串使字符对齐,计算偏移量。利用原BM算法进行匹配。当x在模式串中出现,但是x的前一位字符不存在于模式串中,计算移动模式串使字符x对齐时的偏移量和原BM算法中字符不存在模式串中时的偏移量,进行比较,取两者中的偏移量大的进行匹配。

2.3算法性能比较

分别对BM算法和改进后的BM算法进行性能测试,用同一主程序分别调用BM算法和改进后的BM算法进行匹配测试,匹

文档评论(0)

183****9213 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档