CN101605126B - 一种多协议数据分类识别的方法和系统 - Google Patents

一种多协议数据分类识别的方法和系统 Download PDF

Info

Publication number
CN101605126B
CN101605126B CN2008101147510A CN200810114751A CN101605126B CN 101605126 B CN101605126 B CN 101605126B CN 2008101147510 A CN2008101147510 A CN 2008101147510A CN 200810114751 A CN200810114751 A CN 200810114751A CN 101605126 B CN101605126 B CN 101605126B
Authority
CN
China
Prior art keywords
node
sequence
node sequence
data
protocol
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
Application number
CN2008101147510A
Other languages
English (en)
Other versions
CN101605126A (zh
Inventor
姚秋林
张志斌
郭莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yantai Zhong Ke Network Technical Institute
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2008101147510A priority Critical patent/CN101605126B/zh
Publication of CN101605126A publication Critical patent/CN101605126A/zh
Application granted granted Critical
Publication of CN101605126B publication Critical patent/CN101605126B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种多协议分类识别的方法和系统,包括:网络流数据截获装置,用于截取每个网络流连接应用层的负载数据构成输入向量;解析装置,用于利用文本类协议数据高层语义信息将所述输入向量解析成可比较的结点序列集合;比较合并装置,将所述结点序列集合中相似的结点序列合并成一个新的结点序列;归类装置,将所述相似合并后的结点序列集合按协议类别分类;特征提取装置,用于对每一个分类结果的集合进行特征提取操作,所得特征可用于识别出所述输入向量的协议类型。与基于端口方法相比,由于协议特征内容具有较强的稳定性,大量同协议的数据将在相似合并阶段合并在一起,分类结果中信息将更为集中,据此提取的特征更为有效,结果精度更高。

Description

一种多协议数据分类识别的方法和系统
技术领域
本发明涉及网络流识别技术领域,更具体地,本发明涉及一种基于文本类内容属性特征的多协议数据分类识别的方法与系统。 
背景技术
目前,网络流识别技术成为关注的焦点,准确、快速的识别网络流应用层协议的类别,对当前网络的运行和管理而言具有重大的现实意义,诸如有助于深化网络流工程学、网络容量设计和分配、服务质量(QoS)控制、网络性能监控、异常根源分析和安全监控等的研究。在网络流量分配的应用的期间,可以在完成协议识别的基础上控制各种应用协议的使用带宽,保证关键应用,抑制不希望出现的应用,例如针对HTTP、SMTP、FTP、MSN、QQ和BT等协议实现不同的流量带宽限制、或者是禁正使用。 
当前的网络流识别方法主要是基于网络流特征的识别方法,通过将待识别数据和各个协议特征进行逐一匹配,以匹配度最高者作为网络流识别的结果。基于网络流特征的识别方法可以分为基于行为属性特征和基于内容属性特征的方法。基于行为属性特征的方法的信息源为流的行为属性,诸如包大小、包间距和包数量等信息;而基于内容属性特征的方法的信息源则是应用层协议负载数据。 
基于内容属性特征的网络流识别方法根据特征获取方式的不同可以分为手工获取方式和自动获取方式。手工获取方式以L7-Filter流识别引擎和Ethereal协议识别工具最为著名,此种方法的特征获取过程是对实际网络的截获数据进行人工分析、总结并归纳协议特征,具有准确性高的特点,但工作量巨大,不宜实际应用。自动获取方式是从网络截取的原始网络数据中自动提取网络流协议特征,一个必不可少的环节是对原始数据的分类过程,将属于相同协议的数据分到相同组中以进行后续的协议特征提取操作。当前网络流识别方法中对原始数据按协议类别自动分类并没有有效的方法,而是借助 传统的基于端口的方法进行粗分组,然后依据统计模型的相似性进行合并。文献(一个意想不到的协议推理方法,2006年互联网测量会议论文集,Justin Ma,K.Levchenko,C.Kreibich,S.Savage,and G.Voelker.Unexpected Means ofProtocol Inference.In Proceedings of the 2006 Internet Measurement Conference,2006)公开了一种对多协议数据自动进行协议特征提取的方法,以下简称Justin Ma方法。Justin Ma基于端口的方法将原始数据按照协议类型分到若干组中,然后基于统计模型对特征进行提取。 
Justin Ma方法的基本原理:认为属于相同协议的网络流数据中,各个位置上的字符或相邻两个字符间的转移存在一个特定的分布,通过训练过程获得这个分布后便可据此对新数据进行识别。如果待识别数据符合该分布,那么认为待识别数据属于相应网络流协议类型。为实现对相同协议的网络流进行训练,首先需要对原始输入数据进行分组,将相同协议数据聚集在一起,具体步骤如下: 
(1)、分组:对原始输入数据根据端口和IP地址信息进行分组;在JustinMa方法中基于这样的分组原则,即“含有相同的服务IP地址和服务端口的数据分为一组”以及“较短的时间内,相同客户IP地址和服务端口的数据分为一组”; 
(2)、构造:对上述分组结果中的每一组都建立统计模型; 
(3)、比较合并:对由不同输入数据组生成的统计模型进行相似比较,如果比较结果为真,那么认为两个组的输入数据属于相同网络流协议,将两个统计模型合并为一个新的统计模型; 
(4)、评分:比较合并之后,将得到一组统计模型,其中每个统计模型代表一个网络流协议,模型中的信息分布即代表协议特征;对一个待识别的网络流数据,让所有统计模型对其进行评分,评分结果最大者即为网络流识别结果。 
由于Justin Ma方法的分组过程完全基于端口信息,而传统的基于端口的方法由于动态端口等技术的广泛应用已导致准确率下降,因而Justin Ma方法的初始分组就存在准确性不足的问题。利用国内某骨干路由器上1小时内截获的100G广域网原始数据,从中取出一半共470,751条网络流数据,对JustinMa的分组性能进行测试,发现Justin Ma方法将数据分割到过多的组中,即使经过后期的相似合并处理,最后生成的统计模型仍然十分分散,在结果中对同一个网络流协议会同时存在多个统计模型。由此可见,Justin Ma方法将 有限的信息分散到大量的识别模型中,降低了识别精度。 
发明内容
为克服现有协议识别中基于端口识别信息分散、精度低的缺陷,本发明提出一种多协议数据分类识别的方法和系统。 
根据本发明的一个方面,提出了一种多协议数据分类识别的方法,包括: 
步骤10)、将网络流数据包按顺序拼接,截取每个网络流连接应用层的负载数据构成输入向量; 
步骤20)、利用文本类协议数据高层语义信息将所述输入向量集合解析成可比较的结点序列集合; 
步骤30)、基于结点序列的相似性规则将所述结点序列集合中相似的结点序列合并成一个新的结点序列; 
步骤40)、利用结点序列的自归类算法将所述相似合并后的结点序列集合按协议类别分类; 
步骤50)、对每一个分类结果的集合进行特征提取操作,识别出所述输入向量的协议类型。 
其中,步骤10)还包括: 
捕获网络中数据包,通过拼流操作将网络流数据包按顺序拼接,截取每个网络流连接应用层的负载数据前64字节数据构成一个输入向量;其中,每个连接将生成2个不同方向的输入向量。 
其中,步骤20)进一步包括: 
根据文本类协议数据高层语义信息,定义判断文本类和非文本类协议数据的规则,将输入向量分为文本类协议数据和非文本类协议数据;基于文本类数据中的语义信息,定义一组解析规则,将一个网络流连接的输入向量解析成一维的可比较的结点序列。 
其中,步骤30)进一步包括:定义结点序列相似性规则,基于两个结点序列的相似性结果,将结点序列集合划分为多个相似子集合,并将相似子集合合并为一个新的结点序列。 
其中,步骤40)进一步包括:利用结点序列的自归类算法将所述相似合并后的结点序列集合按协议类别分类,根据“同一个网络流连接的两个方向 的数据属于相同协议”,通过计算连接矩阵并递归遍历,将经过相似处理后的结点序列归为多个类。 
其中,步骤50)进一步包括:以每个按协议划分后的同协议类作为特征提取对象,以字符集合和字符串集合组成的序列表示特征,在类内通过将特征可能性较小内容过滤后,进行词频统计,将含最大词频词的结点序列子集合作为一个子组进行对齐和合并操作,形成一个特征。 
其中,所述文本类协议数据需要满足:所述输入向量中可见字符占总字符比重大于ρ%,其中,ρ的取值范围为35到60,一般取50;并且所述输入向量中可见字符后紧接不可见字符情况的出现总次数小于β次,其中,β取值范围为7到12,一般取10。 
其中,步骤20)还包括: 
步骤210)、将所述输入向量集合排序,合并相同的输入向量; 
步骤220)、对于每个输入向量,将输入向量中的不同的连续字符序列解析为不同类型的结点,形成结点序列集合; 
步骤230)、在所述结点序列集合中,合并相同的结点序列,所述输入向量集合被解析成结点序列集合。 
其中,所述结点序列相似性规则包括: 
结点序列长度和类型分布均相同,并且值信息满足方程β1*IEN+β2*VEN>=β3*NEN,两结点序列相似;其中,IEN为值相同的IDENTIFIER类型结点数量,VEN为值相同的其它类型结点数量,NEN为所有类型值不同的结点数量,并且其中,β3>β2>β1,一般地,β3=2,β2=1,β1=0.49。 
其中,步骤30)还包括: 
步骤310)、将结点序列集合按照结点序列的长度信息、结点序列中结点类型信息以及结点值信息进行排序; 
步骤320)、根据所述相似性规则,将等长且类型序列相同的连续结点序列划归为同一个组; 
步骤330)、对于每个划分的组,将相似结点序列分到同一个子组,将每个结点序列子组合并为一个新的结点序列,如果合并时对应位置上结点值不相同,在合并得到的新结点序列对应位置上使用选择集合进行描述,选择集合中包含子组中所有该位置结点的取值; 
步骤340)、处理选择集合,根据如下原则将选择集合升级为变量,表示该位置内容为可变信息:选择集合大小大于β,其中,β的取值范围为10到25,一般取20;或者选择集合中所有字符串长度相同,且选择集合大小大于β,其中β的取值范围为5到10,一般取7。 
其中,步骤40)还包括: 
步骤410)、将结点序列集合按原连接方向分为两组,每一组看作一个维度,构成一个结点序列组成的二维结构; 
步骤420)、每个合并后的结点序列对应一组包括源IP、源端口、目的IP和目的端口的4元组,上述结点序列的二维结构对应一个4元组集合组成的二维结构; 
步骤430)、所述4元组集合的二维结构的连接矩阵每个元素的值为元素坐标对应的两个4元组集合的交集大小;若坐标为(i,j)处的矩阵元素值大于零,表示第i行第j列相连,则所有相连的行列对应的4元组结点序列属于相同协议。 
其中,步骤50)还包括: 
步骤510)、构造非特征字符串词典,将所有特征可能性较小的字符串加入词典用于过滤非特征字符串; 
步骤520)、对类内剩余结点序列的值信息字符串,通过词典过滤非特征字符串,统计剩余字符串频率; 
步骤530)、将类中含最高频率字符串的结点序列单独取出作为一个子组,类内剩余部分作为一个新类; 
步骤540)、对子组进行对齐操作,定位同时出现在所有结点序列中而且出现顺序一致的字符串序列,这些字符串所在结点为对齐点; 
步骤550)、将对应位置对齐点连成线,把子组剩余内容划分为多个独立部分,合并这些独立部分为新结点,所得对齐点和新结点构成的结点序列即为特征。 
其中,步骤540)还包括:选取一个结点序列作为基本序列,其中所有对齐点必然出现在基本序列中;设置两个数据结构,第一个用于记录基本序列每一个字符串出现在多少个序列中,第二个用于记录基本序列每个字符串出现在其他序列中的所有位置,所有其他序列逐个和基本序列进行比较,并维护 所述两个数据结构的信息;遍历第一个数据结构,找出所有值等于输入序列总数K的字符串,那么这些字符串构成的集合一定包含结果对齐点集合;根据第二个数据结构中记录的位置信息,从中找出一个每行位置递增的矩阵来获得近似对齐点;所得位置矩阵对应的字符串为所求对齐点。 
根据本发明的另一方面,提出了一种多协议数据分类识别的系统,包括: 
网络流数据截获装置,用于将网络流数据包按顺序拼接,截取每个网络流连接应用层的负载数据构成输入向量; 
解析装置,用于利用文本类协议数据高层语义信息将所述输入向量解析成可比较的结点序列集合; 
比较合并装置,基于结点序列的相似性规则将所述结点序列集合中相似的结点序列合并成一个新的结点; 
归类装置,利用结点序列的自归类算法将所述相似合并后的结点序列集合按协议类别分类; 
特征提取装置,用于对每一个分类结果的集合进行特征提取操作,识别出所述输入向量的协议类型。 
其中,所述解析装置进一步包括:根据基于文本类协议数据高层语义信息判断文本类和非文本类协议数据,将输入向量分为文本类协议数据和非文本类协议数据;基于文本类数据中的语义信息,将一个网络流连接的输入向量解析成一维的可比较的结点序列。 
其中,所述比较合并装置进一步包括:根据定义的结点序列相似性规则,基于两个结点序列的相似性结果,将结点序列集合划分为多个相似集合;基于结点序列的相似性将结点序列集合中相似的结点序列合并成一个新的结点序列。 
其中,所述归类装置还可以包括:利用结点序列的自归类算法将所述相似合并后的结点序列集合按协议类别分类,根据“同一个网络流连接的两个方向的数据属于相同协议”,通过计算连接矩阵并递归遍历,将经过相似处理后的结点序列归为多个类。 
其中,所述特征提取装置还可以包括:以每个按协议划分后的同协议类作为特征提取对象,以字符集合和字符串集合组成的序列表示特征,在类内通过将特征可能性较小内容过滤后,进行词频统计,将含最大词频词的结点 序列子集合作为一个子组进行对齐和合并操作,形成一个特征。 
本发明基于“内容和结构高度相似的数据属于同一个协议”和“同一网络流两个方向上的数据属于同一个协议”的原则,对原始网络流数据进行自动分类,并基于分类结果进行特征的自动提取。与基于端口方法导致的信息分散和结果精度不高相比,由于协议特征内容具有较强的稳定性,大量同协议的数据将在相似合并阶段合并在一起,分类结果中信息将更为集中,据此提取的特征更为有效,结果精度更高。 
附图说明
图1为解析流程图; 
图2为相似比较合并流程图; 
图3为归类数据处理过程示意图; 
图4为特征的自动机表示形式示意图; 
图5-a、5-b和5-c分别是TPCAD和Justin Ma两模型的错误率、准确率和召回率对比结果示意图。 
具体实施方式
下面结合附图和具体实施例对本发明提供的一种多协议分类识别的方法和系统进行详细描述。 
随着计算机和网络应用的普及,网络中应用协议层出不穷,为了满足网络流协议快速匹配的需求,在根据本发明的实施例中,提出一种基于内容属性特征的文本类协议分类识别的方法和系统,其中,系统简称TPCAD。其中,对原始数据按协议类别分类是特征表示与提取的前提,特征的提取总是针对某个特定协议的数据进行的,特征提取可以高速的进行网络流识别,并且可以对单个未知网络流进行识别。 
当前对原始数据按协议类别分类识别的方法是基于端口的粗分类,该方法存在有效信息分散和精度不高的缺点。为避免基于端口方法的不足,根据本发明的实施例提出一种对原始数据按文本进行多协议分类识别的方法,包括以下步骤: 
(一)、捕获网络中数据包,通过拼流操作将网络流数据包按顺序拼接在 一起,截取每个网络流连接应用层负载数据的前64个字节数据构成一个输入向量,由于一个网络流连接有两个方向,因而每个连接将生成2个输入向量。 
(二)由于发现文本类协议数据中的特殊语义信息有助于寻求新的有效的协议数据分类方法,自定义了一组判断文本类和非文本类协议数据的规则,将输入数据分为文本类协议数据和非文本类协议数据;基于文本类数据中的语义信息,定义一组解析规则,将一个网络流连接的输入向量解析成一维的可比较的结点序列。 
(三)、定义结点序列相似性比较规则,给出两个结点序列的相似性结果,据此可将结点序列集合划分为多个相似集合,相似集合内结点序列间相似;可以基于结点序列的相似性规则将结点序列集合中相似的结点序列合并成一个新的结点序列。 
(四)、利用结点序列的自归类算法将相似合并后的结点序列集合按协议类别分类;基于“同一个网络流连接的两个方向的数据属于相同协议”的原理,通过计算连接矩阵并递归遍历,将经过相似处理后的结点序列归为多个类,每个类内所有结点序列属于相同协议。 
(五)、对每一个分类结果类进行特征提取操作:以字符集合和字符串集合组成的序列表示特征;以每个按协议划分后的同协议类作为特征提取对象,在类内通过将特征可能性较小内容过滤后,不断进行词频统计,每次将含最大词频词的结点序列子集合作为一个子组进行对齐和合并操作形成一个特征,直到类内为空。 
以下将对上述步骤进行详细说明,以下所述实施例的特征不应该被理解为对本发明的限制,而是本发明的一种较佳的实施方式。 
在上述步骤(二)中,表明本发明以文本类协议数据为处理对象。通过对原始输入数据的分析发现,输入数据可以分为两类:文本类协议数据和非文本类协议数据。文本类协议指的是富含高层语义信息,表现出一定的人可读性的协议,如内容中以可见字符占主体,存在大量空格和换行字符等的协议。该类协议数据可以根据这些内容特点方便的进行解析,从中抽取数据的结构信息和内容信息,达到对数据更为准确的分类。对非文本类协议,由于协议数据中各字段边界通过约定方式确立,从数据内容中难以直接区分,加之各字段内容表现出较强的随机性,所以难以进行结构解析。对文本类协议和非 文本类协议数据间的判别,根据经验数据,本发明定义以下规则: 
(a)、输入向量中可见字符占总字符比重大于ρ%,ρ的取值范围为[35,60],一般取50;(b)、输入向量中可见字符后跟不可见字符情况的出现总次数小于β次,β取值范围为[7,12],一般取10; 
如果同时满足两条件,那么输入向量为文本类协议,否则为非文本类协议。 
上述步骤(二)中结点定义为表示输入向量解析结果的数据结构,描述输入向量的语义信息和每个部分的具体内容,拥有类型和值两个属性,其中值属性表示的就是相应的字符串内容。 
如图1所示,上述步骤(二)又可分为如下步骤: 
1)将输入向量集合排序,合并相同输入向量; 
2)对每个输入向量按以下规则进行解析: 
a)将URL和由数字和’.’组成的版本信息解析成IDENTIFIER类型结点; 
b)将连续的空白字符串解析成WHITE类型结点; 
c)将连续的大小写英文字母字符串解析成ALPHA类型结点; 
d)将连续的数字字符串解析成NUM类型结点; 
e)将连续的标点符号串解析成PUNC类型结点; 
f)将连续的其他字符解析成BIN类型结点; 
g)将连续的类型为ALPHA的,值为可读有意义单词的若干个结点合并为SENTENCE类型结点; 
3)在结点序列集合中,合并相同的结点序列; 
4)输入向量集合最终被解析成一个结点序列集合。 
一个具体例子如表1所示,表中给出了6个输入向量样例,并给出解析后得到的结点序列。 
表1  解析模块输入输出示例 
\x10HTTP/1.1 401 Authorization Required\x0d\x0aDate:Thu,31 May 2007 08:0
\x01REPORT MEDIAINFO/1.0\x0d\x0aCID:090C120C8050B1998E1E198D3005F3A766819
\x01FRIN 0 danny223nate.com 100898341\x0d\x0a
\x10220 raptor.gallo-domain.gallodisplays.com Microsoft ESMTP MAIL S
\x10220 smtp1.tessera.com modusGate ESMTP Receiver Version 4.4.568.3
\x10220 premail4.smrn.com ESMTP Postfix(California Business and Pro
其中,\x10和\x01表示流方向,后面内容为协议数据。 
Figure S2008101147510D00091
其中,两个连续 
Figure S2008101147510D00102
符号之间的内容为一个结点的值,‘ ’作为分隔符使用。 
步骤(三)首先需要定义相似比较函数,用于判断两个结点序列的相似性。对于结点序列而言,可以用于比较的信息包括结点序列的总长度信息、结点的类型信息以及结点的值信息。因为本发明认为相似的结点序列属于相同协议,因而对相似函数的准确性要求很高,所以本发明的实施例根据实验反馈数据,对两个结点序列定义如下相似规则: 
(a)、结点序列长度不相同时不相似; 
(b)、长度相同时,对应序列位置上存在类型不相同结点时不相似; 
(c)、长度和类型分布均相同时,比较值信息,定义IEN为值相同的IDENTIFIER类型结点数量,VEN为值相同的其他类型结点数量,NEN为所有类型值不同的结点数量,如果满足方程β1*IEN+β2*VEN>=β3*NEN,那么两结点序列相似,否则不相似;其中β3>β2>β1,一般取β3=2,β2=1,β1=0.49。 
如图2所示,上述步骤(三)又可分为如下步骤: 
1)、将结点序列集合按照结点序列的长度信息、各结点序列中结点类型信息以及各结点值信息进行排序; 
2)、对排序后的结点序列进行相似合并: 
(a)、根据相似规则,将排序结果中等长且类型序列相同的位置连续的结点序列划归为同一个组; 
(b)、对每个划分的组进行相似性处理:利用相似规则计算结点序列间的相似关系,将相似结点序列分到同一个子组,然后将每个结点序列子组合并为一个新的结点序列;合并时如果对应位置上结点值不相同,那么在合并得到的新结点序列对应位置上使用选择集合进行描述,选择集合中包含所有该位置结点的取值; 
(c)、处理选择集合:该步骤将根据一组预定义原则确定是否将选择集合升级为变量,以表示该位置内容为可变信息。其中,预定义规则如下: 
i.如果选择集合大小大于β,则集合升级为变量,其中β的取值范围为[10, 25],一般取20; 
ii.如果选择集合中所有字符串长度相同,且选择集合大小大于β,则集合升级为变量,其中β的取值范围为[5,10],一般取7。 
3)、判断当前过程中是否有合并发生,如果有则转1),否则退出。 
一个具体例子如表2所示,表中给出了3组相似内容合并前后的变化。 
表2相似比较合并模块输入输出示例 
Figure DEST_PATH_G200810114751001D00011
步骤(四)的主要功能是将经过相似合并处理后的结点序列按协议类别归类,归类过程基于原理“同一个网络流连接的两个方向的数据属于相同协议”。 
如图3所示,步骤(四)又可分为如下步骤: 
1)将结点序列按原连接方向分为两组,将每一组看作一个维度,构成一个结点序列组成的二维结构,P表示一个相似合并后的序列(图3-a); 
2)每个合并后的结点序列对应一组(源IP,源端口,目的IP,目的端口)4元组,将结点序列用4元组集合表示,则构成一个4元组集合组成的二维结构,T表示一个4元组(图3-b); 
3)对4元组集合的二维结构计算连接矩阵,连接矩阵每个元素的值为元素坐标对应的两个4元组集合的交集大小(图3-c);根据连接矩阵计算连通子集合。若坐标为(i,j)处的矩阵元素值大于零表示第i行第j列相连,那么所有相连的行列对应的4元组集合(结点序列)称为连通子集合,均属于相同协议。通过递归遍历,输出所有相连的4元组集合,将所有相连的4元组集合转为序列,将序列按协议分类结果,于是每一个连通子集合对应一个协议类别划分结果(图3-d-e-f)。 
步骤(五)的主要目的是从上述分类后的每个类中提取协议特征用于网 络流识别。和Justin Ma的基于统计模型的特征表示方法不同,本发明的实施例定义特征为如下序列: 
F1,F2,F3,……,Fn
其中,Fi,i∈[1,n]表示一个字符集合或字符串集合, 
匹配时,可将上述特征序列理解为一个非确定自动机(NFA)的状态。一个自动机状态转移例子如图4所示,其中Si状态对应Fi集合或字符串。图4中圈内点表示字符,横线表示字符串,字符集合内字符间无序,而字符串集合中字符串内各字符间有序。初始时,如果待匹配网络流数据第一个字符属于F1集合,那么状态转入S1,否则转入失败状态SF。如果后续的流数据仍属于F1集合,那么状态维持在S1内,如果后续流数据属于F2字符串集合中任意字符串起始字符,那么状态转入S2,否则当前数据与当前特征不匹配,转入失败状态SF。如果当前数据能够匹配至特征的终止状态Sn,那么认为成功匹配,当前网络流为当前特征对应协议。由于特征字符串的存在,以及字符集合范围的控制,使得这种特征具有较强的协议描述能力。 
为从分类结果的类中的结点序列集合中获得上述表示形式的特征,步骤(五)又可分为如下步骤: 
1)构造非特征字符串词典:在本发明的实施例的特征定义中,字符串可以作为特征内容,但并非所有字符串都是特征内容,将所有特征可能性较小的字符串加入词典用于过滤非特征字符串;由于特征内容很少表现为有意义单词形式,当前非特征字符串词典由常见英语单词及其复数形式和分词形式组成的26万个词条组成; 
2)对类内剩余结点序列的值信息字符串,首先通过词典过滤非特征字符串,然后统计剩余字符串频率; 
3)将类中含最高频率字符串的结点序列单独取出作为一个子组,类内剩余部分作为一个新类; 
4)对子组进行对齐操作:对齐操作指的是定位同时出现在所有结点序列中而且出现顺序一致的字符串序列,这些字符串所在的结点称为对齐点,表3为一个对齐点计算结果示例,黑体即为对齐点。 
表3  对齐点计算结果示例 
Figure S2008101147510D00121
如果希望求取的对齐点序列是最长对齐点序列,那么该问题即为最长公共子序列问题(Longest Common SubSenquence,LCS)。对输入为K个长为N的串时,LCS问题的复杂度为O(K*NK),由于复杂度过高,本发明将通过一个近似方法求解LCS的近似解,近似方法复杂度为O(K*N2),步骤如下: 
a)选取一个结点序列作为基本序列,根据对齐点的定义,最终结果中的所有对齐点必然出现在基本序列中; 
b)设置两个数据结构,第一个用于记录基本序列每一个字符串出现在多少个序列中,第二个用于记录基本序列每个字符串出现在其他序列中的所有位置,所有其他序列逐个和基本序列进行比较,并维护上述数据结构的信息; 
c)遍历第一个数据结构,找出所有值等于输入序列总数K的字符串,那么这些字符串构成的集合一定包含结果对齐点集合; 
d)交错情况处理,由于这种通过统计出现次数的方法来计算得到的对齐点可能存在交错的情况,例如当只存在序列AB和序列BA时,虽然A和B在两个序列中都出现了2次,但最长公共子序列长度仅为1,因为这两个长为1的对齐点出现交错。为消除交错情况,本发明将根据第二个数据结构中记录的位置信息,从中找出一个每行位置递增的矩阵来获得近似对齐点,可以确保不会出现上述交叉情况; 
e)所得位置矩阵对应的字符串即为所求对齐点。 
一个对齐点计算的例子如下: 
假设输入为3个序列,分别为: 
ACDB 
ABDC 
ADBC 
选择第一个序列为基本序列,那么第一个数据结构的内容为:3 3 3 3; 
第二个数据结构的内容为:0 3 2 1 
0 3 1 2 
当前在第二个数据结构中存在3个每行位置递增的矩阵,分别是: 
0    3    0    2         0    1 
0    3,  0    1,  0    2 
任选其一作为结果。 
实际操作中为从左至右按递增顺序获得一个结果,为0 3/0 3。 
对齐后的合并操作。在获得了对齐点之后,将对应位置上的对齐点连成一组竖线,可将子组中结点序列的非对齐点内容分割为多个部分,合并操作的任务就是将这些被分割出的独立部分合并成一个新的结点。目前的合并算法采用的是字符取值范围合并的方法,即生成的新结点的字符取值范围包含被合并的独立部分中出现的所有字符,而且尽可能小。另外合并前先处理合并内容两端的WHITE类型结点,如果所有序列均存在WHITE类型结点,那么在合并结果中将包含WHITE类型结点。一个具体的例子如表4所示,其中4-a表示一个根据高频字符串划分的子组,4-b表示根据计算所得对齐点进行的待合并内容的划分结果,4-c表示合并结果; 
5)如果当前新类非空,转2),否则退出。 
表4-a子组对齐后合并前数据 
Figure S2008101147510D00141
表4-b子组对齐后待合并内容的划分 
对齐点连成的分割线如上所示,待合并内容为两两分隔线内的内容 
表4-c子组合并结果 
Figure S2008101147510D00152
根据本发明的实施例提出的一种文本类协议分类和识别的系统,包括: 
网络流数据截获装置,用于从网络路由器上截获网络通信数据包,并按包序拼接成完整网络流,最后截取每个完整网络流起始N字节数据组成输入向量作为协议特征发现和提取方法的输入。其中N的取值可根据需要设置为不同数值,如64、256和1024等,本专利取N为较小的整数64。 
解析装置,利用文本类协议数据高层语义信息将所述输入向量解析成可比较的结点序列集合;其中,定义判断文本类和非文本类协议数据的规则,将输入向量分为文本类协议数据和非文本类协议数据;基于文本类数据中的语义信息,定义一组解析规则,将一个网络流连接的输入向量解析成一维的可比较的结点序列。 
比较合并装置,基于结点序列的相似性规则将结点序列集合中相似的结点序列合并成一个新的结点序列;其中,定义结点序列相似性规则,基于两个结点序列的相似性结果,将结点序列集合划分为多个相似集合;基于结点 序列的相似性将结点序列集合中相似的结点序列合并成一个新的结点序列。 
归类装置,利用结点序列的自归类算法将相似合并后的结点序列集合按协议类别分类;基于“同一个网络流连接的两个方向的数据属于相同协议”原理产生的“同协议关系”,将经过比较合并处理后的结点序列集合划分为多个类,每个类中结点序列属于相同协议。 
特征提取装置,用于对归类装置输出的类进行处理,通过对非特征内容的过滤,词频统计,以及分组、对齐和合并操作,从每个类中提取一个或多个特征;其中,以每个按协议划分后的同协议类作为特征提取对象,以字符集合和字符串集合组成的序列表示特征,在类内通过将特征可能性较小内容过滤后,进行词频统计,将含最大词频词的结点序列子集合作为一个子组进行对齐和合并操作形成一个特征。 
数据集为国内某骨干路由器上1小时内截获的100G广域网原始数据,共941,502条网络流数据,等分为两份,每份470,751条,分别用于训练和测试。由于仅使用各网络流负载起始64字节数据,所以两个系统的输入均为64字节的输入向量集合。在该数据集下,本发明的文本类协议内容特征自动发现和提取系统TPCAD获得比Justin Ma方法更好的原始数据分类和网络流识别结果。 
表5给出了TPCAD和Justin Ma方法在训练数据集上对原始数据分类效果的对比结果。 
表5-a Justin Ma方法在数据集上的类别划分结果 
Figure S2008101147510D00161
表中数据第一项表示最后产生的该协议的识别模型数量,第二项表示该协议用于产生识别模型的数据占该协议数据总量的百分比。 
从表5的对比结果可知,在广域网数据下,相比Justin Ma方法,TPCAD 系统: 
1)能从原始网络数据中自动分离出更多的协议; 
2)对每个分离出的协议,用于构造识别器的原始数据量占总量的百分比更大,信息利用率更高; 
3)对每个分离出的协议,最后自动生成的网络流识别模型更少,信息更集中。 
使用训练过程获得的特征,图5给出了TPCAD和Justin Ma方法在测试数据集下对原始网络流数据识别精度的对比结果,图5-a示出TPCAD和JustinMa两模型的错误率对比结果;图5-b示出TPCAD和Justin Ma两模型的准确率对比结果;图5-c示出TPCAD和Justin Ma两模型的召回率对比结果。从图5的对比结果可知,广域网数据下,无论在错误率、准确率还是在召回率,TPCAD都优于Justin Ma方法。 
表6给出了TPCAD和Justin Ma方法时间开销的对比数据,可见TPCAD方法无论在训练时间还是识别匹配时间上都优于Justin Ma方法。 
表6Justin Ma方法和TPCAD时间开销对比 
  时间开销(秒)   Justin Ma-PD   Justin Ma-MP   TPCAD
  训练时间   194.89   4273.297   47.547
  识别时间   9.953   15.36   5.01
实验结果表明,对SMTP协议的识别,Justin Ma方法错误率为10%左右,而本发明所用方法的错误率在1%左右。 
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。 

Claims (23)

1.一种多协议数据分类识别的方法,包括:
步骤10)、将网络流数据包按顺序拼接,截取每个网络流连接应用层的负载数据构成输入向量;
步骤20)、利用文本类协议数据高层语义信息将所述输入向量集合解析成可比较的结点序列集合;
步骤30)、基于结点序列的相似性规则将所述结点序列集合中相似的结点序列合并成一个新的结点序列;
步骤40)、利用结点序列的自归类算法将所述相似合并后的结点序列集合按协议类别分类;
步骤50)、对每一个分类结果的集合进行特征提取操作,识别出所述输入向量的协议类型。
2.权利要求1的方法,其中,步骤10)还包括:
捕获网络中数据包,通过拼流操作将网络流数据包按顺序拼接,截取每个网络流连接应用层的负载数据前64字节数据构成一个输入向量;其中,每个连接将生成2个不同方向的输入向量。
3.权利要求1的方法,其中,步骤20)进一步包括:
根据文本类协议数据高层语义信息,定义判断文本类和非文本类协议数据的规则,将输入向量分为文本类协议数据和非文本类协议数据;基于文本类数据中的语义信息,定义一组解析规则,将一个网络流连接的输入向量解析成一维的可比较的结点序列。
4.权利要求1的方法,其中,步骤30)进一步包括:定义结点序列相似性规则,基于两个结点序列的相似性结果,将结点序列集合划分为多个相似子集合,并将相似子集合合并为一个新的结点序列。
5.权利要求1的方法,其中,步骤40)进一步包括:利用结点序列的自归类算法将所述相似合并后的结点序列集合按协议类别分类,根据“同一个网络流连接的两个方向的数据属于相同协议”,通过计算连接矩阵并递归遍历,将经过相似处理后的结点序列归为多个类。
6.权利要求1的方法,其中,步骤50)进一步包括:以每个按协议划分后的同协议类作为特征提取对象,以字符集合和字符串集合组成的序列表示特征,在类内通过将特征可能性较小内容过滤后,进行词频统计,将含最大词频词的结点序列子集合作为一个子组进行对齐和合并操作,形成一个特征。
7.权利要求3的方法,其中,所述文本类协议数据需要满足:所述输入向量中可见字符占总字符比重大于ρ%,其中,ρ的取值范围为35到60,并且所述输入向量中可见字符后紧接不可见字符情况的出现总次数小于β次,其中,β取值范围为7到12。
8.权利要求7的方法,其中,所述ρ取50。
9.权利要求7或8的方法,其中,所述β取10。
10.权利要求3的方法,其中,步骤20)还包括:
步骤210)、将所述输入向量集合排序,合并相同的输入向量;
步骤220)、对于每个输入向量,将输入向量中的不同的连续字符序列解析为不同类型的结点,形成结点序列集合;
步骤230)、在所述结点序列集合中,合并相同的结点序列,所述输入向量集合被解析成结点序列集合。
11.权利要求4的方法,其中,所述结点序列相似性规则包括:
结点序列长度和类型分布均相同,并且值信息满足方程β1*IEN+β2*VEN>=β3*NEN,两结点序列相似;其中,IEN为值相同的IDENTIFIER类型结点数量,VEN为值相同的其它类型结点数量,NEN为所有类型值不同的结点数量,并且其中,β3>β2>β1。
12.权利要求11的方法,其中,β3=2,β2=1,β1=0.49。
13.权利要求4的方法,其中,步骤30)还包括:
步骤310)、将结点序列集合按照结点序列的长度信息、结点序列中结点类型信息以及结点值信息进行排序;
步骤320)、根据所述相似性规则,将等长且类型序列相同的连续结点序列划归为同一个组;
步骤330)、对于每个划分的组,将相似结点序列分到同一个子组,将每个结点序列子组合并为一个新的结点序列,如果合并时对应位置上结点值不相同,在合并得到的新结点序列对应位置上使用选择集合进行描述,选择集合中包含子组中所有该位置结点的取值;
步骤340)、处理选择集合,根据如下原则将选择集合升级为变量,表示该位置内容为可变信息:选择集合大小大于α,其中,α的取值范围为10到25;或者选择集合中所有字符串长度相同,且选择集合大小大于β,其中β的取值范围为5到10。
14.权利要求13的方法,其中,所述α取20。
15.权利要求13的方法,其中,所述β取7。
16.权利要求5的方法,其中,步骤40)还包括:
步骤410)、将结点序列集合按原连接方向分为两组,每一组看作一个维度,构成一个结点序列组成的二维结构;
步骤420)、每个合并后的结点序列对应一组包括源IP、源端口、目的IP和目的端口的4元组,上述结点序列的二维结构对应一个4元组集合组成的二维结构;
步骤430)、所述4元组集合的二维结构的连接矩阵每个元素的值为元素坐标对应的两个4元组集合的交集大小;若坐标为(i,j)处的矩阵元素值大于零,表示第i行第j列相连,则所有相连的行列对应的4元组结点序列属于相同协议。
17.权利要求6的方法,其中,步骤50)还包括:
步骤510)、构造非特征字符串词典,将所有特征可能性较小的字符串加入词典用于过滤非特征字符串;
步骤520)、对类内剩余结点序列的值信息字符串,通过词典过滤非特征字符串,统计剩余字符串频率;
步骤530)、将类中含最高频率字符串的结点序列单独取出作为一个子组,类内剩余部分作为一个新类;
步骤540)、对子组进行对齐操作,定位同时出现在所有结点序列中而且出现顺序一致的字符串序列,这些字符串所在结点为对齐点;
步骤550)、将对应位置对齐点连成线,把子组剩余内容划分为多个独立部分,合并这些独立部分为新结点,所得对齐点和新结点构成的结点序列即为特征。
18.权利要求17的方法,其中,步骤540)还包括:选取一个结点序列作为基本序列,其中所有对齐点必然出现在基本序列中;设置两个数据结构,第一个用于记录基本序列每一个字符串出现在多少个序列中,第二个用于记录基本序列每个字符串出现在其他序列中的所有位置,所有其他序列逐个和基本序列进行比较,并维护所述两个数据结构的信息;遍历第一个数据结构,找出所有值等于输入序列总数K的字符串,那么这些字符串构成的集合一定包含结果对齐点集合;根据第二个数据结构中记录的位置信息,从中找出一个每行位置递增的矩阵来获得近似对齐点;所得位置矩阵对应的字符串为所求对齐点。
19.一种多协议数据分类识别的系统,包括:
网络流数据截获装置,用于将网络流数据包按顺序拼接,截取每个网络流连接应用层的负载数据构成输入向量;
解析装置,用于利用文本类协议数据高层语义信息将所述输入向量解析成可比较的结点序列集合;
比较合并装置,基于结点序列的相似性规则将所述结点序列集合中相似的结点序列合并成一个新的结点序列;
归类装置,利用结点序列的自归类算法将所述相似合并后的结点序列集合按协议类别分类;
特征提取装置,用于对每一个分类结果的集合进行特征提取操作,识别出所述输入向量的协议类型。
20.权利要求19的系统,其中,所述解析装置进一步包括:根据基于文本类协议数据高层语义信息判断文本类和非文本类协议数据,将输入向量分为文本类协议数据和非文本类协议数据;基于文本类数据中的语义信息,将一个网络流连接的输入向量解析成一维的可比较的结点序列。
21.权利要求19的系统,其中,所述比较合并装置进一步包括:根据定义的结点序列相似性规则,基于两个结点序列的相似性结果,将结点序列集合划分为多个相似集合;基于结点序列的相似性将结点序列集合中相似的结点序列合并成一个新的结点序列。
22.权利要求19的系统,其中,所述归类装置还可以包括:利用结点序列的自归类算法将所述相似合并后的结点序列集合按协议类别分类,根据“同一个网络流连接的两个方向的数据属于相同协议”,通过计算连接矩阵并递归遍历,将经过相似处理后的结点序列归为多个类。
23.权利要求19的系统,其中,所述特征提取装置还可以包括:以每个按协议划分后的同协议类作为特征提取对象,以字符集合和字符串集合组成的序列表示特征,在类内通过将特征可能性较小内容过滤后,进行词频统计,将含最大词频词的结点序列子集合作为一个子组进行对齐和合并操作,形成一个特征。
CN2008101147510A 2008-06-11 2008-06-11 一种多协议数据分类识别的方法和系统 Expired - Fee Related CN101605126B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101147510A CN101605126B (zh) 2008-06-11 2008-06-11 一种多协议数据分类识别的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101147510A CN101605126B (zh) 2008-06-11 2008-06-11 一种多协议数据分类识别的方法和系统

Publications (2)

Publication Number Publication Date
CN101605126A CN101605126A (zh) 2009-12-16
CN101605126B true CN101605126B (zh) 2012-02-15

Family

ID=41470680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101147510A Expired - Fee Related CN101605126B (zh) 2008-06-11 2008-06-11 一种多协议数据分类识别的方法和系统

Country Status (1)

Country Link
CN (1) CN101605126B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130273976A1 (en) * 2010-10-27 2013-10-17 Nokia Corporation Method and Apparatus for Identifying a Conversation in Multiple Strings
CN102664875B (zh) * 2012-03-31 2014-12-17 华中科技大学 基于云模式的恶意代码类别检测方法
CN103179123B (zh) * 2013-03-25 2016-06-08 汉柏科技有限公司 一种基于行为特征的复用协议识别方法及系统
CN103297440B (zh) * 2013-06-24 2016-06-29 北京星网锐捷网络技术有限公司 应用流量特征库的建立方法和装置、网络设备
CN103955539B (zh) * 2014-05-19 2017-03-22 中国人民解放军信息工程大学 一种获取二进制协议数据中控制字段划分点的方法及装置
CN105390132B (zh) * 2015-10-10 2019-03-22 中国科学院信息工程研究所 一种基于语言模型的应用协议识别方法及系统
CN106850339B (zh) * 2016-12-30 2020-04-24 广州致远电子有限公司 一种总线信号协议解码方法
CN109272005B (zh) * 2017-07-17 2020-08-28 中国移动通信有限公司研究院 一种识别规则的生成方法、装置和深度包检测设备
CN108491267B (zh) * 2018-03-13 2022-02-08 百度在线网络技术(北京)有限公司 用于生成信息的方法和装置
CN109460469B (zh) * 2018-10-25 2020-08-07 中南民族大学 一种基于网络轨迹的安全协议格式的挖掘方法及装置
CN110472031A (zh) * 2019-08-13 2019-11-19 北京知道创宇信息技术股份有限公司 一种正则表达式获得方法、装置、电子设备及存储介质
CN111343196B (zh) * 2020-03-19 2020-12-08 广州市城建开发集团名特网络发展有限公司 一种兼容多种通讯协议的通信系统与通信方法
CN116708253B (zh) * 2023-08-07 2023-10-13 烽台科技(北京)有限公司 设备识别方法、装置、设备及介质
CN117097628B (zh) * 2023-10-19 2023-12-22 中国电子科技集团公司第五十四研究所 一种基于信号物理特征参数的组网通信行为识别方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1384651A (zh) * 2001-05-08 2002-12-11 深圳市中兴通讯股份有限公司上海第二研究所 一种多信令点多协议的实现方法
CN1574837A (zh) * 2003-06-04 2005-02-02 三星电子株式会社 用于发送和接收多协议数据帧的方法和装置
CN1738308A (zh) * 2004-08-18 2006-02-22 华为技术有限公司 一种多协议网络互联互通方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1384651A (zh) * 2001-05-08 2002-12-11 深圳市中兴通讯股份有限公司上海第二研究所 一种多信令点多协议的实现方法
CN1574837A (zh) * 2003-06-04 2005-02-02 三星电子株式会社 用于发送和接收多协议数据帧的方法和装置
CN1738308A (zh) * 2004-08-18 2006-02-22 华为技术有限公司 一种多协议网络互联互通方法和系统

Also Published As

Publication number Publication date
CN101605126A (zh) 2009-12-16

Similar Documents

Publication Publication Date Title
CN101605126B (zh) 一种多协议数据分类识别的方法和系统
CN104504150B (zh) 新闻舆情监测系统
CN106649464B (zh) 一种中文地址树的构建方法及装置
CN104624509B (zh) 一种快递自动分拣系统及自动分拣方法
CN109218223B (zh) 一种基于主动学习的鲁棒性网络流量分类方法及系统
CN109344263B (zh) 一种地址匹配方法
CN109886294A (zh) 知识融合方法、装置、计算机设备和存储介质
AU2012200642B2 (en) A method and apparatus for communications analysis
CN112650923A (zh) 新闻事件的舆情处理方法及装置、存储介质、计算机设备
CN105975968A (zh) 一种基于Caffe框架的深度学习车牌字符识别方法
CN111881290A (zh) 一种基于加权语义相似度的配网多源网架实体融合方法
CN104244035A (zh) 基于多层聚类的网络视频流分类方法
CN107465643A (zh) 一种深度学习的网络流量分类方法
CN107145516A (zh) 一种文本聚类方法及系统
CN111507350A (zh) 一种文本识别方法和装置
CN104615765A (zh) 一种移动用户上网记录的数据处理方法及装置
CN112861894A (zh) 一种数据流分类方法、装置及系统
CN114500396B (zh) 区分匿名Tor应用流量的MFD色谱特征提取方法及系统
CN108959577B (zh) 基于非主属性离群点检测的实体匹配方法和计算机程序
CN108494620A (zh) 基于多目标自适应演化算法的网络业务流特征选择与分类方法
CN113222109A (zh) 一种基于多源异构数据聚合技术的物联网边缘算法
CN111814917A (zh) 一种存在模糊态的字轮图像数字识别方法
CN110222049A (zh) 基于多轮对话的数据处理方法及装置
CN113256507B (zh) 一种针对二进制流量数据生成图像的注意力增强方法
CN106156256A (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: YANTAI ZHONGKE NETWORK TECHNOLOGY INSTITUTE

Free format text: FORMER OWNER: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20140411

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100190 HAIDIAN, BEIJING TO: 264003 YANTAI, SHANDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140411

Address after: 264003, Blue Ocean International Software Park, No. 1 Blue Sea Road, Yantai, Shandong

Patentee after: Yantai Zhong Ke network technical institute

Address before: 100190 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120215

Termination date: 20210611

CF01 Termination of patent right due to non-payment of annual fee