CN105373601B - 一种基于关键字词频特征的多模式匹配方法 - Google Patents
一种基于关键字词频特征的多模式匹配方法 Download PDFInfo
- Publication number
- CN105373601B CN105373601B CN201510755911.XA CN201510755911A CN105373601B CN 105373601 B CN105373601 B CN 105373601B CN 201510755911 A CN201510755911 A CN 201510755911A CN 105373601 B CN105373601 B CN 105373601B
- Authority
- CN
- China
- Prior art keywords
- node
- string
- character
- branch
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于关键字词频特征的多模式匹配方法,首先从已知的信息数据库中提取关键字并统计出现频率作为其词频信息,其次采用构造含有关键字词频信息的二叉树完成其中的模式串匹配,在字符匹配过程中若出现字符不相等,则与该不匹配字符所在节点的兄弟节点所含字符进行匹配。其利用信息来源的模式的关键字词频信息构造基于字典树的二叉树完成其中的模式串的匹配,并与AC算法进行了比较。传统的AC算法需要维护三张表,并且在模式匹配过程中会频繁访问这三张表;本发明的一种基于关键字词频特征的多模式匹配方法更多的利用了模式本身的词频信息,并不需要维护过多的信息,这就大大减少了系统的内存消耗。
Description
技术领域
本发明涉及计算机网络安全技术领域,具体涉及一种基于关键字词频特征的多模式匹配方法。
背景技术
入侵检测系统(IDS,Intrusion Detection System)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。它与其他网络安全设备的不同之处便在于,IDS是一种积极主动的安全防护技术。IDS以信息来源的不同和检测方法的差异分为几类:根据信息来源可分为基于主机IDS和基于网络的IDS,根据检测方法又可分为异常入侵检测和误用入侵检测。
误用入侵检测系统中常用的检测方法有:模式匹配法、专家系统法、基于状态转移分析的检测法。其中模式匹配法常常被用于入侵检测技术中,它通过把收集到的信息与网络入侵和系统误用模式数据库中的已知信息进行比较,从而对违背安全策略的行为进行发现。模式匹配法可以显著地减少系统负担,有较高的检测率和准确率。
Aho-Corasick算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。Aho-Corasick算法对应的数据结构是Aho-Corasick自动机,简称AC自动机。AC算法的特点是可以保证对于给定的长度为n的文本,和模式集合P{p1,p2,...pm},在O(n)时间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关。
但是AC算法在模式匹配的过程中预处理时间较长,并且因其需维护goto表、fail表和output表导致内存消耗巨大,算法性能仍然有待提高。
发明内容
为了克服现有技术的不足,本发明提供一种基于关键字词频特征的多模式匹配方法,它能解决现有技术在模式匹配的过程中预处理时间过长及占用较大内存等问题。
本发明采用的基于关键字词频特征的多模式匹配方法,首先从已知的信息数据库中提取关键字并统计出现频率作为其词频信息,其次采用构造含有关键字词频信息的二叉树完成其中的模式串匹配,在字符匹配过程中若出现字符不相等,则与该不匹配字符所在节点的兄弟节点所含字符进行匹配。
本发明利用信息来源的模式的关键字词频信息构造基于字典树的二叉树完成其中的模式串的匹配,并与AC算法进行了比较。传统的AC算法需要维护三张表,并且在模式匹配过程中会频繁访问这三张表;本发明的一种基于关键字词频特征的多模式匹配方法更多的利用了模式本身的词频信息,并不需要维护过多的信息,这就大大减少了系统的内存消耗。
本发明采用的具体技术方案是:
一种基于关键字词频特征的多模式匹配方法,包括以下步骤:
S21初始化二叉树;
S22输入待匹配模式串后开始匹配;
S23若匹配成功则判断该节点是否含有模式串结束标志,若是则输出模式串,若否则判断匹配成功节点的左分支节点是否存在,若是则将指针指向其左分支节点并返回S22,若否则结束匹配;若匹配失败则判断匹配失败节点的右分支节点是否存在,若是则将指针指向其右分支节点并返回S22,若否则结束匹配;
S24判断指针移动后是否超出待匹配模式串串尾,若否则返回S22,若是则结束匹配。
进一步的,所述二叉树的初始化包括以下步骤:
A)假设有定义在字符集Σ上的模式串集合K={s1,s2,s3,…,sn}(s1,s2,s3,…sk…,sn表示从已知数据库中提取的模式串,n表示模式串数量,其取值范围与计算机性能相关),用K中的模式串生成二叉树,并记第i层的左起第j个节点为aij,其中i,j=0,1,2,……,将同一模式中的字符所在节点标记为fk,并将终结字符节点标记为ok,其中k表示模式串集合中的第k个字符串,k=1,2,……,n;
B)统计模式串sk出现的频率pk,并将频率pk作为模式串sk的词频加入含有ok标记的节点;
C)设匹配一个字符的计算力是c,二叉树中最左分支由底向上的第一个分支节点为A,从A到输出其下m个分支中所有模式分别需要匹配节点lm次(含匹配A),m为A分支个数,由左向右对应模式sk,sk+1,……,sk+m-1;计算期望Em1=c*lk*pk+c*lk+1*pk+1+……+c*lk+m-1*pk+m-1(c表示计算力,lk表示对应匹配模式sk所需匹配节点次数,pk表示sk所携带该模式词频信息),然后交换分支计算Em2,……,直至计算出EA=min{Em1,Em2,……},此时由右向左对应模式s’k,s’k+1,……,s’k+m-1;
D)由左向右由底向上依次找出A之外的所有节点并按上述方式进行二叉树的重构,当根节点计算完毕并交换分支后,即得到最终的二叉树。
进一步地,步骤C中所述最左分支包含根节点、根节点的左分支节点以及该左分支节点的左分支节点和其后左分支节点。
进一步的,所述步骤A的二叉树的生成规则为:根据模式串集合的初始词频信息将模式串按词频由高到低顺序排列,并依次插入二叉树,同时将模式串信息加入模式串末位字符节点中,并在该末位字符节点设置模式串结束标志;首次插入的模式串中,后插入的字符节点作为先插入的字符节点的左分支节点;若两模式串前缀相同,则将后插入的模式串的首个不相同节点作为先插入的模式串的首个不相同节点的右分支节点插入。
有益效果:本发明采用一种基于关键字词频特征的多模式匹配方法,完成模式串的匹配,由于未构造AC算法中的失效函数表,并且采用单字符信息节点替换AC算法中的字符数组节点,冗余节点大大减少,从而大大降低了入侵检测系统的内存消耗;本发明的一种基于关键字词频特征的多模式匹配方法用途广泛,可应用在搜索、网络入侵检测、敏感URL检测和过滤等方面。
附图说明
图1是本发明实施例1的匹配过程流程图;
图2是本发明实施例1的初始化字典树示意图;
图3(a)是本发明实施例1的计算节点1交换分支前的期望示意图;
图3(b)是本发明实施例1的计算节点1交换分支后的期望示意图;
图4(a)是本发明实施例1的计算节点0交换分支前的期望示意图;
图4(b)是本发明实施例1的计算节点0交换分支后的期望示意图;
图5是本发明实施例2使用本发明的匹配方法和基于传统AC算法的匹配方法所收集的数据项;
图6是本发明实施例2使用本发明的匹配方法和基于传统AC算法的匹配方法对模式串进行匹配的预处理时间对比图;
图7是本发明实施例2使用本发明的匹配方法和基于传统AC算法的匹配方法对模式串进行匹配的匹配时间对比图;
图8是本发明实施例2使用本发明的匹配方法和基于传统AC算法的匹配方法对模式串进行匹配的内存占用对比图;
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
下面结合附图和具体实施方式对本发明作进一步的详细说明。
实施例1:
如图1所示可以清楚了解本发明的一种基于关键字词频特征的多模式匹配方法的匹配过程:
S21初始化二叉树;
S22输入待匹配模式串后开始匹配;
S23若匹配成功则判断该节点是否含有模式串结束标志,若是则输出模式串,若否则判断匹配成功节点的左分支节点是否存在,若是则将指针指向其左分支节点并返回S22,若否则结束匹配;若匹配失败则判断匹配失败节点的右分支节点是否存在,若是则将指针指向其右分支节点并返回S22,若否则结束匹配;
S24判断指针移动后是否超出待匹配模式串串尾,若否则返回S22,若是则结束匹配。
进一步的,所述二叉树的初始化规则包括以下步骤:
A)假设有定义在字符集Σ上的模式串集合K={s1,s2,s3,…,sn},用K中的模式串生成二叉树,并记第i层的左起第j个节点为aij,其中i,j=0,1,2,……,将同一模式中的字符所在节点进行标记fk,并对终结字符节点进行标记ok,k=1,2,……,n;
B)统计sk出现的频率pk,并将参数pk作为sk的词频加入含有ok标记的节点;
C)设匹配一个字符的计算力是1,由左向右由底向上的第一个分支节点为S,从S到输出其下所有模式分别需要匹配lm次(含匹配S),m为S分支个数,由左向右对应模式sk,sk+1,……,sk+m-1;计算期望Em1=lk·pk+(lk+1+1)·pk+1+……+(lk+m-1+m-1)·pk+m-1,然后交换分支计算Em2,……,直至计算出EA=min{Em1,Em2,……},此时由左向右对应模式s’k,s’k+1,……,s’k+m-1;
D)由左向右由底向上依次找出A之外的所有节点并按上述方式重构二叉树,当根节点计算完毕并交换分支后,即得到最终的二叉树。
进一步的,所述步骤A的二叉树的生成规则为:根据模式串集合的初始词频信息将模式串按词频由高到低顺序排列,并依次插入二叉树;首次插入的模式串中,后插入的字符节点作为先插入的字符节点的左孩子节点;若两模式串前缀相同,则将后插入的模式串的首个不相同节点作为先插入的模式串的首个不相同节点的右孩子节点插入。
下面以一实际的模式串集合进行说明,对应模式集{he,she,his,hers}在一个已知字符集中提取该模式集中各个模式串的词频信息,构造一个字典树,并在终结状态节点3、7、8、9分别引入所提取词频信息0.1、0.3、0.5、0.1(该词频函数依据本发明预期效果设定),如图2。
自下而上寻找并计算第一个有分支的节点,即计算分支节点1。假设达到一个节点的计算力为1,即只要比较一个字符就要消耗1个单位的计算力,这里的计算力可以是消耗的内存或时间。如图3(a),在当前的分支结构下,输出he需要2个计算力(到达节点1需要先匹配h),输出hers需要2个计算力(指定输出he后指针停留在节点3,所以只需再匹配rs即可输出hers),输出his需要4个计算力(这里假设是在最优情况下消耗的计算力,即匹配i时根据前序遍历无法到达节点3,但本次失配也消耗了1个计算力,之后继续匹配节点4和7),故输出匹配模式的期望E1=l1·p1+(l2+1)·p2+(l3+2)·p3=2*0.1+2*0.1+4*0.3=1.6;若交换左右分支,依上述规则计算可得到期望为E1’=1.4。显然E1’<E1,这说明交换后开销更低,所以应当将左右分支交换,得到图3(b)。
新的结构如图4(a),同理,再计算分支节点0的期望E0=3.4,交换左右分支,期望E0’=3.3,说明依然应当交换,如图4(b)。
也可计算出原自动机的匹配期望E=3.6,显然图4(b)所示二叉树的期望值最小,即在该词频下的理论匹配效率最高。则图4(b)即为引入词频特征后的最优二叉树。
实施例2:
本实施例所采集的数据特征,如图5:
1)相同模式串个数及长度的模式集20组;
2)能够完全匹配的模式比例分别为1‰、1%、2%、3%、4%、5%、6%、7%、8%、9%、10%、20%、30%、40%、50%、60%、70%、80%、90%、100%;
3)完全匹配的模式中词频最高模式出现频率为50%;
对上述20组模式集分别采用AC算法和本发明的方法进行匹配并进行相关测试,测试项包括AC算法和本发明的方法PROB的预处理时间(图6,横坐标表示模式数量)、匹配时间(图7,横坐标表示词频最高模式所占比例)和内存占用(图8,横坐标表示模式数量)的对比。
从图6、图7、图8中可以看出,本发明在控制匹配时间增幅的同时减少了预处理时间,并大大降低了系统的内存占用,提高了系统的性能。
Claims (3)
1.一种基于关键字词频特征的多模式匹配方法,包括以下步骤:
S21初始化二叉树;
S22输入待匹配模式串后开始匹配;
S23若匹配成功则判断匹配成功节点是否含有模式串结束标志,若是则输出模式串,若否则判断匹配成功节点的左分支节点是否存在,若是则将指针指向其左分支节点并返回S22,若否则结束匹配;若匹配失败则判断匹配失败节点的右分支节点是否存在,若是则将指针指向其右分支节点并返回S22,若否则结束匹配;
S24判断指针移动后是否超出待匹配模式串串尾,若否则返回S22,若是则结束匹配;
其中,所述初始化二叉树包括:
A)假设有定义在字符集Σ上的模式串集合K={s1,s2,s3,…,sn},其中,s1,s2,s3,…sk…,sn表示从已知数据库中提取的模式串,n表示模式串数量,其取值范围与计算机性能相关;用K中的模式串生成二叉树,并记第i层的左起第j个节点为aij,其中i,j=0,1,2,……,将同一模式中的字符所在节点标记为fk,并将终结字符节点标记为ok,其中k表示模式串集合中的第k个字符串,k=1,2,……,n;
B)统计模式串sk出现的频率pk,并将频率pk作为模式串sk的词频加入含有ok标记的节点;
C)设匹配一个字符的计算力是c,二叉树中最左分支由底向上的第一个分支节点为A,从A到输出其下m个分支中所有模式分别需要匹配节点lm次,m为A分支个数,由左向右对应模式sk,sk+1,……,sk+m-1;计算期望Em1=c*lk*pk+c*lk+1*pk+1+……+c*lk+m-1*pk+m-1;其中,c表示计算力,lk表示对应匹配模式sk所需匹配节点次数,pk表示sk所携带该模式词频信息;然后交换分支计算Em2,……,直至计算出最小期望EA=min{Em1,Em2,……},此时由右向左对应模式s’k,s’k+1,……,s’k+m-1;
D)由左向右由底向上依次找出A之外的所有节点并按上述方式进行二叉树的重构,当根节点计算完毕并交换分支后,即得到最终的二叉树。
2.如权利要求1所述的基于关键字词频特征的多模式匹配方法,其特征在于,步骤C)中所述最左分支包含根节点、根节点的左分支节点以及该左分支节点的左分支节点和其后左分支节点。
3.如权利要求1所述的基于关键字词频特征的多模式匹配方法,其特征在于,步骤A)中生成二叉树的规则为:根据模式串集合的初始词频信息将模式串按词频由高到低顺序排列,并依次插入二叉树,同时将模式串信息加入模式串末位字符节点中,并在该末位字符节点设置模式串结束标志;首次插入的模式串中,后插入的字符节点作为先插入的字符节点的左分支节点;若两模式串前缀相同,则将后插入的模式串的首个不相同节点作为先插入的模式串的首个不相同节点的右分支节点插入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510755911.XA CN105373601B (zh) | 2015-11-09 | 2015-11-09 | 一种基于关键字词频特征的多模式匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510755911.XA CN105373601B (zh) | 2015-11-09 | 2015-11-09 | 一种基于关键字词频特征的多模式匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105373601A CN105373601A (zh) | 2016-03-02 |
CN105373601B true CN105373601B (zh) | 2019-05-21 |
Family
ID=55375800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510755911.XA Expired - Fee Related CN105373601B (zh) | 2015-11-09 | 2015-11-09 | 一种基于关键字词频特征的多模式匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105373601B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291743B (zh) * | 2016-03-31 | 2020-10-16 | 北京星选科技有限公司 | 数据的调用方法和装置 |
CN105897739A (zh) * | 2016-05-23 | 2016-08-24 | 西安交大捷普网络科技有限公司 | 数据包深度过滤方法 |
CN106713273B (zh) * | 2016-11-23 | 2019-08-09 | 中国空间技术研究院 | 一种基于字典树剪枝搜索的协议关键字识别方法 |
CN107622201B (zh) * | 2017-09-18 | 2018-07-24 | 湖南大学 | 一种抗加固的Android平台克隆应用程序快速检测方法 |
CN111475681B (zh) * | 2020-03-30 | 2023-05-16 | 湖北微源卓越科技有限公司 | 多模式字符串匹配系统及方法 |
CN112953852A (zh) * | 2021-01-27 | 2021-06-11 | 上海商米科技集团股份有限公司 | 一种基于TCP协议payload特征的应用识别方法 |
CN113347214B (zh) * | 2021-08-05 | 2021-11-12 | 湖南戎腾网络科技有限公司 | 一种高频状态匹配方法及系统 |
CN115878924B (zh) * | 2021-09-27 | 2024-03-12 | 小沃科技有限公司 | 一种基于双字典树数据处理方法、装置、介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425084A (zh) * | 2008-11-20 | 2009-05-06 | 上海交通大学 | 基于有序二叉树的模式匹配方法 |
CN103377259A (zh) * | 2012-04-28 | 2013-10-30 | 北京新媒传信科技有限公司 | 一种多模式字符串匹配方法和装置 |
-
2015
- 2015-11-09 CN CN201510755911.XA patent/CN105373601B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425084A (zh) * | 2008-11-20 | 2009-05-06 | 上海交通大学 | 基于有序二叉树的模式匹配方法 |
CN103377259A (zh) * | 2012-04-28 | 2013-10-30 | 北京新媒传信科技有限公司 | 一种多模式字符串匹配方法和装置 |
Non-Patent Citations (3)
Title |
---|
《一种多模式匹配高效算法的设计与实现》;李辉等;《北京工商大学学报(自然科学版)》;20090531;第27卷(第3期);正文第65-68页 |
《基于Aho-Corasick算法的多模式匹配算法研究》;王培凤等;《计算机应用研究》;20110430;第28卷(第4期);正文1251-1253、1259 |
《用于入侵检测的快速多模式匹配算法》;辛阳等;《北京邮电大学学报》;20080630;第31卷(第3期);正文第19-23页 |
Also Published As
Publication number | Publication date |
---|---|
CN105373601A (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105373601B (zh) | 一种基于关键字词频特征的多模式匹配方法 | |
CN104462253B (zh) | 一种面向网络文本大数据的话题检测或跟踪方法 | |
CN109214191A (zh) | 一种利用深度学习预测软件安全漏洞的方法 | |
CN105224872A (zh) | 一种基于神经网络聚类的用户异常行为检测方法 | |
CN108051660A (zh) | 一种变压器故障组合诊断模型建立方法及诊断方法 | |
CN105184394B (zh) | 基于配电网cps在线数据挖掘的优化控制方法 | |
CN104537303A (zh) | 一种钓鱼网站鉴别系统及鉴别方法 | |
Ferrara et al. | Automatic wrapper adaptation by tree edit distance matching | |
CN110990718A (zh) | 一种公司形象提升系统的社会网络模型构建模块 | |
CN106370631B (zh) | 一种荧光分光光度计的自动化测定与数据采录方法 | |
Chen et al. | The Evolutionary Algorithm to Find Robust Pareto‐Optimal Solutions over Time | |
CN105045808A (zh) | 一种复合规则集匹配方法和系统 | |
Bi et al. | MM-GNN: Mix-moment graph neural network towards modeling neighborhood feature distribution | |
CN103995828B (zh) | 一种云存储日志数据分析方法 | |
Wang et al. | Influential Node Identification in Command and Control Networks Based on Integral k‐Shell | |
CN110287237B (zh) | 一种基于社会网络结构分析社团数据挖掘方法 | |
Zhou et al. | Clustering multivariate time series data via multi-nonnegative matrix factorization in multi-relational networks | |
CN106127332A (zh) | 基于最优空间匹配的基站资源配置与规划方法 | |
CN105260748A (zh) | 一种不确定数据的聚类方法 | |
Han et al. | Non‐intrusive load monitoring by voltage–current trajectory enabled asymmetric deep supervised hashing | |
CN117972111A (zh) | 一种基于在线图处理技术面向知识图谱的知识推理方法 | |
Wang et al. | An improved clustering method for detection system of public security events based on genetic algorithm and semisupervised learning | |
Zhou et al. | Local community detection algorithm based on minimal cluster | |
Pan et al. | Study on intelligent anti–electricity stealing early-warning technology based on convolutional neural networks | |
CN105429138B (zh) | 基于小波变换的同调机群识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190521 Termination date: 20201109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |