Snort入侵检测中模式匹配算法的研究和改进_第1页
Snort入侵检测中模式匹配算法的研究和改进_第2页
Snort入侵检测中模式匹配算法的研究和改进_第3页
Snort入侵检测中模式匹配算法的研究和改进_第4页
Snort入侵检测中模式匹配算法的研究和改进_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    snort入侵检测中模式匹配算法的研究和改进    刘凯摘要:入侵检测系统snort是一种常用的入侵检测软件,该文其分析系统的检测引擎及其采用的模式匹配算法尤其是bm算法进行了深入的分析和讨论,在分析的基础中对bm算法进行改进,使用一种新的模式匹配算法,以减少匹配时间,提高匹配效率,达到提高算法的平均性能和较少资源消耗的目的。关键词:入侵检测;模式匹配;算法:tp393 :a :1009-3044(2014)34-8117-02入侵检测系统(intrusion detection system,简称“ids”)1是一种对网络传输进行即时监控,在发

2、现可以传输数据时发出警报或者采取主动反应措施的网络安全设备。1 入侵检测系统snortsnort2入侵检测是一个基于libpcap的轻量级入侵检测系统软件,是从著名的tcpdump软件发展而来的。它是个基于libpcap包的网络监视软件,是一个十分有效的网络入侵监测系统。snort入侵检测系统基本由四部分组成:嗅探器,预处理器,检测引擎,日志报警3。如图1所示。其中检测引擎, 是 snort 的核心部件, 主要功能是规则分析和特征检测。当数据包从预处理器送过来后, 检测引擎依据预先设置的规则检查数据包,使用某种模式匹配算法 一旦发现数据包中的内容和某条规则相匹配, 就通知报警模块。2 单模式匹

3、配算法研究与改进为了提高入侵检测系统的准确率,减少误报率,在实际的入侵检测系统中一般大都采用精确的模式串匹配算法。模式匹配问题分为单模式匹配算法和多模式匹配算法4。该文主要对单模式匹配算法(bm)进行研究和改进。2.1 单模式匹配算法(bm)仅一次在文本串中查找一个模式串出现的过程,称为单模式匹配,相应的算法称为单模式匹配算法。目前比较常见的单模式匹配算法有kmp(knuth-morris-pratt)算法,bm 算法,bmh 算法等。其中, bm 算法由于使用了启发式搜索,采用从右向左的比较方式, 使用好后缀和坏字符来决定模式串移动的距离,通常同时使用两个来加快查找速度。能够在搜索过程中跳过

4、大部分文本,从而使执行效率得到很大的提高,因而在 ids 中运用最为广泛。boyer-moore算法(简称为bm算法)5是一个著名的字符串匹配算法,它把被匹配的字符串模板与匹配字符串自左向右对齐,并从字符串的最后一个字符开始自右向左进行比较。bm算法并不是对每个字符依次进行比较,当出现不匹配的字符时,它使用两步启发式搜索过程来决定字符串向右移动多少个字符继续与文本串进行比较,从而减少比较次数。其中:n>m,需要从t中查找出与p完全匹配的子串,并返回该子串在正文串的首字母的位置。bm算法采用从右向左比较 的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离

5、。 bm算法的基本流程: 设文本串t,模式串为p。首先将t与p进行左对齐,然后进行从右向左比较 。若是某趟比较不匹配时,bm算法就采用两条启发式规则,即坏字符规则 和好后缀规则 ,来计算模式串向右移动的距离,直到整个匹配过程的结束。2.2 bm算法改进尽管bm算法是拥有高效,考虑全面,简便易懂等优点,但是由于其使用了两个数组,预处理时间较大,匹配次数较多,造成许多重复、不必要的比较,还是存在很多需要改进的地方。通过对bm算法的分析,我们可以发现,原算法虽然是用到了两种启发式规则,即坏字符规则和好后缀规则。但是,在算法的分析中我们看到,当进行字符或者字符串匹配时,大多数匹配都用到的规则是坏字符规

