生僻字符匹配方法、字符串模式匹配方法及存储介质组成比例

技术编号:19140338 阅读:58 留言:0更新日期:2018-10-13 08:42
本发明专利技术提供一种生僻字符匹配方法、字符串模式匹配方法及存储介质,其中,生僻字符匹配方法,包括:提取模式串中的生僻字符;查找目标文本中是否存在所述生僻字符;当所述目标文本中存在所述生僻字符时,确认所述模式串与所述目标文本中包含所述生僻字符的字符段是否相等,并且相等时,匹配成功,结束,其中,所述模式串的字符与所述字符段的字符一一对应。本发明专利技术充分利用生僻字匹配算法和BM匹配算法的优点,无论模式串长短,均能达到最佳的匹配性能。

Unfamiliar character matching method, string pattern matching method and storage medium

The invention provides a remote character matching method, a string pattern matching method and a storage medium, wherein a remote character matching method includes: extracting a remote character in a pattern string; finding out whether the remote character exists in the target text; and confirming the model when the remote character exists in the target text. Whether the pattern string is equal to the character segment containing the outlying character in the target text, and when equal, the matching is successful and the matching ends, wherein the character of the pattern string corresponds to the character of the character segment one by one. The invention makes full use of the advantages of the outlier matching algorithm and the BM matching algorithm, and achieves the best matching performance regardless of the length of the pattern string.

【技术实现步骤摘要】
生僻字符匹配方法、字符串模式匹配方法及存储介质
本专利技术涉及计算机网络信息安全领域,尤其涉及计算机网络入侵检测系统的模式匹配算法,具体来说就是一种生僻字符匹配方法、字符串模式匹配方法及存储介质。
技术介绍
随着计算机技术的普及计算机网络技术的飞速发展,丰富的网络信息资源为人们的生活提供了极大的便利,然后与此同时,计算机网络屡遭计算机病毒入侵,计算机网络安全事件频频发生。为了保障计算机网络的安全,保证计算机网络系统免受非法入侵,入侵检测系统(IntrusionDetectionSystem)应运而生,为计算机网络的安全传输保驾护航。但是,入侵检测系统基于自己的规则库进行模式匹配,每匹配成功一次就能防止了一次网络入侵,然而随着计算机网络的急剧膨胀,入侵检测系统的核心匹配算法越来越不能满足剧增的网络流量,模式匹配算法也越发成为了入侵检测系统发展的瓶颈。举例来说,当前入侵检测系统中使用的主流匹配算法为Boyer-Moore算法,Boyer-Moore算法简称BM算法,是由Boyer教授和Moore教授专利技术的一种高效的字符串匹配算法,该字符串匹配算法从模式串的尾部开始扫描,在不匹配时,用两个算法bad-character(坏字符规则算法)和good-suffix(好后缀规则算法)来确定模式串在主串中移动的距离。不同于一般算法,BM算法自右向左对模式串进行扫描。进行比较时,待匹配文本T(text)与模式串P(pattern)最左边对齐,但是匹配的方向是从P的最右边开始依次向左,直至出现不匹配字符,当出现不匹配字符时,通过“坏字符、好后缀”两种策略进行模式串偏移。(1)坏字符规则:当P中的某个字符与T中对应的字符不匹配时(即坏字符),采用坏字符规则来移动P,移动距离有如下两种情况:T中的坏字符不在P中,直接将模式串右移P的长度;T中的坏字符存在P中,移动P直至T中的坏字符与P中相同的字符对齐。(2)好后缀规则:该规则指明P和T末尾有部分字符串t(即好后缀)匹配时如何移动。具体分为:第一种情况,模式串P剩余部分中仍包含子串t,此时移动模式串,让该子串和好后缀对齐即可,如果超过一个子串匹配上好后缀,则选择最靠左边的子串对齐;第二种情况,模式串P剩余部分不包含子串t,此时需要寻找模式串的一个最长前缀,并让该前缀等于好后缀的后缀,寻找到该前缀后,让该前缀和好后缀对齐即可;第三种情况,模式串P剩余部分不包含子串t,并且在模式串中找不到最长前缀,让该前缀等于好后缀的后缀。此时,直接移动模式到好后缀的下一个字符。BM算法根据以上两种规则计算偏移并选择较大的偏移量移动模式串。基于以上的匹配规则,BM算法在搜索阶段可以达到的时间复杂度为O(n+m),因为性能优异,成为了目前入侵检测系统的首选算法,但BM算法并非完美,因其并非专门为入侵检测领域开发的匹配算法,所以并不能很好地针对检测规则的特性,达到高效的匹配。例如,BM算法并不考量模式串是否符合一定格式,这虽然使得BM算法更加通用,但也使得其在入侵检测规则匹配中的效率。在入侵检测规则中,模式串并非人为输入,是一开始就确定好而且往往较短,而众所周知,BM算法依据“坏字符、好后缀”启发模式,最长跳为模式串的长度,在短模式串情况下,BM算法优势大大下降,这是新算法需要攻克的关键点。除此之外,BM算法不能完成入侵检测规则中经常出现的二进制模式串与文本数据的匹配,这一点也尤为重要。因此,本领域技术人员亟需研发一种适用于入侵检测领域的模式匹配算法,实现短模式串的快速匹配,满足海量网络数据检测的需要。
技术实现思路
有鉴于此,本专利技术要解决的技术问题在于提供一种生僻字符匹配方法、字符串模式匹配方法及存储介质,解决了现有匹配算法无法适应入侵检测领域中的短模式串的问题。为了解决上述技术问题,本专利技术的具体实施方式提供一种生僻字符匹配方法,包括:提取模式串中的生僻字符;查找目标文本中是否存在所述生僻字符;当所述目标文本中存在所述生僻字符时,确认所述模式串与所述目标文本中包含所述生僻字符的字符段是否相等,并且相等时,匹配成功,结束,其中,所述模式串的字符与所述字符段的字符一一对应。本专利技术的另一具体实施方式还提供一种字符串模式匹配方法,包括:利用时间标签计数器确定长度阈值;确定所述模式串的字符长度;根据所述字符长度和所述长度阈值选择匹配算法,其中,所述匹配算法包括BM匹配算法和生僻字符匹配算法。本专利技术的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行生僻字符匹配方法。本专利技术的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行字符串模式匹配方法。根据本专利技术的上述具体实施方式可知,生僻字符匹配方法、字符串模式匹配方法及存储介质至少具有以下有益效果:研发出一种基于“生僻字符”查询为基础的匹配算法(即生僻字符匹配算法),首先对当前网络中的数据做抽样统计,提取模式串内在网络中出现概率最小的字符作为生僻字符,以此字符作为查找对象去查询网络流量的数据串,并在网络流量的数据串(目标文本)中找到生僻字符后,对整个模式串做相等验证(即确认目标文本中是否包含整个模式串),避免了BM算法中需要频繁进行字符串对比,加快了字符匹配速度;对于目标文本中存在多个该生僻字符的情况下,需要遍历整个目标文本,依次找出这些生僻字符所在的字符段,做相等验证。进行字符串模式匹配时,如果模式串小于等于长度阈值,则使用生僻字匹配算法,否则使用BM匹配算法,利用生僻字符算法弥补BM算法的不足,充分利用生僻字匹配算法和BM算法的优点,以达到最佳的匹配性能,无论是长模式串,还是短模式串,均能实现模式串的快速检测。使用以汇编指令SCASB快速查找生僻字符,当模式串为不可打印字符,待匹配的数据串主要为可见字符时,使用生僻字匹配算法不需要对整个数据串进行遍历匹配,提升匹配效率;使用汇编指令的立即数比较,实现最多一次8个字符(4字)的比对,实现了快速匹配,大幅度提高了算法效率。应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本专利技术所欲主张的范围。附图说明下面的所附附图是本专利技术的说明书的一部分,其绘示了本专利技术的示例实施例,所附附图与说明书的描述一起用来说明本专利技术的原理。图1为本专利技术具体实施方式提供的一种生僻字符匹配方法的实施例一的流程图。图2为本专利技术具体实施方式提供的一种生僻字符匹配方法的实施例二的流程图。图3为本专利技术具体实施方式提供的一种生僻字符匹配方法的实施例三的流程图。图4为本专利技术具体实施方式提供的一种生僻字符匹配方法的实施例四的流程图。图5为本专利技术具体实施方式提供的一种字符串模式匹配方法的流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本专利技术所揭示内容的精神,任何所属
技术人员在了解本
技术实现思路
的实施例后,当可由本
技术实现思路
所教示的技术,加以改变及修饰,其并不脱离本
技术实现思路
的精神与范围。本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。关于本文档来自技高网
...

