互联网+时代的信息网络安全.doc

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

安全模型、算法与编程 基于Snort入侵检测的后缀搜索算法的研究与改进 ◆胡朝举 石 倩 (华北电力大学(保定)控制与计算机工程学院 河北 071000) 摘要:Snort是基于规则匹配的入侵检测系统,提高规则匹配的速度至关重要。本文通过对Snort下基于后缀搜索的入侵检测算法BM算法、WM算法的研究,对WM算法进行了改进,将模式集合根据长度分为两部分,每个模式串建立子移动表。试验结果表明,改进的算法提高了Snort的入侵检测效率。 关键词:入侵检测;模式匹配;WM算法 0 引言 Snort入侵检测系统是目前使用最广的开源入侵检测系统之一,具有良好的跨平台性,并提供丰富的报警机制。Snort 的检测采用的是模式匹配策略。模式匹配过程是系统运行的主要过程,是系统主要的性能瓶颈。针对此问题已有很多学者做了大量研究,文献[3]对BM算法做了改进,去除了传统的好后缀规则,改进了坏字符规则。文献[4]提出一种基于随机指纹模型的多模式匹配方法。文献[5]基于BM算法的优点改进AC算法,提出了多目标AC-BM算法,大大降低重复搜索文本串的次数。文献[6]把AC算法和BMH算法结合,只保留坏字符规则,最大移动距离为最短模式串长度。文献[7]提出了一种改进的WM算法,减少了重复比较次数。本文通过对后缀搜索算法的研究,对WM算法进行改进,提高了Snort的入侵检测的效率。 1 模式字符串匹配算法 已知字符集合,大小记为,模式串,文本串,,单模式字符串匹配即求解集合: 已知字符集合,大小记为,为正闭包,记文本串,模式串集合记为 QUOTE \* MERGEFORMAT ,,模式集合长度总和为。字符串、、、,若,则为的前缀,为的后缀,为的 QUOTE \* MERGEFORMAT 子串。 多模式匹配问题可表示为求解集合: 后缀搜索是在搜索窗口内,模式匹配的是从右向左的搜索最长公共后缀。基于后缀搜索的算法经典的有BM算法、WM算法。 2 Boyer-Moore 算法 BM 算法中匹配失败时,用两种机制来确定模式串向右移动的距离:坏字符机制和好后缀机制。 2.1 坏字符机制 (1)导致不匹配的字符不在模式串P中,模式串向右取得最大移动距离m。 (2)导致不匹配的字符在模式串P中,则移动模式串最短距离使可匹配字符与相应文本T字符对应。 2.2 好后缀机制 (1)好后缀在模式串中存在,那么好后缀和T中已匹配对齐匹配。 (2)好后缀的最大子串在模式串中存在,那么好后缀最大子串和T对应子串对齐匹配。 (3)好后缀在模式串中并不存在,则移动距离为m。 BM算法的移动距离为好后缀机制和坏字符机制的最大值。 3 Wu-Manber(WM)算法及改进 WM算法继承了 BM 算法中的坏字符机制,但是WM算法依据长度为 B的字符块进行跳跃。 3.1 预处理过程 预处理阶段建立三张表移动表(Shift Table)、哈希表(Hash Table)和前缀表(Prefix Table)来移动搜索窗口。 (1)建立移动表(Shift Table) 记最小模式串长度m,只考虑每个模式串的前m个字符。对m个字符中后B个字符创建一个移动表。 (2)建立哈希表(Hash Table) 发生匹配时,为了确定匹配的字符串,避免和模式字符串全部比较,使用哈希技术减少比较的次数。计算B个字符的哈希值用作为哈希表的索引,哈希表的值就是该B个字符所在模式字符串的索引。 (3)建立前缀表(Prefix Table) 所有的有相同后缀的模式字符串在哈希表中有相同的入口值。当文本中这样一个后缀时,当发现Shift值为0,不得不单独检查所有带有这个后缀的模式字符串看它是否和T匹配,因此需要建立前缀表。匹配完所有模式串的B个字符和前缀表中的前B’个字符,如果匹配成功,则让整个模式串去和文本进行逐字符匹配。 3.2 搜索阶段扫描过程 算法的主要包括以下步骤:每次扫描B个字符,如图1所示。 (1)扫描文本的末B位通过hash函数计算哈希值h。 (2),转(1);Shift[h]=0,转(3)。 (3)计算文本当前位置前m位与前m-1位前缀的哈希值,记为text_prefix。 (4)对于每个p(),否则Prefix[p]=text_prefix。如果相等,让真正的模式串去和文本进行逐字符匹配。 图1 WM算法搜索示意图 分析WM算法发现,存在缺点:(1)如果最短模式串非常短,那么m的值就会非常小,算法最多只能跳跃m,此时算法的效率就变得非常低。(2)Shift表为0时,需要进行精确匹配,而在WM算法中使用的精确匹配算法是效率较低的蛮力算法。 3.3 改进 对于这两个缺点,可以改进:(1)将特征集合分为长短两个特征集合来处理。通过分

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档