6、则。因此我们可以只用坏字符规则,通过移动量和规定字符这两个方面对bm算法进行一些改进。根据改进算法的思想,可以对bm算法进行如下改进。由文本串和模式串最后一个位置对应的字符的下一个字符做启发向右滑动。其作用在于在每次匹配失败后,把模式向右滑动的距离变大,减少了模式匹配中一些不必要的和重复的比较,缩短了模式匹配的时间。首先,对模式串和文本串进行分析,将文本串中文本串与模式串最后一个位置对应的字符的下一个字符(假设为x)与模式串进行匹配。当字符x在模式串中不存在时,那么显然从x开始的m个文本不可能与模式串 匹配成功,所以直接跳过,移动距离为模式串长度+1。当x在模式串中出现,并且x的前一位字符也存

7、在于模式串中。移动模式串使字符对齐,计算偏移量。利用原bm算法进行匹配。当x在模式串中出现,但是x的前一位字符不存在于模式串中,计算移动模式串使字符x对齐时的偏移量和原bm算法中字符不存在模式串中时的偏移量,进行比较,取两者中的偏移量大的进行匹配。2.3 算法性能比较分别对bm算法和改进后的bm算法进行性能测试,用同一主程序分别调用bm算法和改进后的bm算法进行匹配测试,匹配算法实验中均插入cpu内部时间戳进行高精度计时,同时统计两种算法在匹配时模式串向右移动的次数。初始条件:文本串:whiccmnxmxammm 模式串: emam下图是分别用bm算法和改进后的bm算法对文本串和模式串进行匹配

8、后所得到的数据。3 结论本文以目前最著名、最活跃的、基于误用检测的snort为基础,针对目前应用最广泛的模式匹配算法bm算法的缺陷进行改进。但由于各个方面的局限性,该文研究还有不足和待改进的地方。总之,网络安全是技术问题,也是管理的问题。只有提高使用者的安全意识,合理使用网络及安全工具,才能达到网络的真正安全。参考文献:1 蒋建春,冯登国.网络入侵检测原理与技术m.北京:国防工业出版社,2001.2 brian caswell,jay beale c foster,jeffrey posluns.snort2.0入侵检测m.宋劲松,译.北京:国防出版社,2004.3 jack koziol.s

9、nort入侵检测实用解决方案m.吴薄峰,许诚,译.北京:机械工业出版社,2005.4 李晓芳,姚远.入侵检测工具snort的研究与使用j.计算机应用与软件,2006,23(3):123-124.5 胡大辉,刘乃齐.高效的snort规则匹配机制j.微计算机信息,2006(2).6 2009年中国互联网网络安全报告r.北京:电子工业出版社,2010.7 杨薇薇,廖翔.一种改进的bm模式匹配算法j.计算机应用,2006(2):64-65.endprint摘要:入侵检测系统snort是一种常用的入侵检测软件,该文其分析系统的检测引擎及其采用的模式匹配算法尤其是bm算法进行了深入的分析和讨论,在分析的基

10、础中对bm算法进行改进,使用一种新的模式匹配算法,以减少匹配时间,提高匹配效率,达到提高算法的平均性能和较少资源消耗的目的。关键词:入侵检测;模式匹配;算法:tp393 :a :1009-3044(2014)34-8117-02入侵检测系统(intrusion detection system,简称“ids”)1是一种对网络传输进行即时监控,在发现可以传输数据时发出警报或者采取主动反应措施的网络安全设备。1 入侵检测系统snortsnort2入侵检测是一个基于libpcap的轻量级入侵检测系统软件,是从著名的tcpdump软件发展而来的。它是个基于libpcap包的网络监视软件,是一个十分有效

11、的网络入侵监测系统。snort入侵检测系统基本由四部分组成:嗅探器,预处理器,检测引擎,日志报警3。如图1所示。其中检测引擎, 是 snort 的核心部件, 主要功能是规则分析和特征检测。当数据包从预处理器送过来后, 检测引擎依据预先设置的规则检查数据包,使用某种模式匹配算法 一旦发现数据包中的内容和某条规则相匹配, 就通知报警模块。2 单模式匹配算法研究与改进为了提高入侵检测系统的准确率,减少误报率,在实际的入侵检测系统中一般大都采用精确的模式串匹配算法。模式匹配问题分为单模式匹配算法和多模式匹配算法4。该文主要对单模式匹配算法(bm)进行研究和改进。2.1 单模式匹配算法(bm)仅一次在文

12、本串中查找一个模式串出现的过程,称为单模式匹配,相应的算法称为单模式匹配算法。目前比较常见的单模式匹配算法有kmp(knuth-morris-pratt)算法,bm 算法,bmh 算法等。其中, bm 算法由于使用了启发式搜索,采用从右向左的比较方式, 使用好后缀和坏字符来决定模式串移动的距离,通常同时使用两个来加快查找速度。能够在搜索过程中跳过大部分文本,从而使执行效率得到很大的提高,因而在 ids 中运用最为广泛。boyer-moore算法(简称为bm算法)5是一个著名的字符串匹配算法,它把被匹配的字符串模板与匹配字符串自左向右对齐,并从字符串的最后一个字符开始自右向左进行比较。bm算法并

13、不是对每个字符依次进行比较,当出现不匹配的字符时,它使用两步启发式搜索过程来决定字符串向右移动多少个字符继续与文本串进行比较,从而减少比较次数。其中:n>m,需要从t中查找出与p完全匹配的子串,并返回该子串在正文串的首字母的位置。bm算法采用从右向左比较 的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。 bm算法的基本流程: 设文本串t,模式串为p。首先将t与p进行左对齐,然后进行从右向左比较 。若是某趟比较不匹配时,bm算法就采用两条启发式规则,即坏字符规则 和好后缀规则 ,来计算模式串向右移动的距离,直到整个匹配过程的结束。2.2 bm算法改进

14、尽管bm算法是拥有高效,考虑全面,简便易懂等优点,但是由于其使用了两个数组,预处理时间较大,匹配次数较多,造成许多重复、不必要的比较,还是存在很多需要改进的地方。通过对bm算法的分析,我们可以发现,原算法虽然是用到了两种启发式规则,即坏字符规则和好后缀规则。但是,在算法的分析中我们看到,当进行字符或者字符串匹配时,大多数匹配都用到的规则是坏字符规则。因此我们可以只用坏字符规则,通过移动量和规定字符这两个方面对bm算法进行一些改进。根据改进算法的思想,可以对bm算法进行如下改进。由文本串和模式串最后一个位置对应的字符的下一个字符做启发向右滑动。其作用在于在每次匹配失败后,把模式向右滑动的距离变大

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

16、3 算法性能比较分别对bm算法和改进后的bm算法进行性能测试,用同一主程序分别调用bm算法和改进后的bm算法进行匹配测试,匹配算法实验中均插入cpu内部时间戳进行高精度计时,同时统计两种算法在匹配时模式串向右移动的次数。初始条件:文本串:whiccmnxmxammm 模式串: emam下图是分别用bm算法和改进后的bm算法对文本串和模式串进行匹配后所得到的数据。3 结论本文以目前最著名、最活跃的、基于误用检测的snort为基础,针对目前应用最广泛的模式匹配算法bm算法的缺陷进行改进。但由于各个方面的局限性,该文研究还有不足和待改进的地方。总之,网络安全是技术问题,也是管理的问题。只有提高使用者

17、的安全意识,合理使用网络及安全工具,才能达到网络的真正安全。参考文献:1 蒋建春,冯登国.网络入侵检测原理与技术m.北京:国防工业出版社,2001.2 brian caswell,jay beale c foster,jeffrey posluns.snort2.0入侵检测m.宋劲松,译.北京:国防出版社,2004.3 jack koziol.snort入侵检测实用解决方案m.吴薄峰,许诚,译.北京:机械工业出版社,2005.4 李晓芳,姚远.入侵检测工具snort的研究与使用j.计算机应用与软件,2006,23(3):123-124.5 胡大辉,刘乃齐.高效的snort规则匹配机制j.微计算

