基于字符串多模式匹配的网络流量分类识别方法和设备技术

技术编号:23892363 阅读:29 留言:0更新日期:2020-04-22 06:59
本发明专利技术公布了一种基于字符串多模式匹配的网络流量识别分类方法及设备,在字符串多模式匹配中引入位置信息特征,建立基于位置信息的多模式字符串匹配自动机,当且仅当受检测的网络流量和特征字符串位置信息特征相符时,才进行字符串匹配,极大地减少了字符串多模式匹配过程中目标字符串和特征字符串的比较次数;在网络流量分类和识别中进行网络流量和特征库匹配,能够解决网络流量分类和识别中常见的具有位置信息限制的多模式匹配问题,达到线性时间复杂度,极大地提高了字符串匹配效率,提高流量分类识别的效率。

【技术实现步骤摘要】
基于字符串多模式匹配的网络流量分类识别方法和设备
本专利技术涉及文本或网络报文中的字符串多模式匹配技术,尤其涉及一种基于位置和字符串多模式匹配的网络流量分类识别方法和设备。
技术介绍
在解决网络流量分类和识别问题的深度包检测技术(DeepPacketInspection)中,大量协议的传输层特征是有位置限制的。简单的比如像emule流量的传输层负载的第一个字节通常是0xe3,0xe4,或0xe5等特定字符。这样的特征很少的时候,是没必要采取算法的,直接按指定位置进行字符匹配即可。然而,在应用中这样的模式特征串集合往往是庞大的。如果模式串长度为m,个数为n,则每个目标串就要进行O(mn)时间复杂度的比较运算。这样繁复的计算对于实际的应用特别是实时应用来说显然是不可取的。依然以深度包检测技术中的应用为例,即便是几百种协议,每种协议不超过五个模式特征串,每个数据包都要匹配成千上万次,而实时应用中每秒钟就要处理几十万个数据包。此外,模式串集合中可能存在一些弱特征模式串是其他模式串的前缀子串,我们称之为前缀模式串。对于前缀模式串,多模匹配算法应避免其干扰其他模式的精准匹配。多模式匹配问题是计算机各领域都可能涉及的基本问题。多模匹配问题可以简单地描述为:在一个目标文本串T中一次查找多个模式特征串Q={p1,p2,…,pn},其中n是模式串的个数。例如,目标文本串T为:“abcdef123456”,模式串集合为:Q={“abc”,“df”,“145”,“34”,“xyz”},则经过多模匹配之后,查找结果是:文本串T匹配到模式串集合Q中的“abc”、“34”两个模式串。多模匹配算法通过对目标串进行一次扫描,便能找出所有匹配成功的模式串,具有很高的匹配效率,因此广泛应用于病毒检查、数据挖掘、协议识别等众多领域。多模匹配有AC(Aho-Corasick)算法、WM(WuManber)算法等经典算法。以AC为例,它利用自动机的原理将字符匹配转化成状态转移。具体地说,AC算法首先根据给定的模式串集合建立一个有限/无限状态自动机,然后把目标串作为自动机的输入,如果匹配到终止状态结点,就认为匹配到了相应的模式串,其核心是要建立状态转移函数、失效函数和输出函数。然而,传统的多模式匹配算法并不能解决带有位置限制的多模匹配问题。
技术实现思路
为了克服上述现有技术存在的不足,解决网络流量分类和识别中常见的具有位置信息限制的多模式匹配问题,本专利技术提出一种基于字符串多模式匹配的网络流量分类识别方法和设备,在字符串多模式匹配中,引入位置信息特征,建立基于位置信息的多模式字符串匹配自动机,当且仅当受检测的网络流量和特征字符串位置信息特征相符时,才进行字符串匹配,极大地减少了字符串多模式匹配过程中目标字符串和特征字符串的比较次数,网络流量分类和识别应用中,进行网络流量和特征库匹配时,使用本专利技术技术,可以达到线性时间复杂度,极大地提高了字符串匹配效率,提高流量分类识别的效率。网络流量分类和识别应用中,根据网络报文的应用层特征如:IP、端口等进行网络报文所属协议的识别和分类,然而,网络协议应用层特征具有其局限性,比如:应用层特征较易发生变化;一些不同类型的网络协议,常常具有相同的应用层特征,因此,在网络报文应用层进行流量分类和识别的识别率和准确率都具有其局限性。在网络协议更底层的传输层,不同协议的报文差异性更大,因此本专利技术解决网络流量分类和识别应用中的传输层特征匹配问题。由于,大多数网络协议的传输层特征是有位置限制的。比如像emule流量的传输层负载的第一个字节通常是0xe3,0xe4,或0xe5等特定字符。因此,每种网络协议可以提取若干条可以表征自身协议类型的网络报文传输层特征字符串,形成报文识别和分类所依赖的已知网络协议特征字符串集合。网络流量识别和分类时,将未知网络报文和已知网络协议特征字符串集合进行匹配,根据匹配结果,对未知网络报文进行识别和分类。因为不同类型网络协议通常只是在报文中特定位置进行特征标识,比如报文头部、尾部或其他部分特定位置的若干个字符,而其余的大多数信息对于流量识别是冗余的。因此可以只匹配已知网络流量各类别的特征字符串所包含特定流量位置部分的信息,跳过大量不必要的比较,从而大大降低字符串比较次数,实际应用中,由于不同网络协议传输层差异较大,所提取的特征字符串位置和字符取值差异也比较大,因此,多数情况只通过若干次比较即可确定未知网络流量的分类结果,网络流量识别和分类效率很高。基于字符串多模式匹配的网络流量识别分类方法包括以下步骤:首先,提取得到已知网络流量各类别基于位置的传输层特征字符串集合,建立基于位置信息的多模式字符串匹配自动机,具体步骤包括:1.创建多叉树,根节点表示网络流量特征字符串集合匹配的开始位置;2.对已知网络流量各类别基于位置的传输层特征字符串集合中每个特征字符串,将每个字符从左到右依次插入多叉树的每一层,树的内节点和终态节点中记录字符取值以及字符在该特征字符串中的位置;3.循环执行第2步,直到所有已知网络流量各类别的特征字符串均已插入多叉树中,其中每个特征字符串是多叉树的一条从根节点到终态节点的路径;4.当某个特征字符串的插入过程中是基于已存在的终态节点进行的时,说明已存在该特征字符串的前缀匹配特征串,则在该终态节点中增加前缀匹配标记,可选择布尔变量值True进行标记;5.该多叉树即基于位置信息的网络流量识别和分类自动机。其次,根据基于位置信息的网络流量识别和分类自动机进行未知网络流量的识别与分类,步骤包括:1.从上述建立的基于位置信息的网络流量识别和分类自动机的根节点开始,基于深度优先遍历算法,将多叉树的每个节点和当前需要识别和分类的网络流量进行字符串比较;2.基于位置信息的网络流量识别和分类自动机的每个节点与未知网络流量的字符串中的字符进行比较时,首先比较该节点和未知网络流量的字符串当前位置字符的位置信息,如果位置信息不同,则结束该条路径的遍历,返回上一层节点;如果位置信息相同,则比较字符取值是否相同,字符取值相同时将该条路径的下一个节点和未知网络流量的字符串下一个位置的字符进行比较,否则,结束该条路径的比较,返回上层节点;3.未知网络流量的字符串匹配到自动机的终态节点时,如果终态节点的位置信息与字符值和未知网络报文字符串中的字符匹配成功,则返回该条路径表示的特征字符串或该特征字符串代表的网络流量类别,完成被检测网络流量的识别和分类;否则,说明该特征字符串匹配失败,逐级返回自动机的上层节点进行下一条路径的匹配。4.基于位置的网络流量识别和分类自动机的终态节点在与未知网络流量的字符串中的字符进行比较时,如果该节点存在前缀匹配标记,则继续匹配该条路径和未知网络流量的字符串,如果匹配成功,则返回其中长度更长的特征字符串或其代表的网络流量类别,完成被检测网络流量的识别和分类;否则,返回该终态节点表示的特征字符串或其代表的网络流量类别,完成被检测网络流量的识别和分类。在第一部分,建立的网络流量识别和分类自动机需本文档来自技高网
...

