首页 / 专利库 / 人工智能 / 机器学习 / 半监督学习 / 半监督聚类集成的协议识别系统

半监督聚类集成的协议识别系统

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

专利汇可以提供半监督聚类集成的协议识别系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种半监督聚类集成的协议识别方法,其包括,对网络上各中数据包进行采集;对接收的网络数据进行解析,把数据包各字段进行提取,统计;把网络数据进行解析后得到的网络数据的特征代码与预设在 数据库 的各特征代码进行匹配,如果匹配成功,那么表示该数据包是相应的协议;对不能匹配成功的数据进行 聚类分析 ,使用多个基聚类器对数据包进行聚类,并把结果进行反馈, 修改 先验标签值;以及,把对网络数据包进行聚类的结果与已知的各协议进行一个半监督的统计学习,训练一个判别学习器。本发明中端口协议识别率得到提高、而计算量适中,因此效率较高。此外,本发明中一次会话产生的流不多,部容易错误识别;此外本发明并入的识别方法多,可从多个维度去识别。本发明还公开了对应的半监督聚类集成的协议识别系统。,下面是半监督聚类集成的协议识别系统专利的具体信息内容。

1.一种半监督聚类集成的协议识别方法,其特征在于:包括:
对网络上各中数据包进行采集;
对接收的网络数据进行解析,把数据包各字段进行提取,统计;
把网络数据进行解析后得到的网络数据的特征代码与预设在数据库的各特征代码进行匹配,如果匹配成功,那么表示该数据包是相应的协议;
对不能匹配成功的数据进行聚类分析,使用多个基聚类器对数据包进行聚类,并把结果进行反馈,修改先验标签值;
以及,把对网络数据包进行聚类的结果与已知的各协议进行一个半监督的统计学习,训练一个判别学习器。
2.根据权利要求1所述的半监督聚类集成的协议识别方法,其还包括将各学习器根据算法进行集成,得到一个最优的结果的步骤。
3.一种基于半监督聚类集成的协议识别系统,其特征在于,该系统包括:
网络流量数据采集装置:对网络上各种数据包进行采集;
数据包解析装置:对网络数据包进行解析,把数据包各字段进行提取,统计;
特征代码匹配装置:把网络数据包进行解析后得到的网络数据包的特征代码与预设在数据库的各特征代码进行匹配,如果匹配成功,那么表示该数据包是相应的协议;
聚类装置:对不能匹配成功的数据包进行聚类分析,使用多个基聚类器对数据包进行聚类,并把结果进行反馈;
监督学习装置:把对网络数据包进行聚类的结果与已知的各协议进行一个半监督的统计学习,训练一个判别学习器。
4.根据权利要求3的基于半监督聚类集成的协议识别系统,其特征在于:还包括集成模:用于把各基学习器根据算法进行集成。得到一个最优的结果。

说明书全文

半监督聚类集成的协议识别系统

技术领域

[0001] 本发明涉及信息通讯和人工智能领域,尤其是对网络协议识别的系统与方法。

背景技术