18、机信息,2006(2).6 2009年中国互联网网络安全报告r.北京:电子工业出版社,2010.7 杨薇薇,廖翔.一种改进的bm模式匹配算法j.计算机应用,2006(2):64-65.endprint摘要:入侵检测系统snort是一种常用的入侵检测软件,该文其分析系统的检测引擎及其采用的模式匹配算法尤其是bm算法进行了深入的分析和讨论,在分析的基础中对bm算法进行改进,使用一种新的模式匹配算法,以减少匹配时间,提高匹配效率,达到提高算法的平均性能和较少资源消耗的目的。关键词:入侵检测;模式匹配;算法:tp393 :a :1009-3044(2014)34-8117-02入侵检测系统(intru

19、sion detection system,简称“ids”)1是一种对网络传输进行即时监控,在发现可以传输数据时发出警报或者采取主动反应措施的网络安全设备。1 入侵检测系统snortsnort2入侵检测是一个基于libpcap的轻量级入侵检测系统软件,是从著名的tcpdump软件发展而来的。它是个基于libpcap包的网络监视软件,是一个十分有效的网络入侵监测系统。snort入侵检测系统基本由四部分组成:嗅探器,预处理器,检测引擎,日志报警3。如图1所示。其中检测引擎, 是 snort 的核心部件, 主要功能是规则分析和特征检测。当数据包从预处理器送过来后, 检测引擎依据预先设置的规则检查数据

20、包,使用某种模式匹配算法 一旦发现数据包中的内容和某条规则相匹配, 就通知报警模块。2 单模式匹配算法研究与改进为了提高入侵检测系统的准确率,减少误报率,在实际的入侵检测系统中一般大都采用精确的模式串匹配算法。模式匹配问题分为单模式匹配算法和多模式匹配算法4。该文主要对单模式匹配算法(bm)进行研究和改进。2.1 单模式匹配算法(bm)仅一次在文本串中查找一个模式串出现的过程,称为单模式匹配,相应的算法称为单模式匹配算法。目前比较常见的单模式匹配算法有kmp(knuth-morris-pratt)算法,bm 算法,bmh 算法等。其中, bm 算法由于使用了启发式搜索,采用从右向左的比较方式,

21、 使用好后缀和坏字符来决定模式串移动的距离,通常同时使用两个来加快查找速度。能够在搜索过程中跳过大部分文本,从而使执行效率得到很大的提高,因而在 ids 中运用最为广泛。boyer-moore算法(简称为bm算法)5是一个著名的字符串匹配算法,它把被匹配的字符串模板与匹配字符串自左向右对齐,并从字符串的最后一个字符开始自右向左进行比较。bm算法并不是对每个字符依次进行比较,当出现不匹配的字符时,它使用两步启发式搜索过程来决定字符串向右移动多少个字符继续与文本串进行比较,从而减少比较次数。其中:n>m,需要从t中查找出与p完全匹配的子串,并返回该子串在正文串的首字母的位置。bm算法采用从右

22、向左比较 的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。 bm算法的基本流程: 设文本串t,模式串为p。首先将t与p进行左对齐,然后进行从右向左比较 。若是某趟比较不匹配时,bm算法就采用两条启发式规则,即坏字符规则 和好后缀规则 ,来计算模式串向右移动的距离,直到整个匹配过程的结束。2.2 bm算法改进尽管bm算法是拥有高效,考虑全面,简便易懂等优点,但是由于其使用了两个数组,预处理时间较大,匹配次数较多,造成许多重复、不必要的比较,还是存在很多需要改进的地方。通过对bm算法的分析,我们可以发现,原算法虽然是用到了两种启发式规则,即坏字符规则和好后缀

23、规则。但是,在算法的分析中我们看到,当进行字符或者字符串匹配时,大多数匹配都用到的规则是坏字符规则。因此我们可以只用坏字符规则,通过移动量和规定字符这两个方面对bm算法进行一些改进。根据改进算法的思想,可以对bm算法进行如下改进。由文本串和模式串最后一个位置对应的字符的下一个字符做启发向右滑动。其作用在于在每次匹配失败后,把模式向右滑动的距离变大,减少了模式匹配中一些不必要的和重复的比较,缩短了模式匹配的时间。首先,对模式串和文本串进行分析,将文本串中文本串与模式串最后一个位置对应的字符的下一个字符(假设为x)与模式串进行匹配。当字符x在模式串中不存在时,那么显然从x开始的m个文本不可能与模式串 匹配成功,所以直接跳过,移动距离为模式串长度+1。当x在模式串中出现,并且x的前一位字符也存在于模式串中。移动模式串使字符对齐,计算偏移量。利用原bm算法进行匹配。当x在模式串中出现,但是x的前一位字符不存在于模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论