【技术保护点】
1.一种基于字符串多模式匹配的网络流量识别分类方法,其特征是,包括以下步骤:/n1)首先,提取得到已知网络流量各类别基于位置的传输层特征字符串集合,建立基于位置信息的多模式字符串匹配自动机;包括如下过程:/n11)创建多叉树,多叉树的根节点表示网络流量特征字符串集合匹配的开始位置;/n12)对已知网络流量各类别基于位置的传输层特征字符串集合中的每个特征字符串,将每个字符从左到右依次插入多叉树的每一层,树的内节点和终态节点中记录字符取值以及字符在该特征字符串中的位置;/n13)循环执行步骤12),直到所有已知网络流量各类别的特征字符串均已插入多叉树中,其中每个特征字符串是多叉树的一条从根节点到终态节点的路径;/n14)若特征字符串是基于已存在的终态节点进行插入时,说明已存在该特征字符串的前缀匹配特征串,则在该终态节点中增加前缀匹配标记,可选择布尔变量值True进行标记;/n15)上述多叉树即为基于位置信息的网络流量识别和分类自动机;/n2)根据基于位置信息的网络流量识别和分类自动机进行未知网络流量的识别与分类,包括如下操作:/n21)从上述建立的基于位置信息的网络流量识别和分类自动机的根节点开始,基于深度优先遍历算法,将多叉树的每个节点和当前需要识别和分类的网络流量进行字符串比较;/n22)基于位置信息的网络流量识别和分类自动机的每个节点与未知网络流量的字符串中的字符进行比较时,首先比较该节点和未知网络流量的字符串当前位置字符的位置信息,如果位置信息不同,则结束该条路径的遍历,返回上一层节点;如果位置信息相同,则比较字符取值是否相同,字符取值相同时将该条路径的下一个节点和未知网络流量的字符串下一个位置的字符进行比较;否则,结束该条路径的比较,返回上层节点;/n23)当未知网络流量的字符串匹配到自动机的终态节点时,如果终态节点的位置信息与字符值和未知网络报文字符串中的字符匹配成功,则返回该条路径表示的特征字符串或该特征字符串代表的网络流量类别,完成被检测网络流量的识别和分类;否则,说明该特征字符串匹配失败,逐级返回自动机的上层节点进行下一条路径的匹配;/n24)将基于位置的网络流量识别和分类自动机的终态节点在与未知网络流量的字符串中的字符进行比较时,如果该节点存在前缀匹配标记,则继续匹配该条路径和未知网络流量的字符串;如果匹配成功,则返回其中长度更长的特征字符串或其代表的网络流量类别,完成被检测网络流量的识别和分类;否则,返回该终态节点表示的特征字符串或其代表的网络流量类别,完成被检测网络流量的识别和分类。/n...