[0002] 现在网络协议识别主要有下面四种方法:端口识别、特征识别、关联识别、行为特征识别。具体如下:
[0003] 端口识别:端口可分为TCP协议端口和UDP协议端口两种,基于端口的协议识别方式与识别普通应用的方式完全相同,检查报文分组的传输信息,如果端口号与某些特定的端口号匹配,便可判断是属于哪一类协议在协议规范中协议默认使用的通信端口,如HTTP协议使用端口80,FTP协议使用端口21。早期,大多数应用使用的都是固定端口,这类端口也常称之为常用端口,这类端口的端口号从0到1024。例如是DNS域名解析服务器,使用53号端口,域名服务是一个INTERNET和TCP/IP的服务,用于映射网络地址号码,即寻找INTERNET域名并将它转化为IP地址的系统,DNS请求首先到达地理上比较近的DNS服务器,如果寻找不到此域名,主机会将请求向远方的DNS服务器发送的工作原理和过程分为以下六个步骤:
[0004] 1、客户机可以提出域名解析请求,并将此请求发送到本地的域名服务器。
[0005] 2、本地的域名服务器收到请求之后,先要查询本地的缓存,如若有此记录项,本地的域名服务器就可以直接把查询的结果返回。
[0006] 3、如若本地的缓存中没有此记录,本地域名服务器把请求发到根域名服务器,根域名服务器将返回到本地域名服务器的一个所查询域的主域名服务器地址。
[0007] 4、此时,本地服务器再向返回的域名服务器发送请求,接受请求的服务器可以查询自己的缓存,如果没有此记录,就返回相关下级的域名服务器地址。
[0008] 5、以此重复第4步,找到正确的记录为止。
[0009] 6、本地域名服务器会将返回的结果存放到缓存,准备下一次使用,还将结果返回给客户机。
[0010] 总之,采用基于端口的协议识别技术来识别网络流量和应用是最为简单并行之有效的方法,其优点是针对性强、实现简单,并且消耗系统的资源也少。缺点是随着端口跳变信息隐藏等这些技术的广泛采用,端口识别方法的识别率极其的低。
[0011] 特征识别:关键字属于协议的特征,基于关键字的识别是对获取到的数据包进行关键字搜索,准确地匹配协议中出现的关键字,只要某初始数据中有某个应用层协议的关键字,就表示该应用层协议开始传输这时主要目的就不是归纳特征端口,而是归纳出流量所有数据包中都含有的或出现频率最高的特征字符串即关键字,一般关键字的出现位置也是有严格要求的,因此在流量检测过程中,对数据包进行深度检测,只要关键字匹配成功,就可以确定该流量所属协议类型和软件类别。
[0012] 每种应用的分组中都携带有特定的报文信息,如HTTP协议报文中会出现GET,PUT,POST等报文字样。与之相类似,P2P协议的应用层数据负载位置包含特定P2P协议软件的信息,这些特定的信息即是协议的特征。
[0013] 人们提出了通过检查分组内部携带的负载信息来进行分组识别的方法,由于整个会话过程中套接字是不会改变的,所以将初始控制报文中的五元组抽取出来就可以作为数据报文识别的关键字,只要后续数据包中的五元组和某个控制报文的五元组相同,就认为该数据包和这个控制报文属于同一个会话流。带偏移量的固定字节、包长度、协议类型、端口号、多包之间带偏移量固定字节的变化规律,掩护地址是我们所关注的。通过流与流之间数据包的横向比较以及流中数据包之间的纵向比较,找到某个协议的固有特征作为检测特征。检测特征有两个要求,检测特征必须是在流中位置比较靠前的数据包中,要求在一条流的前一个包中提取;检测特征必须是在数据包负载部分的开头字节或结尾个字节中提取。某些应用层协议仅通过端口无法完成协议识别或者验证不准确,我们需要使用特征识别和端口识别相结合进行协议识别。
[0014] 在识别过程中,主要采用特征识别和单包匹配的方式,单包匹配是通过识别一条数据流中的一个包就能达到识别整条数据流的目的检测方法。进行交互的协议,完成三次握手,客户端与服务器开始传送数据,从数据流中可以看到很多所具有的特征。基于特征的协议识别的优点是匹配精确,识别的准确率高;缺点是对关键字匹配算法效率要求较高。另外,为了识别后续的数据流需要保持连接的状态,还需要获取分组的应用层负载,对处理效率的影响较为严重;随着各种软件的发展,协议特征信息也在不断的变化,因此,检测特征也要随之变化。对于采用信息加密传输的应用无法识别应用协议升级后,必须重新提取特征字。
[0015] 基于应用特征字的识别方法计算量大,自适应能弱。特征识别只能针对已知数据格式的应用进行识别,而且由于需要对分组内部数据进行全面的检查分析,实现效率较低。
[0016] 关联识别:任何通讯协议都有自己的规则和特征,并且被通信双方共同遵守关联识别就是用关联规则的方法,从数据流中找出这些能够表征不同应用层协议的规则和特征,建立一个关联表项,后面的数据流量,先要去查关联表项,如果可以识别,便报出该协议。经过研究发现,对于TCP流,只需分析三次握手后的真正传输数据的10个数据包中的前64个字节,而对于UDP流,只需分析出数据大小大于64个字节的10个数据包。关联识别的协议规则中releate字段的设置有三种方式,分别为YES,SRC,DST。观察某一协议的数据包,如果数据包中的一些主流具有相同的特征,如源IP、目的IP、源端口、目的端口、协议类型,这时便可以将releate字段设为YES,当一条主流被正确识别,并且releate为YES,那么获取到的五元组信息将被写入关联表,以致后续流量都是通过匹配关联表项来识别的。
而源关联SCR是将源PP、源端口、协议类型写入关联表进行关联识别;目的关联DST是将目的IP、目的端口、协议类型写入关联表进行关联识别的。一些协议的数据流可以通过信令流协商即深度解析得到,如FTP协议,在传输过程中既有信令流又有数据流,通过信令流协商过程中得到的数据三元组信息建立关联表,数据流便可以与关联表匹配识别出另外,控制通道用于协商出一个或多个数据通道进行数据交互,数据通道通常使用控制通道协商的随机TCP/IP端口,采用多通道关联协议识别技术,能准确地识别协商协议。采用关联识别的优点协议识别率高,一次会话产生的流特别多,但并不是所有的流都会有明显的特征,我们将识别出流的三元组信息写入关联表项,这样就可以识别那些特征不明显的流,来提高系统的识别率,关联识别是对传入的数据结构的特定项进行匹配,效率要比基于特征字的多模匹配算法高得多,缺点是容易引起误识别。
[0017] 行为特征识别:通过行为特征来识别协议的方法,对于任何一种网络应用软件来说,不论使用哪种协议都有其特定的行为特征,而特定的行为特征在进行协议识别时,将大大提高协议的识别率。
[0018] 行为特征识别技术解决了IDS产品的非标准端口或没有静态数据包特征字段的协议识别问题,识别过程中根据报文携带的协议行为特征准确识别协议类型和版本信息。
[0019] 行为特征识别技术是通过协议在运行过程中的一些有时序的行为特征序列进行协议识别的,不同的协议,无论使用哪种端口,无论是否有显著的特征字段,但其行为都是有明显区别的基于行为识别模型,行为模式识别技术是可以根据用户已经实施的行为,判断用户正在进行的动作或者即将实施的动作。
[0020] 协议行为特征集和具体应用协议有关,特征集中每一条规则可以包含一系列的行为特征,每个行为特征序列又可以唯一地标识某种类型IP报文必须满足的准则。因此,给某一协议类型构建一个协议行为特征集,将这个特征集作为该类型协议规范的必要集合。比如TCP协议在连接过程中建立三次握手所必须遵循的步骤,协议运行行为特征只是对单个数据包进行特征提取,而不能有效地标识协议的类型或软件版本信息,依据3到5个数据包和特征序列的长度进行监控,并对协议特征加以提取,准确地判断出使用的是何种协议和版本号。
[0021] 行为特征的匹配是在一定时间内,网络协议运行的详细行为和动作,准确性高。其优点是不依据流的应用层报文内容,分析的测度与导出指标容易获取,便于工程实现和应用。缺点是分类和识别的结果并不是确定性的,是基于概率的结果,所以方法的精度由协议应用特征的显著程度、规则对这种特征的覆盖能力来决定。
[0022] 现存技术主要有以下几个方面的缺陷
[0023] 1、随着端口跳变信息隐藏等这些技术的广泛采用,端口识别方法的识别率极其的低。
[0024] 2、基于应用特征字的识别方法计算量大,自适应能力弱。特征识别只能针对已知数据格式的应用进行识别,而且由于需要对分组内部数据进行全面的检查分析,实现效率较低。
[0025] 3、一次会话产生的流特别多,容易错误识别。
[0026] 4、分类和识别的结果并不是确定性的,是基于概率的结果,所以方法的精度由协议应用特征的显著程度、规则对这种特征的覆盖能力来决定。
[0027] 5、识别方法也是比较单一,缺乏融合集成的机制与思想。
[0028] 6、识别方法从一个维度去识别,缺乏多维的思维。

