一种面向入侵检测的Wu-Manber算法研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:ryanme
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:模式匹配算法是入侵防御系统中检测引擎的核心算法,模式匹配算法的效率决定了入侵防御系统的性能。本文对模式匹配算法进行了研究,重点分析了多模式匹配算法Wu-Manber算法,并针对Wu-Manber算法存在的不足,提出了Wu-Manber算法的改进算法。
  关键词:入侵防御系统;多模式匹配;Wu-Manber算法
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)12-2pppp-0c
  
  Research on Wu-Manber Algorithm for Intrusion Detection
  (1.Department of Computer Science and Technology,Huaihua University,Huaihua 418008,China;2.School of Software .uestc,Chengdu 610054,China)
  Abstract:Pattern matching algorithm is one of the core algorithms in the detection engine of the intrusion prevention system. Efficiency of the intrusion prevention system is determined by pattern matching algorithm. A survey of the pattern matching algorithm is described in this thesis. The Wu-Manber algorithm which is one of the multi-pattern matching algorithm is explained in detail, and the improvement of the the Wu-Manber algorithm is presented to improve the efficiency.
  Key words:intrusion prevention system; multi-pattern matching; Wu-Manber algorithm
  
  网络入侵检测系统(NIDS)作为提高网络系统安全性的重要技术之一,已经得到了广泛应用。典型的NIDS是用一系列的规则(特征)来描述已知的攻击行为。一条规则包含了一个或多个用以识别某种攻击行为的模式串[1]。随着网络速度和入侵检测规则的持续增长,模式匹配正在成为网络入侵检测系统的性能瓶颈。因此有必要对现有的多模式匹配算法进行改进,提高检测速度。
  本文对多模式匹配算法Wu-Manber算法进行了研究,针对Wu-Manber算法存在的不足,提出了Wu-Manber算法的改进算法。通过实验证明了改进算法相对于原算法具有较高的性能。
  
  1 Wu-Manber算法
  
  Wu-Manber算法是BM算法的扩展算法,是一种实用的多模式匹配算法。它的主要特点是采用了BM算法的不良字符转移机制,利用块字符扩展了不良字符转移的效果,同时使用散列表来筛选匹配阶段应进行匹配的模式串,减少匹配计算量。Wu-Manber算法的执行时间不会随着模式集的增加而成比例增长,而且要远少于使用每一个模式串和BM算法对文本进行匹配的时间总和[2]。Wu-Manber算法是应用中平均性能最好的一个算法。
  在介绍Wu-Manber算法前首先定义以下一些变量:
  包含r个模式的模式集 P={p1,p2,…pr};
  文本串T=t1t2…tn;
  B:块字符长度;
  m:模式集中最短模式串的长度;
  n:文本长度;
  hash:块字符散列函数;
  |P|:模式集中模式数量;
  ∑:字符集。
  Wu-Manber算法采用了跳跃不可能匹配字符的策略和hash散列的方法,以加速匹配的进行。算法需要对所有模式进行预处理,预处理需构建SHIFT,HASH 和PREFIX 3个表。SHIFT表用于在扫描文本串的时候,根据读入字符串决定可以跳过的字符数。HASH表用来存放指针,此指针指向后缀散列值相同的所有模式串的模式串链表。PREFIX表存储每个模式串的前B个字符的字符块的散列值。扫描时如果SHIFT表中相应的跳跃值为0,则说明可能产生匹配,就要用到HASH表和PREFIX表做进一步判断,找出有哪些匹配候选模式串,并验证是哪个或者哪些候选模式与文本完全匹配[3]。
  1.1 算法预处理
  (1)首先计算模式集P中最小模式串的长度m,并且只考虑每个模式串的前m个字符,即要求所有的模式串有相同的长度m。
  (2)以长度为B的块字符作为比较的基本单位,而不是以单个字符作为比较的基本单位。B的取值为log∑(2*m*r),通常B的值为2或3。
  (3)构建SHIFT表:SHIFT表中存储字符集中所有快字符在文本中出现时的转移距离。假设S是当前正在处理的字符集中长度为B个字符的字符块,计算其散列值为h,作为SHIFT表的索引。如果字符块S不出现在任何模式串中,则在SHIFT[h]中存放m-B 1。如果S在某些模式串中出现,查看模式串中S出现的最右位置。假设S在pi中的q位出现,并且在其他模式串中出现S的位置都不大于q。那么在SHIFT[h]中存放m-q。
  (4)构建HASH表:计算每个模式串的后B个字符的字符块的散列值h,后B个字符散列值相同的所有模式串组成一个模式串链表。在HASH[h]中存放指向此链表的指针。
  (5)构建PREFIX表:存储每个模式串的前B个字符的字符块的散列值[4]。
  1.2 算法扫描
  匹配从文本的第m个字符开始,对模式的匹配从右向左进行,每次扫描B个字符:
  (1)对文本中的当前长度为B的块字符计算其hash值h。
  (2)检查SHIFT[h]是否为0。如果大于0,移动文本并返回(1),否则进入第(3)步。
  (3)计算当前文本窗口的前缀hash值,记为text_prefix。
  (4)检查满足HASH[h]≤p  
  2 改进的Wu-Manber算法
  
  2.1 Wu-ManberM算法的不足
  假如文本串T为:“Natural language texts are not random”;
  模式串为:texts、language、maxts和boxts;
  HASH表和PREFIX表如图1和图2所示。
  
  HASH表第一项中的指针p1指向了具有三个元素的模式串链表。
  当匹配过程进行到第6步时,即SHIFT(hash(ts))=0。计算文本窗口的B个字符前缀的hash值text_prefix,并转入HASH表。此时HASH表所对应的项存储的是指向以ts为尾块的模式串链表的指针。需查找PREFIX表,对模式串链表的每一项考察其前缀hash值是否与text_prefix相等[5]。
  本例中对于此种情况需进行三次比较。从上面的实例可以总结出Wu-Manber算法具有这样的不足:随着模式串的增加,多个模式串拥有相同后缀的情况也会增加,即所构建的HASH表相应表项内的指针所指向的模式串链表长度增加,从而增加查找PREFIX表的次数,并导致PREFIX表内容和当前文本窗口的前缀hash值比较次数。这样必然使匹配过程需要更多的比较次数,影响算法性能。
  2.2 改进算法的设计思想
  根据上面讨论的Wu-Manber算法中存在的不足,提出算法改进思想:
  (1)修改HASH表的结构,使它不再以模式串的后缀hash值作为入口。在算法的预处理阶段,对每个模式串计算其前缀和后缀所组成字符块的hash值,以此作为HASH表的入口。
  因为通常情况下不同的模式串,同时具有相同的后缀和前缀的情况非常少,因而这样处理可以减少HASH表中指向的模式链表的模式串数量,从而减少文本窗口前缀hash值和PREFIX表项的比较次数,提高算法匹配效率。
  (2)由于将每个模式串的前缀和后缀组成的字符块hash值作为HASH表的入口,即将模式串的前缀信息加入到了HASH表中,而原算法中PREFIX表中存储的正是模式串前缀hash值,在这种情况下PREFIX表与HASH表功能发生了冲突,因而在改进的Wu-Manber算法中取消PREFIX表的构建。
  2.3 改进算法的设计
  (1)算法预处理阶段
  ①首先计算模式集P中最小模式串的长度m。并且只考虑每个模式串的前m个字符。即要求所有的模式串具有相同的长度m。
  ②确定B的值,B的值取2或3。
  ③构建SHIFT表:与Wu-Manber算法的SHIFT表构建方法相同。
  ④构建HASH表:计算每个模式串的后B个字符和前B个字符组成的字符块的散列值h1,散列值相同的所有模式串组成一个模式串链表。在HASH[h1]中存放指向此链表的指针。
  (2)扫描阶段
  匹配从文本的第m个字符开始,对模式的匹配从右向左进行,每次扫描B个字符:
  ①对文本中的当前长度为B的块字符计算其hash值。
  ②检查SHIFT[h]是否为0。如果大于0,移动文本并返回(1),否则进入第③步。
  ③计算当前文本窗口的前缀,并与后缀组成新的块字符,并计算其hash值,记为h1。
  ④检查满足HASH[h1]项是否为存在。如过存在,即HASH[h1]=p,则将p指向的模式链表中的每个模式串和当前文本比较。如匹配,将其记录。文本窗口后移一位,返回第①步,直到比较结束。如HASH[h1]项不存在,说明没有模式串满足这样的条件,返回第①步,直到比较结束。
  2.4 改进的Wu-Manber算法描述
  while (text <= textend) {
  h=hashBlock(text) /*计算当前文本块hash值*/
  shift=SHIFT[h]; /*查看跳跃距离*/
  if(shift==0){
  h1=hashBlock(text text_prefix); /*计算文本前缀和后缀组成
  的字符块的hash值*/
  p=HASH[h1];/*得到可能与当前文本匹配
  的模式串链表入口*/
  while(p){
  进行完全匹配。如发现匹配,报告结果
  }
  shift=1;
  }
  text = shift;
  }
  2.5 改进的Wu-Manber算法实例
  文本串T为:“Natural language texts are not random”;
  模式串为:texts、language、maxts和boxts;
  最短模式长度:m=5。
  (1)计算SHIFT表
  这里取B=2。
  计算每个块字符的散列值和块字符与模式串串尾的距离。此即为当该字符块在文本中出现时的跳转距离,参见表1。
  
  (3)匹配过程
  ①Natural language texts are not random
  pos = 5,B = 2,所以tpos-B 1…tpos即为t4t5 = ur
  SHIFT(hash(ur))=4 不等于0,下次开始搜寻Text的位置pos = 5 4=9
  ②Natural language texts are not random
  pos = 9,B = 2,所以tpos-B 1…tpos即为t8t9 =l
  SHIFT(hash( l))=4不等于0,下次开始搜寻Text的位置pos = 9 4=13
  ③Natural language texts are not random
  pos = 13,B = 2,所以tpos-B 1…tpos即为t12t13 = gu
  SHIFT(hash(gu))=0,h1=hash(lagu)=13,HASH(13)=p2,比较language与Text。发现相等,标记language出现过。pos=pos 1=14
  ④Natural language texts are not random
  pos = 14,B = 2,所以tpos-B 1…tpos即为t13t14 = ua
  SHIFT(hash(ua))=4不等于0,所以下次开始搜寻Text的位置pos = 14 4=18
  ⑤Natural language texts are not random
  pos = 18,B = 2,所以tpos-B 1…tpos即为t17t18 =t
  SHIFT(hash( t))=4不等于0,下次开始搜寻Text的位置pos = 18 4=22
  ⑥Natural language texts are not random
  pos = 22,B = 2,所以tpos-B 1…tpos即为t21t22 = ts
  SHIFT(hash(ts))=0,h1=hash(tets)=13,HASH(13))=p1,比较texts与Text。发现相等,标记texts出现过。pos=pos 1=23
  ⑦Natural language texts are random
  pos = 23,B = 2,所以tpos-B 1…tpos即为t22t23 = s
  SHIFT(hash(s ))=4不等于0,下次开始搜寻Text的位置pos = 23 4=27
  ⑧Natural language texts are random
  pos = 27,B = 2,所以tpos-B 1…tpos即为t26t27 = e
  SHIFT(hash(e ))=4不等于0,下次开始搜寻Text的位置pos = 27 4=31
  ⑨Natural language texts are random
  pos = 31,B = 2,所以tpos-B 1…tpos即为t30t31 = nd
  SHIFT(hash(nd))=4不等于0,下次开始搜寻Text的位置pos = 31 4=35
  ⑩ pos > length(Text),匹配结束。
  与未改进的Wu-Manber算法相比,可以看到改进的Wu-Manber算法在匹配过程中的第6步,减少了3次比较次数。
  2.6 改进的Wu-Manber算法分析
  (1)改进的Wu-Manber算法与原算法相比的不同之处:
  ①减少了当多个模式串具有相同后缀的情况下的比较次数。
  ②省去了PREFIX表的构建,节省了算法预处理时间和空间内存的使用。
  (2)改进的Wu-Manber算法性能分析和测试
  
  
  表3中的WM表示Wu-Manber算法,LWM表示改进的Wu-Manber算法。
  ②算法分析
  从图4—8可以看出,随着模式串数量的增加,两种算法在特定模式长度的情况下扫描时间都相应增大,改进的WM算法的扫描时间一直小于WM算法所用时间。随着模式串长度的增加,两种算法在特定模式串数量的情况下,扫描时间都相应减小,改进的WM算法扫描所用时间一直小于WM算法所用时间,但差距在逐渐缩小。
  从表3可以看出,两算法字符比对次数的比较类似于两算法所用时间的比较。
  产生这种实验结果的原因是随着模式串个数的增加,具有相同后缀的模式串不断增多,当模式串较短时,算法的平均跳跃距离比较短,因而此时WM算法所用时间和改进的WM算法所用时间差距巨大。而随着模式串长度的增加,两种算法的平均跳跃距离也在增大,虽然WM算法中具有相同后缀的模式串同样很多,但随着跳跃距离的增大,WM算法所用时间也急剧减小,与改进的WM算法的差距也不断缩小。
  从实验结果可以看出,改进后的算法性能不论在哪种情况下都比原算法有较大提高,达到了预期效果。
  
  3 结束语
  
  本章重点分析了经典的多模式匹配算法Wu-Manber算法,针对Wu-Manber算法在多个模式串具有相同后缀的情况下,算法效率较低的问题进行了改进,提出了改进算法的设计思想、原理,并对其进行了详细的描述,最后通过程序仿真,证明了改进后的算法性能优于原算法性能。
  
  参考文献:
  [1]谢希仁.计算机网络(第4版).北京:电子工业出版社,2005.
  [2]杨东红,徐恪,崔勇.改进的Wu-Manber多模式匹配算法.清华大学学报.
  [3]张鑫,谭建龙,程学旗. 一种改进的Wu-Manber多关键词匹配算法[J].计算机应用, 2003.
  [4]孙晓山,王强,关毅,王晓龙. 一种改进的Wu-Manber多模式匹配算法及应用.中文信息学报.
  [5]WU Sun,Manber U.A Fast Algorithm for Multi-Pattern Searching. Technical Report TR 94-17,University of Arizona at Tuscon, 1994.
  
  收稿日期:2008-01-25
  作者简介:王灿明(1980-),男,湖南涟源人,怀化学院计算机系,助教,硕士,主要研究网络信息安全,RFID技术;肖峰(1983-),男,四川成都人,电子科技大学,在读硕士,主要研究网络信息安全。
其他文献
摘要:针对C语言课程传统模式教学中的问题,我们进行了改革与探索,建立了新的教学模式。新教学模式采用了实例教学法、形象比喻法等手段,取得了良好的教学效果。  关键词:程序设计;实例教学;错误分析;上机实践  中图分类号:G642文献标识码:A文章编号:1009-3044(2008)08-11ppp-0c    1 引言    随着高等教育事业的不断发展,教学改革正在逐步深化,给我们的教学工作提出了新
作为中华民族的“根”与“魂”,传统文化涉及的内容非常广泛,蕴含着广博的哲学思想和人文精神,也是我国古代道德教育的重要载体和形式。当下,发掘传统文化中丰富的德育资源,关注传统文化的德育价值,不仅能够提升人们的思想道德素质和文化软实力,还能够推动社会和谐发展,激发世代依存的道德情感,从而更好地构筑中国精神、中国价值、中國力量。陈守聪、王珍喜编著的《中国传统文化的价值与现代德育构建》一书基于对中华传统文
摘要:网络改变着我们得生活,越来越多的人都通过网络来观看电视节目,让人们有了更多的频道选择。在此基础上,各种基于P2P 流媒体播放软件层出不穷,本文将着重介绍P2P 流媒体技术,包括流媒体传输协议以及如何实时传送。最后简要介绍流媒体播放的实现架构。  关键词:P2P;流媒体;流式传输  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)15-2pppp-0c    Abs
摘要:在数据库开发时,编号问题是必须要考虑的问题。该文主要介绍了自动编号与手工编号的几种编号方法,通过具体实例讨论它们的生成方法、实现过程及优缺点。用户可以结合自己的实际需要来选择合适的编号方法。  关键词:编号方法;SQL Server;数据库  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)24-1109-04  Brief Analysis of Coding
他秉持“处处留心皆学问”的古训,对生活、对外界事物始终保持着新闻工作者长期养成的职业敏感,处处留心,事事留意,继而抓拍到了一些有趣味、有意境的人物和场景。  在人人都是“报道员”的新媒体时代,似乎只要有手机、相机,就可以拍拍照、摄摄影,其实这是一种误解。要知道,和其他艺术门类一样,摄影不仅仅是一项技术活。要想出一点“彩”,或者拍出佳作、力作,没有对生活的热爱和对技术的精益求精,没有对艺术的不懈追求
摘要:随着计算机网络的飞速发展,各企业及院校的网络已大量普及,虽然windows2000server被大多数网络中心作为各种服务端的操作系统,但linux也以其运行速度快、具有良好的代码开放性、适应性强、支持多用户多文件系统、各种网络服务如(FTP、WWW、Email)容易构建及维护等特点被广泛应用。文章通过对Linux和APACHE的介绍,就具体如何在Linux下构建WWW服务作了说明。  关键
摘要:随着互联网的发展,新技术层出不穷,基于ASP.NET平台的网站和应用越来越广泛,用户对网站的访问速度的要求也越来越高。网站的访问速度取决于很多因素,该文主要从网站的系统架构和性能优化两方面入手,结合实际经验,提出一些最佳技术实践和解决方案,供大家参考。  关键词:ASP.NET;网站架构;性能优化  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)24-1166-
剪纸 58cm×43cm 2015年  该作品以“寿”字“青松”“仙鹤”相结合,以传统草书技法与民族剪纸——刻纸技法为一体的表现手法,以“寿”字形似大山,其大山深处生长着苍劲的青松,飞跃着千姿百态的仙鹤为创作构思(共6只仙鹤——取之人生一个年轮,六六大顺之意),形成和谐自然的壮观景象,既展示了书法字体外形不变、又体现了剪纸——刻纸的阴刻、阳刻的表现技法。其人与自然和谐相处的意境,形成了一幅松鹤延年
摘要:随着多媒体教室的大量建设和投入使用,大学课堂教学的模式发生了很大的变化,电化或网络的多媒体教学成为教学的主要方式。尤其是U盘被广泛使用于教学和数据交流当中,当我们享受U盘所带来的方便时,U盘病毒也在悄悄利用系统的自动运行功能肆意传播,给教学工作带来了一定困难和影响。  关键词:U盘;病毒;解决方法  中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)15-20000
摘要:本文介绍了分布式入侵检测系统的重要性和现有分布式入侵检测系统的局限性,提出了一种基于数据融合和数据挖掘的分布式入侵检测系统模型(DIDSFM),叙述了数据融合和数据挖掘应用于分布式入侵系统的意义,并详细说明了系统的体系结构和工作原理。  关键词:入侵检测系统;数据融合;数据挖掘;分布式  中图分类号:TP312文献标识码:A文章编号:1009-3044(2008)24-1106-02  De