【技术特征摘要】
1.一种基于字符串多模式匹配的网络流量识别分类方法,其特征是,包括以下步骤:
1)首先,提取得到已知网络流量各类别基于位置的传输层特征字符串集合,建立基于位置信息的多模式字符串匹配自动机;包括如下过程:
11)创建多叉树,多叉树的根节点表示网络流量特征字符串集合匹配的开始位置;
12)对已知网络流量各类别基于位置的传输层特征字符串集合中的每个特征字符串,将每个字符从左到右依次插入多叉树的每一层,树的内节点和终态节点中记录字符取值以及字符在该特征字符串中的位置;
13)循环执行步骤12),直到所有已知网络流量各类别的特征字符串均已插入多叉树中,其中每个特征字符串是多叉树的一条从根节点到终态节点的路径;
14)若特征字符串是基于已存在的终态节点进行插入时,说明已存在该特征字符串的前缀匹配特征串,则在该终态节点中增加前缀匹配标记,可选择布尔变量值True进行标记;
15)上述多叉树即为基于位置信息的网络流量识别和分类自动机;
2)根据基于位置信息的网络流量识别和分类自动机进行未知网络流量的识别与分类,包括如下操作:
21)从上述建立的基于位置信息的网络流量识别和分类自动机的根节点开始,基于深度优先遍历算法,将多叉树的每个节点和当前需要识别和分类的网络流量进行字符串比较;
22)基于位置信息的网络流量识别和分类自动机的每个节点与未知网络流量的字符串中的字符进行比较时,首先比较该节点和未知网络流量的字符串当前位置字符的位置信息,如果位置信息不同,则结束该条路径的遍历,返回上一层节点;如果位置信息相同,则比较字符取值是否相同,字符取值相同时将该条路径的下一个节点和未知网络流量的字符串下一个位置的字符进行比较;否则,结束该条路径的比较,返回上层节点;
23)当未知网络流量的字符串匹配到自动机的终态节点时,如果终态节点的位置信息与字符值和未知网络报文字符串中的字符匹配成功,则返回该条路径表示的特征字符串或该特征字符串代表的网络流量类别,完成被检测网络流量的识别和分类;否则,说明该特征字符串匹配失败,逐级返回自动机的上层节点进行下一条路径的匹配;
24)将基于位置的网络流量识别和分类自动机的终态节点在与未知网络流...

【专利技术属性】
技术研发人员:司俊俊涂波
申请(专利权)人:邑客得上海信息技术有限公司
类型:发明
国别省市:上海;31

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

1