发明内容

[0029] 本发明的一个目的是针对目前计算机网络协议识别方法存在的缺陷,提出了一种半监督聚类集成的协议识别方法。
[0030] 在一种可行的实施方式中,该半监督聚类集成的协议识别方法包括,对网络上各中数据包进行采集;对接收的网络数据进行解析,把数据包各字段进行提取,统计;把网络数据进行解析后得到的网络数据的特征代码与预设在数据库的各特征代码进行匹配,如果匹配成功,那么表示该数据包是相应的协议;对不能匹配成功的数据进行聚类分析,使用多个基聚类器对数据包进行聚类,并把结果进行反馈,修改先验标签值;以及,把对网络数据包进行聚类的结果与已知的各协议进行一个半监督的统计学习,训练一个判别学习器。
[0031] 在优选的实施例中,还包括将各学习器根据算法进行集成,得到一个最优的结果的步骤。
[0032] 本发明的另一个目的是针对目前计算机网络协议识别方法存在的缺陷,提出了一种半监督聚类集成的协议识别系统。
[0033] 在一种可行的实施方式中,该半监督聚类集成的协议识别系统包括,网络流量数据采集装置:用于对网络上各中数据包进行采集,数据包解析装置:用于对接收的网络数据进行解析,把数据包各字段进行提取,统计;特征代码匹配装置:把网络数据进行解析后得到的网络数据的特征代码与预设在数据库的各特征代码进行匹配,如果匹配成功,那么表示该数据包是相应的协议;聚类装置:对不能匹配成功的数据进行聚类分析,使用多个基聚类器对数据包进行聚类,并把结果进行反馈,修改先验标签值;以及,半监督学习装置:用于把对网络数据包进行聚类的结果与已知的各协议进行一个半监督的统计学习,训练一个判别学习器。
[0034] 优选的是,还包括集成装置:用于将各学习器根据算法进行集成,得到一个最优的结果。
[0035] 在采集了网络数据的基础上,本发明可以理解为包括两部分,即第一是对已知协议的识别;可以采用分类技术;如:神经网络;SVM;模式匹配,并使用多个分类算法可以保证系统的准确性和稳定性;然后用分类集成的方法就可以把所有的识别结果进行集成。如阳爱民的书中提到过此方法。第二是对未知协议的识别;可以采用聚类方法;如:K-MEANS;仿射聚类;等;且聚类是无监督学习的结果,结果有可能不是很理想。所以,在某些情况下要加入半监督学习的过程,即要有专家或者知识库的指导;也可以把多个聚类的结果进行集成,来达到对协议识别的准确性和稳定性。
[0036] 本发明中端口协议识别率得到提高、而计算量适中,因此效率较高。此外,本发明中一次会话产生的流不多,部容易错误识别;此外本发明并入的识别方法多,可从多个维度去识别。附图说明
[0037] 图1为本发明所述的基于半监督聚类集成的协议识别系统的结构示意图;
[0038] 图2为依照本发明的一种实施例的协议识别系统的层次功能结构图。
[0039] 图3为依照本发明的一种实施例的各算法具体实施流程和位置
[0040] 图4学习集成流程图

