首页 / 专利库 / 人工智能 / 机器学习 / 半监督学习 / 一种基于半监督学习的网络协议识别方法及系统

一种基于半监督学习的网络协议识别方法及系统

阅读:978发布:2020-10-19

专利汇可以提供一种基于半监督学习的网络协议识别方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于半 监督学习 的网络协议识别方法及系统,涉及网络安全技术领域。所述方法包括步骤:基于 半监督学习 方法训练多个分类器;对待识别网络流量进行分流处理,并对分流处理得到的待识别单流进行统计,得到每个待识别单流中预定值个网包的长度信息;根据待识别单流中预定值个网包的长度信息,利用分类器,对待识别单流进行协议识别。本发明所述基于半监督学习的网络协议识别方法及系统,将半监督 机器学习 的方法引入到协议识别中,即采用了少量的标定样本信息,又充分利用了大量的未标记信息,实现了分类性能和实用扩展性的同时满足,同时具有较高的识别准确率和较快的识别速度,不依赖大量的标定数据集,并且可以识别加密协议。,下面是一种基于半监督学习的网络协议识别方法及系统专利的具体信息内容。

1.一种基于半监督学习的网络协议识别方法,其特征在于,包括步骤:
A:基于半监督学习方法训练多个分类器;
B:对待识别网络流量进行分流处理,并对分流处理得到的待识别单流进行统计,得到每个待识别单流中预定值个网包的长度信息;
C:根据所述待识别单流中所述预定值个网包的长度信息,利用所述分类器,对所述待识别单流进行协议识别。
2.如权利要求1所述的方法,其特征在于,所述步骤A具体包括步骤:
A1:对第一预定量的第一单流进行协议识别并标定,标定的结果包括:每个所述第一单流的前部的所述预定值个网包的长度信息,以及每个所述第一单流的协议类型;
A2:采集第二预定量的第二单流的流量信息,所述流量信息包括:每个所述第二单流的前部的所述预定值个网包的长度信息;所述第二预定量大于所述第一预定量;
A3:根据所述第一单流的标定结果和所述第二单流的流量信息,进行半监督机器学习的训练,得到多个所述分类器。
3.如权利要求2所述的方法,其特征在于,所述第二预定量是所述第一预定量的5倍至
10倍。
4.如权利要求2所述的方法,其特征在于,所述分类器的形式为R=wx+b,每个所述分类器用于区分两种网络协议,任意两种待区分的网络协议均对应一个所述分类器;其中,x是所述预定值个网包的长度信息构成的长度向量;w是所述分类器的第一参数,b是所述分类器的第二参数,w和b根据待区分的两种网络协议确定;R表示对应所述分类器的分类结果。
5.如权利要求1所述的方法,其特征在于,所述步骤B具体包括步骤:
B1:对待识别网络流量进行分流处理,将包头中的源IP地址、目标IP地址、源端口、目标端口、三层协议均相同的网包划分到一个待识别单流中;
B2:对分流处理得到的所述待识别单流进行统计,得到每个所述待识别单流的前部的所述预定值个网包的长度信息。
6.如权利要求1所述的方法,其特征在于,所述步骤C具体包括步骤:
C1:将所述待识别单流的前部的所述预定值个网包的长度信息分别代入每个所述分类器中,得到分类结果;
C2:根据所述分类结果,对每种待区分网络协议进行投票处理,得到所述待识别单流的协议识别结果。
7.如权利要求6所述的方法,其特征在于,所述方法在所述步骤C之后还包步骤D:根据每个所述分类器的参数和每个所述分类器对应的所述分类结果,计算所述协议识别结果的可信度参数;
E:判断所述可信度参数是否大于预定阈值,如果是,输出所述协议识别结果;否则,采用第二协议识别方法进行识别后输出第二协议识别结果。
8.如权利要求7所述的方法,其特征在于,所述可信度参数的计算公式如下:
其中,表示所有所述分类器对应的所述分类结果的均值,表示所有所述分类器的第一参数的均值。
9.一种权利要求1至8中任一项所述的基于半监督学习的网络协议识别方法对应的系统,其特征在于,所述系统包括:分类器模、流量统计模块、协议识别模块;
所述分类器模块,用于基于半监督学习方法训练多个分类器;
所述流量统计模块,用于对待识别网络流量进行分流处理,并对分流处理得到的待识别单流进行统计,得到每个待识别单流的前部的预定值个网包的长度信息;
所述协议识别模块,用于将所述待识别单流的前部的所述预定值个网包的长度信息分别代入每个所述分类器中,得到分类结果,并根据所述分类结果,对每种待区分网络协议进行投票处理,得到所述待识别单流的协议识别结果。
10.如权利要求9所述的系统,其特征在于,所述系统还包括:可信度计算模块、可信度判断模块和第二协议识别模块;
所述可信度计算模块,用于根据每个所述分类器的参数和每个所述分类器对应的所述分类结果,计算所述协议识别结果的可信度参数;
所述可信度判断模块,用于判断所述可信度参数是否大于预定阈值,如果是,输出所述协议识别结果;否则,通知所述第二协议识别模块;
所述第二协议识别模块,用于采用第二协议识别方法对所述待识别单流进行协议识别,并输出第二协议识别结果。

说明书全文

一种基于半监督学习的网络协议识别方法及系统

技术领域

[0001] 本发明涉及网络安全技术领域,特别涉及一种基于半监督学习的网络协议识别方法及系统。

背景技术

[0002] 网络应用层协议识别技术,简称协议识别,是Deep Inspection Firewall(深度检测防火墙)、NIDS/NIPS(网络入侵检测/防御系统)、UTM(统一威胁管理)等安全网关系统的关键组成部分和核心技术所在,也是运营商进行流量统计和计费管理的基础技术。
[0003] 协议识别技术,主要依靠通过网络流量的某种特征来进行识别判断,推测出流量所属的协议类型。其核心技术点包括:识别所采用特征的选取,以及利用特征进行识别的方法。
[0004] 目前工业界所采用的方法主要有两种:基于协议端口和基于深度包检测技术。基于协议端口的识别,往往适用于传统的网络协议。其原理是网络协议有在IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)注册的固定的传输层端口号码。例如FTP(File Transfer Protocol,文件传输协议)协议的注册传输层端口号为20和21。这类方法仅仅检测传输层端口,识别速度特别快。但由于很多协议并没有固定的传输层端口号码,某些新的协议甚至采用动态端口或者伪装端口技术,基于端口的识别方法准确率不能满足当前的需求。另一类方法为基于深度包检测技术,即事先生成好某些协议的特征字符串(包括精确串、正则表达式或语义串等)规则集合,通过在网包载荷中进行特征字符串探测,来进行协议识别。这种方法的效果依赖于事先生成的特征字符串规则集合。
通过提取精确的特征字符串可以达到较准确的识别效果,但一方面对多种协议提取精确的特征字符串十分困难,需要消耗大量人物力,另一方面,对网包载荷进行匹配识别需要很高的计算代价,造成识别速度慢。同时,某些新出现的协议如Skype,可能对载荷内容进行加密,这种情况下,基于深度包检测技术的协议识别无法正常工作。
[0005] 而在学术界,采用机器学习方法进行协议识别的研究非常热,代表性的方法如:基于PCA(Principal Component Analysis,主成分分析)的方法,基于最近邻的方法,基于贝叶斯分类器的方法,基于期望最大化方法等。这些方法或者采用了非监督机器学习,或者采取了监督机器学习,要么无法准确分类,要么依赖大量标定的数据集。但是目前没有一种已公开的方法可以满足所有的实用需求。

发明内容

[0006] (一)要解决的技术问题
[0007] 本发明要解决的技术问题是:如何提供一种基于半监督学习的网络协议识别方法及系统,以同时具有较高的识别准确率和较快的识别速度,不依赖大量的标定数据集,并且可以识别加密协议。
[0008] (二)技术方案
[0009] 为解决上述技术问题,本发明提供一种基于半监督学习的网络协议识别方法,其包括步骤:
[0010] A:基于半监督学习方法训练多个分类器;
[0011] B:对待识别网络流量进行分流处理,并对分流处理得到的待识别单流进行统计,得到每个待识别单流中预定值个网包的长度信息;
[0012] C:根据所述待识别单流中所述预定值个网包的长度信息,利用所述分类器,对所述待识别单流进行协议识别。
[0013] 优选地,所述步骤A具体包括步骤:
[0014] A1:对第一预定量的第一单流进行协议识别并标定,标定的结果包括:每个所述第一单流的前部的所述预定值个网包的长度信息,以及每个所述第一单流的协议类型;
[0015] A2:采集第二预定量的第二单流的流量信息,所述流量信息包括:每个所述第二单流的前部的所述预定值个网包的长度信息;所述第二预定量大于所述第一预定量;
[0016] A3:根据所述第一单流的标定结果和所述第二单流的流量信息,进行半监督机器学习的训练,得到多个所述分类器。
[0017] 优选地,所述第二预定量是所述第一预定量的5倍至10倍。
[0018] 优选地,所述分类器的形式为R=wx+b,每个所述分类器用于区分两种网络协议,任意两种待区分的网络协议均对应一个所述分类器;其中,x是所述预定值个网包的长度信息构成的长度向量;w是所述分类器的第一参数,b是所述分类器的第二参数,w和b根据待区分的两种网络协议确定;R表示对应所述分类器的分类结果。
[0019] 优选地,所述步骤B具体包括步骤:
[0020] B1:对待识别网络流量进行分流处理,将包头中的源IP地址、目标IP地址、源端口、目标端口、三层协议均相同的网包划分到一个待识别单流中;
[0021] B2:对分流处理得到的所述待识别单流进行统计,得到每个所述待识别单流的前部的所述预定值个网包的长度信息。
[0022] 优选地,所述步骤C具体包括步骤:
[0023] C1:将所述待识别单流的前部的所述预定值个网包的长度信息分别代入每个所述分类器中,得到分类结果;
[0024] C2:根据所述分类结果,对每种待区分网络协议进行投票处理,得到所述待识别单流的协议识别结果。
[0025] 优选地,所述方法在所述步骤C之后还包步骤
[0026] D:根据每个所述分类器的参数和每个所述分类器对应的所述分类结果,计算所述协议识别结果的可信度参数;
[0027] E:判断所述可信度参数是否大于预定阈值,如果是,输出所述协议识别结果;否则,采用第二协议识别方法进行识别后输出第二协议识别结果。
[0028] 优选地,所述可信度参数的计算公式如下:
[0029]
[0030] 其中,表示所有所述分类器对应的所述分类结果的均值,表示所有所述分类器的第一参数的均值。
[0031] 本发明还提供一种基于半监督学习的网络协议识别方法对应的系统,所述系统包括:分类器模、流量统计模块、协议识别模块;
[0032] 所述分类器模块,用于基于半监督学习方法训练多个分类器;
[0033] 所述流量统计模块,用于对待识别网络流量进行分流处理,并对分流处理得到的待识别单流进行统计,得到每个待识别单流的前部的预定值个网包的长度信息;
[0034] 所述协议识别模块,用于将所述待识别单流的前部的所述预定值个网包的长度信息分别代入每个所述分类器中,得到分类结果,并根据所述分类结果,对每种待区分网络协议进行投票处理,得到所述待识别单流的协议识别结果。
[0035] 优选地,所述系统还包括:可信度计算模块、可信度判断模块和第二协议识别模块;
[0036] 所述可信度计算模块,用于根据每个所述分类器的参数和每个所述分类器对应的所述分类结果,计算所述协议识别结果的可信度参数;
[0037] 所述可信度判断模块,用于判断所述可信度参数是否大于预定阈值,如果是,输出所述协议识别结果;否则,通知所述第二协议识别模块;
[0038] 所述第二协议识别模块,用于采用第二协议识别方法对所述待识别单流进行协议识别,并输出第二协议识别结果。
[0039] (三)有益效果
[0040] 本发明所述基于半监督学习的网络协议识别方法及系统,将半监督机器学习的方法引入到协议识别中,即采用了少量的标定样本信息,又充分利用了大量的未标记信息,实现了分类性能和实用扩展性的同时满足,同时具有较高的识别准确率和较快的识别速度,不依赖大量的标定数据集,并且可以识别加密协议。附图说明
[0041] 图1是本发明的基于半监督学习的网络协议识别方法流程图

具体实施方式

[0042] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0043] 图1是本发明的基于半监督学习的网络协议识别方法流程图,如图1所示,所述方法包括步骤:
[0044] A:基于半监督学习方法训练多个分类器;
[0045] 所述步骤A具体包括步骤:
[0046] A1:对第一预定量的第一单流进行协议识别并标定,标定的结果包括:每个所述第一单流的前部的所述预定值个网包的长度信息,以及每个所述第一单流的协议类型。其中,该步骤中,可以采用现有的协议识别方法或者人工标定的方式对所述第一预定量的第一单流进行标定,本实施例中优选采用了深度内容检测方法。所述第一预定量一般为,对应每种协议标定10个网络单流。所述第一单流指采用了某一种协议的网络流量(下文中第二单流含义相同,不再赘述)。所述预定值一般介于4至10,本实施例中为5。如下表1是标定结果示例表,表中第一列记录每个所述第一单流的前部的5个网包的长度信息,第二列记录每个所述第一单流的协议类型。
[0047] 表1标定结果示例
[0048]第一单流前5个网包的长度信息 第一单流的协议类型
64,64,1024,1518,1518 BT协议
[0049] A2:采集第二预定量的第二单流的流量信息,所述流量信息包括:每个所述第二单流的前部的所述预定值个网包的长度信息。所述第二预定量大于所述第一预定量,并且一般是所述第一预定量的5倍至10倍。该步骤可以采用现有的流量采集器,比如软件的wireshark或者硬件的netflow等完成,仅仅需要采集每个所述第二单流的前部的5个网包的长度信息。如下表2是流量信息采集结果示例表,表中主要记录每个所述第二单流的前部的5个网包的长度信息。
[0050] 表2流量信息采集结果示例
[0051]第二单流编号 第二单流的前部的5个网包的长度信息
1 64,64,1024,1518,1518
2 64,76,1518,1518,1518
... ...
[0052] A3:根据所述第一单流的标定结果和所述第二单流的流量信息,进行半监督机器学习的训练,得到多个所述分类器。本实施例中采用TSVM(Transductive Support Vector Machines,转换支持向量机)方法进行半监督机器学习的训练,得到的所述分类器的形式为R=wx+b,每个所述分类器用于区分两种网络协议,任意两种待区分的网络协议均对应一个所述分类器;其中,x是所述预定值个网包的长度信息构成的长度向量,本实施例中所述长度向量为5维向量,比如(64,76,1518,1518,1518)。w是所述分类器的第一参数,为一个5维向量;b是所述分类器的第二参数;w和b根据待区分的两种网络协议确定;R表示对应所述分类器的分类结果。比如当待区分的两种网络协议为Web和FTP时,一组可能的取值为:w为(0.9585,0.0299,-0.0202,0.1456,-0.0402),b为0.0442957;当代入相应的x,得到的R大于0时,表明当前网络单流采用Web协议;否则,表明当前网络单流采用FTP协议。
[0053] B:对待识别网络流量进行分流处理,并对分流处理得到的待识别单流进行统计,得到每个待识别单流中预定值个网包的长度信息。
[0054] 所述步骤B具体包括步骤:
[0055] B1:对待识别网络流量进行分流处理,将包头中的源IP地址、目标IP地址、源端口、目标端口、三层协议(以下简称五元组)均相同的网包划分到一个待识别单流中。
[0056] B2:对分流处理得到的所述待识别单流进行统计,得到每个所述待识别单流的前部的所述预定值个网包的长度信息。该步骤中,对于每个待识别单流,按照网包到达的顺序,依次记录网包的长度信息,一旦记录完前5个网包的长度信息,则将该信息统计完成,并且不再处理该待识别单流后续到达的网包的信息。如下表3是统计结果示例表,表中以所述五元组信息对每个待识别单流进行身份标记,并对应存储每个待识别单流的前5个网包的长度信息。
[0057] 表3统计结果示例
[0058]
[0059] C:根据所述待识别单流中所述预定值个网包的长度信息,利用所述分类器,对所述待识别单流进行协议识别。
[0060] 所述步骤C具体包括步骤:
[0061] C1:将所述待识别单流的前部的所述预定值个网包的长度信息分别代入每个所述分类器中,得到分类结果。具体地,假设当前分类器用于区分甲协议和乙协议,则将当前待识别单流的前部的5个网包的长度信息构成所述长度向量x,然后代入所述分类器R=wx+b中,计算得到当前分类结果R,如果R大于0,则认为当前待识别单流采用甲协议,否则,认为当前待识别单流采用乙协议。假设,根据当前分类结果R显示,当前待识别单流采用甲协议,则甲协议在后续补充C2的投票处理中相应地获得一票。
[0062] C2:根据所述分类结果,对每种待区分网络协议进行投票处理,得到所述待识别单流的协议识别结果。假设待区分协议共计M种,则所需所述分类器的数量 根据对应所有所述分类器的分类结果,得到每种待区分网络协议的投票数,每种待区分网络协议的最高投票数为M-1。一般情况下,以得票数最高的待区分网络协议作为所述待识别单流的协议识别结果。如果存在两个或者多个待区分网络协议的得票数相同,则随机选取一种作为所述待识别单流的协议识别结果。
[0063] D:根据每个所述分类器的参数和每个所述分类器对应的所述分类结果,计算所述协议识别结果的可信度参数。所述可信度参数的计算公式如下:
[0064]
[0065] 其中,表示所有所述分类器对应的所述分类结果的均值,表示所有所述分类器的第一参数的均值。
[0066] E:判断所述可信度参数是否大于预定阈值,如果是,输出所述协议识别结果;否则,采用第二协议识别方法进行识别后输出第二协议识别结果。所述预定阈值一般取0.8即可满足实际需求,该预定阈值也可以根据需求精度自行调整。所述第二协议识别方法为现有的其他协议识别方法,比如基于最近邻的方法。
[0067] 本发明实施例所述基于半监督学习的网络协议识别方法对应的系统包括:分类器模块、流量统计模块、协议识别模块;
[0068] 所述分类器模块,用于基于半监督学习方法训练多个分类器;
[0069] 所述流量统计模块,用于对待识别网络流量进行分流处理,并对分流处理得到的待识别单流进行统计,得到每个待识别单流的前部的预定值个网包的长度信息;
[0070] 所述协议识别模块,用于将所述待识别单流的前部的所述预定值个网包的长度信息分别代入每个所述分类器中,得到分类结果,并根据所述分类结果,对每种待区分网络协议进行投票处理,得到所述待识别单流的协议识别结果。
[0071] 所述系统还包括:可信度计算模块、可信度判断模块和第二协议识别模块;
[0072] 所述可信度计算模块,用于根据每个所述分类器的参数和每个所述分类器对应的所述分类结果,计算所述协议识别结果的可信度参数;
[0073] 所述可信度判断模块,用于判断所述可信度参数是否大于预定阈值,如果是,输出所述协议识别结果;否则,通知所述第二协议识别模块;
[0074] 所述第二协议识别模块,用于采用第二协议识别方法对所述待识别单流进行协议识别,并输出第二协议识别结果。
[0075] 本发明所述方法及系统,并不局限于网络安全、网络监控和过滤领域,凡是需要基于网络流量的包统计信息进行协议识别的应用,都能够基于本发明所述方法及系统来实现高性能的处理。
[0076] 本发明实施例所述基于半监督学习的网络协议识别方法及系统,通过剖析实践过程中对流量协议识别的四大需求(识别准确率高、识别速度快、不依赖大量的已标定数据集、可以适用到加密协议),将半监督机器学习的方法引入到协议识别中,即采用了少量的标定样本信息,又充分利用了大量的未标记信息,实现了分类性能和实用扩展性的同时满足。
[0077] 所述方法及系统,能够实际全面地解决网络协议识别的问题。在匹配速度上很快,可以和传统的基于端口或监督机器学习相比拟,接近线速;而在准确率上远远高于传统的基于端口的方法和监督机器学习的方法;同时,在存储上,并不需要检测网包的内容信息,仅仅需要进行分类器的函数计算,广泛适用于大量的硬件平台;另外,在分类器的训练速度上很快,实验表明,数千条训练样本的情况下,训练分类器仅需要不到1秒,完全可以满足实际处理中在分类器更新时间上的需求。同时,所述方法及系统,通过设计可信度参数,还能兼容于其他类型的分类方法,能进一步提高准确率,满足各种复杂的需求和应用场景。
[0078] 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