【技术保护点】
1.一种生僻字符匹配方法,其特征在于,该方法包括:提取模式串中的生僻字符;查找目标文本中是否存在所述生僻字符;以及当所述目标文本中存在所述生僻字符时,确认所述模式串与所述目标文本中包含所述生僻字符的字符段是否相等,并且相等时,匹配成功,结束,其中,所述模式串的字符与所述字符段的字符一一对应。

【技术特征摘要】
1.一种生僻字符匹配方法,其特征在于,该方法包括:提取模式串中的生僻字符;查找目标文本中是否存在所述生僻字符;以及当所述目标文本中存在所述生僻字符时,确认所述模式串与所述目标文本中包含所述生僻字符的字符段是否相等,并且相等时,匹配成功,结束,其中,所述模式串的字符与所述字符段的字符一一对应。2.如权利要求1所述的生僻字符匹配方法,其特征在于,查找目标文本中是否存在所述生僻字符的步骤之后,该方法还包括:当所述目标文本中不存在所述生僻字符时,匹配失败,结束。3.如权利要求1所述的生僻字符匹配方法,其特征在于,确认所述模式串与所述目标文本中包含所述生僻字符的字符段是否相等的步骤之后,该方法还包括:所述模式串与所述目标文本中的字符段不相等时,确认是否已经遍历所述目标文本,如果没有遍历,继续查找目标文本中是否存在所述生僻字符;否则,匹配失败,结束。4.如权利要求1所述的生僻字符匹配方法,其特征在于,提取模式串中的生僻字符的步骤,具体包括:利用网络捕包工具从网络上抓取多个网络报文;利用字符串命令提取所述网络报文的统一资源定位符;分析所述统一资源定位符中所有字符的出现频率;根据所述出现频率对所有字符进行排序获得排序字符;根据所述排序字符确定所述模式串中的所述生僻字符。5.如权利要求1所述的生僻字符匹配方法,其特征在于,查找目标文本中是否存在所述生僻字符的步骤,具体包括:利用REPNESCASB机器指令查找目标文本中是否存在所述生僻字符。6.如权利要求1所述的生僻字符匹配方法,其特征在于,确认所述模式串与所述目标文本中包含所述生僻字符的字符段是否相等的步骤,具体包括:将所述模式串的生僻字符与所述目标文本中的生僻字符对应;确定所述模式串的字符长度;以及根据所述字符长度确认所述模式串与所述字符段是否相等。7.如权利要求6所述的生僻字符匹配方法,...

【专利技术属性】
技术研发人员:强倩肖成民臧天宁李亚辉周渊王志远
申请(专利权)人:北京启明星辰信息安全技术有限公司国家计算机网络与信息安全管理中心
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1