具体实施方式

[0041] 依照本发明的一种基于半监督聚类集成的协议识别系统的一种实施例,总体结构图如图1所示。参照图1,系统总体分为三部分,即数据采集部分,对已知的协议的识别的部分200和对未知的协议的识别的部分300,为了清楚表示,两部分用虚线隔开:在功能上,本系统可以是包括数据采集装置、拆包解析特征代码装置、特征代码匹配装置、对不能识别的协议用若干基聚类器对之进行聚类的装置;对未知协议进行半监督学习训练的装置;以及学习成功,识别未知协议的装置。
[0042] 如图1的所示:
[0043] 数据采集装置采用模设计——即数据采集器模块或称数据包捕获模块[0044] 数据采集器模块主要负责数据流量的捕获,系统使用即库函数Lipcap捕获网络通讯数据包,可以监听网上所有通过的数据流量,设置网卡为混杂模式仁,捕获所有经过网卡的数据包,网络接口卡的驱动程序可以计算校验和,将中的同步码与校验和字段去除掉,最后接收到的数据包中只有帧头、载荷
[0045] 其提供三个功能:
[0046] 捕获网络上各个主机相互之间交互的数据包在数据报文发送到应用程序之前,按照预设条件将某些特殊的数据流过滤掉将网络通信过程中的交互信息进行收集。
[0047] 从广义的度上看,一个包捕获机制包含三个主要部分最底层是针对特定操作系统的包捕获机制,最高层是对用户程序的接口,第三部分是包过滤机制,使用Lipcap的包过滤机制为BPF。数据包常规的传输路径依次是网卡、设备驱动层、数据链路层、IP层、传输层、最后到达应用层。对用户程序而言,包捕获机制提供了一个统一的接口,使用户程序只需要简单的调用若干函数就能获得所期望的数据包。包过滤机制是对所捕获到的数据包根据用户的要求进行筛选,最终只把满足过滤条件的数据包传递给用户程序。
[0048] 协议及规则解析装置
[0049] 协议解析模块是对传输的数据流量进行解码分析,要了解协议簇中不同层次的协议以太网数据帧的物理特性是其长度必须在一字节之间,接收到数据包后,对数据包逐层分析,按照数据链路层、网络层、传输层、应用层进行分析处理,分析协议的首部和数据特征,得到运行的协议和服务,以及数据流的源地址、目的地址、源端口、目的端口以及包的格式。
[0050] 协议封装的过程也可以说是打包,用户数据通过输入设备从计算机外界进入计算机操作系统并来到相应的网络进程。此时,网络进程就会对用户数据进行第一次打包加入首部各种协议首部其实就是一个代码块,其中包含了一些控制信息,这些信息存在的理由就是为了保证用户数据能够正确地到达目的地成为应用数据。该应用数据会被网络进程向下传输,进入传输层,不管选择还是,都会被加入另一个首部或者是首部加入传输层首部打包后,这些数据又会被下传,进入网络层,网络层中的协议对这些数据加入首部后再次往下传输,进入链路层、链路层由链路层协议、设备驱动程序、网络接口卡、物理线路组成。
[0051] 协议在传送过程中是从上往下逐层进行封装,添加首部信息在协议解析过程中,从下往上分析,逐层分析出首部和数据信息,分析数据流的五元组信息,五元组包括源端口、目的端口、源IP、目的IP、协议、协议解析后将解析结果存放到一个数据结构中,识别时通过这个数据结构送到引擎,数据结构如下:
[0052] 特征代码匹配——已知协议识别装置
[0053] 协议识别主要是对捕获的网络数据包,经过协议解析后,调用引擎,采用模式匹配算法和协议识别技术,对解析后的数据流与规则库匹配识别。该模块的主要功能如下:
[0054] 协议识别,能够监控通过网卡的数据流量,并且识别这些流量,目前系统这个部分只支持对标准协议、P2P类协议和VOIP类协议的识别。在这些协议中,如果之前没有分析过或者是分析不全面的,就以‘不知道’报出。如果之前分析过并且识别成功的,就输出协议识别结果。其中,准确率、误报率、识别率、漏报率是相对某个协议的所有流量作为标准来计算的。
[0055] 协议识别处理过程
[0056] 针对目前的协议识别技术,主要是端口识别、关联识别、特征识别、行为特征识别这四种,其中使用最多的是特征识别″对流经网卡的协议进行识别的时候,首先要进行端口识别,如果识别成功,就报出该协议的名称、源端口、目的端口、源IP、目的IP以及协议类型,如果识别不成功,要进行关联识别,这样下去,直到行为特征识别也无法识别的,说明此协议需要进行重新分析,找出识别不成功的原因,是否是未曾分析过此协议还是抽取的规则覆盖不全协议特征。
[0057] 规则匹配
[0058] 在协议识别过程中,为了快速的对很多流量进行协议识别,可采用多模式匹配算法,其中多模式匹配算法只需遍历一次,便可以将多个模式匹配出,从而识别出协议。因此,本系统主要是采用多模式匹配算法来实现。
[0059] 网络协议识别方案根据总的系统框架,把网络数据流分为两大类:一是已知协议的识别;二是未知协议的识别。图1指出了对于已知的协议识别进行识别和匹配的算法,为了达到最好的效果,可以使用多个算法对之进行识别,最后对识别的结果进行集成;第二是采用无监督学习方法对未知的协议进行识别与处理,最后在半监督的情况下对这些识别的结果进行集成,达到系统的最优化。
[0060] 聚类集成装置具有学习集成算法,具体流程如图4所示,步骤如下:
[0061] 算法过程:通过网络数据的先验概率标定所属于的协议,对网络数据的各维属性值计算属于各种协议的实际概率值,通过集成比较概率值的最大值,该值对应的协议为识别出的协议。通过反馈识别出概率值所属的协议,更新先验标定值,从而将结果加入集成过程,完成学习过程,不断修正识别判断的正确性。
[0062] 输入:多维数的网络数据;
[0063] 输出:协议识别结果;
[0064] 步骤1:输入网络数据,取一条网络数据,含多个维数的值;
[0065] 步骤2:根据先验概率标定该数据可能属于的协议标签;
[0066] 步骤3:进入循环,判断是一条网络数据吗,若是,则继续,否则输出识别结果;
[0067] 步骤4,:是网络数据的情况下,进一步判断该条网络数据的各位属性值是否计算完,若计算完则输出识别结果,否则继续循环取各条属性值数据进行下一步计算;
[0068] 步骤5:进一步计算该条网络数据各属性值属于各个协议的概率;
[0069] 步骤6:通过集成,取概率值的最大值,该值对应的协议即为最后识别出的协议。
[0070] 步骤7:将协议识别结果反馈到先验标签,修改标签,以便于下一次判断时学习该识别结果信息。
[0071] 步骤8:输出协议识别结果。
[0072] 根据上述实施方式实现的协议识别系统的层次功能如图2所示,主要包括协议学习、协议识别、协议添加和系统升级模块。协议学习模块主要完成分类器训练的功能,对各种集成的分类器进行学习训练;协议添加提供新识别的未知协议的添加功能;系统升级模型主要便于系统的升级和维护。协议识别模块主要完成数据包获取、协议解析、模式匹配、聚类及集成功能。协议解析包含协议特征提取、协议规则描述、模式匹配引擎,共同协作完成协议的识别。
[0073] 其中,各种算法的实施流程和位置如图3所示,对于已知协议,主要采用主流的识别算法就可以识别出结果,对于未知协议,采用K-means等聚类集成算法,给出一个比较优化的识别结果。
[0074] 综上所述,本发明主要采用学习集成的方法,对网络数据流中已知的协议信息采用已知识别算法进行识别,对未知协议信息采用聚类集成的算法,得到一个比较优化的识别结果,并把识别结果反馈给先验协议类型,作为下一次判断的更新信息,起到学习和集成的作用。由此可见,有此思路容易想到的方法和实施方式均包含在本发明的保护范围内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