一种基于三分类器协同训练学习的网络协议识别方法及系统的制作方法

文档序号:7817618阅读:283来源:国知局
一种基于三分类器协同训练学习的网络协议识别方法及系统的制作方法
【专利摘要】本发明涉及一种基于三分类器协同训练学习的网络协议识别方法及系统:对网络原始流量进行IP重组和TCP流还原,将网络数据由包为单位规约为以流为单位;提取每条单向流的特征信息并向量化,构建特征矩阵;使用少量标记样本构建三分类器协同训练分类器;判定是否已有所分析协议的分类模型,如果没有则先利用三分类器协同训练学习方法构建协议分类器,否则对数据包的协议属性进行判别;利用基于J48的三分类器协同训练学习算法进行训练并得到所分析协议的分类模型;对未标识的网络数据包进行协议类别判定,输出结果为两类:一类是属于目标协议的网络数据包,另一类是非目标协议的网络数据包。本发明保证很高的识别准确率和召回率。
【专利说明】一种基于三分类器协同训练学习的网络协议识别方法及系 统

【技术领域】
[0001]本发明涉及一种基于三分类器协同训练学习的网络协议识别方法及系统,属于网 络协议识别技术性。

【背景技术】
[0002]网络协议识别技术是通过对网络数据流进行分析,从而将网络数据流与其相对应 的具体网络应用相关联的过程。识别网络数据流中所承载的具体应用协议是网络安全领域 的核心问题之一。网络协议识别技术在多个领域有着广泛的应用,例如入侵检测和防范系 统(IDS/IPS)、网络测量、面向应用的缓存和路由机制、面向应用感知的负载均衡,流量分类 和隧道检测等。因此,在混杂有多种协议的网络数据流量中,如何对不同种类的网络协议进 行识别是目前计算机网络与安全领域亟待解决的核心问题之一。
[0003] 以其在入侵检测和防范系统中的应用为例,入侵检测和防范系统通常依照已有 的协议规范,通过对数据包载荷部分的有效解析从而实现积极、有效的安全防护策略。早 期的协议识别方法,由于网络上的协议数量较少,且其服务端口通常遵循IANA(Internet Assigned Numbers Authority)注册列表规范,所以实际识别中仅需根据服务端口即可准 确判定其应用层协议。但是随着网络协议的丰富,尤其是P2P等新兴网络应用的发展,网络 应用对于端口的使用逐渐脱离了 IANA的约束,甚至为了逃避安全检测系统或流量分析工 具的检查而使用随机端口或端口跳变技术。当面临大量出现的未知、私有协议的网络流量 时,传统的检测方法或手段很难对相应的应用协议做出正确识别。根据Internet2NetFlow 组织对骨干网中流量的统计发现:超过40%的网络数据流属于未定义的应用协议。其中恶 意代码流量占有相当比例。特别地,当Ο-day网络数据流出现时(即此类应用的网络数据 流第一次在网络中被发现),如何针对此类协议进行有效识别,进而能够有效地防范网络失 窃密等安全问题发生。
[0004] 此外,当今现代化的接入级网络与骨千级网络通常需要具有识别与不同应用相关 联的网络数据流的能力。在接入级网络和骨干级网络中,协议识别相关技术的有效部署可 以有效地解决网络运营与管理,网络服务差异化和容量配置等多项关键问题。近些年来,随 着P2P-V0IP和P2P-TV等应用的广泛普及,P2P应用程序的网络数据流在互联网整体流量 中占据了很大的比例。很多P2P应用程序都是带宽密集型的应用程序。其在提供相应服务 的过程中产生了大量的网络数据流,使得其他应用程序的服务质量受到了较大影响。例如, 在公司网络环境中,企业管理者希望对P2P协议的网络数据流量提供一个降级化的服务策 略,如限制上传和下载的传输速率,提供差异化的服务策略,甚至是直接对P2P流量进行封 堵。从而,以期确保公司内部关键应用程序的网络数据流,在网络传输过程中具有良好的性 能。宽带互联网服务供应商同样也期望限制P2P协议的网络流量,从而降低上游ISP收取 的相关带宽费用。所有的这些实际需求,都使得对网络协议的准确识别成为了网络领域的 核心话题之一。
[0005] 除了 QoS服务相关应用以外,协议识别工作有助于解决许多其他的应用问题,如 网络取证(Network Forensics)。网络取证是数字取证的一个子领域,为了实现信息搜集。 法律证据获取或入侵检测,网络取证研究需要对网络流量进行有效的监控和分析。在这项 网络安全应用中,网络协议识别的相关研究工作起到了至关重要的作用。例如,在监控网络 异常流量和入侵识别的场景下,网络攻击者通常利用操作系统的系统漏洞攻陷一个运行中 的主机。在实现目标以后,网络攻击者可能通过清除在被攻陷主机上所产生的所有日志文 件信息的方法来消灭攻击证据。这样将使得基于主机本身的取证工作变得十分困难或者不 可行。因此,以网络为基础的证据信息可能是唯一可用于分析的证据信息。针对上述问题, 设计合理、有效的络协议识别方法给网络信息安全研究人员带来了新的挑战。
[0006] 网络协议识别方法根据其研究对象的不同可划分为基于传输层端口、基于数据包 载荷和基于网络数据流统计行为特征三种类别。传统的网络协议识别方法大多属于有监督 的机器学习算法。这类方法依照所获得的离线学习样本构建单一或者多种协议分类模型, 从而实现对网络协议的准确识别。这类方法实验效果的优劣均依赖所分析的训练样本集 合。然而,在实际分析过程中,网络协议数据流,特别是未知网络协议(如僵尸网络)的获 取与标记工作严重依赖领域专家。这是一件即费时又繁杂的工作。甚至在样本数据量过大 时,人工标记已无法满足实际需求。因此,在复杂的网络环境中,如何以最小的样本标记代 价,构建准确的协议识别模型,是目前网络协议识别领域的研究热点。


【发明内容】

[0007] 本发明的技术解决问题:克服现有技术的不足,提供一种基于三分类器协同训练 学习的网络协议识别方法及系统,用于解决当前网络流量识别问题中有监督机器的学习算 法需要大量人工标记的弊端,以期在复杂的网络环境中,用最小的样本标记代价构建出高 可信度的网络数据流分类器,具有很高的识别准确率和召回率。
[0008] 本发明技术解决方案:一种基于三分类器协同训练学习的网络协议识别方法,实 现步骤如下:
[0009] (1)数据包捕获和统计特征提取:以网络数据包作为输入,经过IP重组和TCP流 还原将数据包构造为流,然后提取单向流的特征信息,获得数据包特征向量;
[0010] (2)分类器存在情况判断:判定是否已有所分析协议的分类模型,如果没有则先 利用三分类器协同训练学习方法构建协议分类器,否则对数据包的协议属性进行判别;
[0011] (3)分类器构建:利用基于J48的三分类器协同训练学习算法对上述单向数据流 的特征向量进行训练并得到所分析协议的分类模型;
[0012] (4)协议识别:使用上述分类器对未标记的网络数据测试集进行协议类别判定, 输出结果为两类:一类是属于目标协议的网络数据包,另一类是非目标协议的网络数据包。
[0013] 一种基于三分类器协同训练学习的网络协议识别系统,包括:数据包捕获与统计 特征提取模块、分类器构建模块和协议识别模块;
[0014] 数据包捕获和统计特征提取模块:以网络流量的数据包为输入,经过IP重组和 TCP流还原,提取出预定义的单向流的统计特征,并将这些统计特征转化为特征向量的集 合;
[0015] 分类器构建模块:以数据包建模模块获得数据包特征向量作为输入,利用基于 J48的三分类器协同训练学习方法对离线训练数据集进行学习,获得所分析协议的分类模 型;
[0016] 协议识别模块:利用上述分类器对测试集进行分类,得出高准确率的分类结果,一 类是属于目标协议的网络数据包,另一类是非目标协议的网络数据包。
[0017] 本发明与现有技术相比的优点在于: >
[0018] (1)本发明在学习过程中选择可信度最高的样本训练分类器。这种采样策略使得 学习效率(样本标记时间、学习训练训练时间等)得到大幅提高,提高学习效率。在实践过 程中,只需要少量的标注样本,不需要人工标注,通过对训练样本的合理选取,在样本标记 代价很小的前提下,同样可以保证很高的识别准确率和召回率。
[0019] (2)本发明以网络数据流为输入,自动地从混杂网络流量中对所分析协议的网络 数据流进行准确识别;且本发明只分析IP数据包的统计特征,不需要对程序的可执行代码 进行逆向分析,也不依赖协议规范中的先验知识,可解决面向连接协议(如TCP)和面向无 连接协议(如UDP)的识别问题,并可适用于文本,二进制和加密类协议的识别,适用范围广 泛。

【专利附图】

【附图说明】
[0020] 图1为本发明基于三分类器协同训练学习的网络协议识别方法流程图;
[0021] 图2为三分类器协同训练学习分类器构建的流程图;
[0022] 图3为J48和三分类器协同训练Training准确率对比实验(Y轴为百分数);
[0023] 图4为J48和三分类器协同训练Training召回率对比实验(Y轴为百分数);
[0024] 图5为J48和三分类器协同训练Training的F-Measure值对比实验(Y轴为百分 数)。

【具体实施方式】
[0025] 如图1所示,本发明具体实现如下:包括四个主要阶段:数据包捕获与统计特征提 取阶段;分类器存在情况判断阶段;三分类器协同训练学习算法分类器构建阶段和协议识 别阶段。
[0026] 1.数据包捕获与统计特征提取:数据包在网络传输过程中由于分片的原因,到达 目的终端需要进行重组,依据是同一个IP包的片段有相同的标识。TCP提供面向连接的、可 靠的、基于字节流的数据传输服务,TCP报文段数据是对应着序号的字节流,由于包到达顺 序并不遵循前者先到的原则,所以以流为单位的特征提取必须要经过TCP流还原,TCP流还 原的依据是一次TCP连接中的序号是递增加一的。在获得了原始数据包之后,本发明对其 进行统计特征的提取和特征的向量化,这里定义了 2〇种单向流的统计特征,所谓单向流就 是具有相同的五元组但数据流向不同的数据包序列,特征集合如表1所示。统计特征提取 基于上述经过IP重组和TCP流还原的流数据报文,采用统计方法计算得出。特征向量化是 指将每条流的统计特征数据构建为一"?"向量,便于后续处理。经过该步骤的处理,得到了单 向网络数据流的特征向量集合。
[0027] 表1单向流统计特征
[0028]

【权利要求】
1. 一种基于三分类器协同训练学习的网络协议识别方法,其特征在于实现步骤如下: (1) 数据包捕获和统计特征提取:以网络数据包作为输入,经过IP重组和TCP流还原 将数据包构造为流,然后提取单向流的特征信息,获得数据包特征向量; (2) 分类器存在情况判断:判定是否已有所分析协议的分类模型,如果没有则先利用 三分类器协同训练学习方法构建协议分类器,否则对数据包的协议属性进行判别; (3) 分类器构建:利用基于J48的三分类器协同训练学习算法对上述单向数据流的特 征向量进行训练并得到所分析协议的分类模型; (4) 协议识别:使用上述分类器对未标记的网络数据测试集进行协议类别判定,输出 结果为两类:一类是属于目标协议的网络数据包,另一类是非目标协议的网络数据包。
2. 根据权利要求1所述的基于三分类器协同训练学习的网络协议识别方法,其特征在 于:所述步骤(3)分类器构建步骤为: (1) 对数据包捕获与统计特征提取步骤得出的单向网络数据流的特征向量集合,采用 深度包检测技术,将少量的训练样本进行人工标记,记为X集合,将大量剩余的向量记为U 集合,然后根据已标记训练样本集合X中少量的已标记样本集xl,x2, x3,分别训练构造 SVM 分类器f 1,f2, f3 ; (2) 利用已构造的SVM分类器fl,f2, f3,对U集合中所有未标记的样本u进行分类; (3) 根据分类器f\,f2, f3的分类结果,若两个分类器(f\,f2 ;f2, f3 ;f\,f3)对样本u标记 相同,则将u连同标记结果加入到第三个分类器的已标记样本集(x 3;Xl ;x2)中; (4) 对分类器模型f\,f2, f3进行评估; (5) 若达到中止条件r时,则中止,输出经过评估和优化的分类器f,该分类器将应用于 协议识别阶段,为后续的测试样本进行高可信度的分类,否则重复步骤(1) -(4)。
3. -种基于三分类器协同训练学习的网络协议识别系统,其特征在于包括:数据包捕 获与统计特征提取模块、分类器构建模块和协议识别模块; 数据包捕获和统计特征提取模块:以网络流量的数据包为输入,经过IP重组和TCP流 还原,提取出预定义的单向流的统计特征,并将这些统计特征转化为特征向量的集合; 分类器构建模块:以数据包建模模块获得数据包特征向量作为输入,利用基于J48的 三分类器协同训练学习方法对离线训练数据集进行学习,获得所分析协议的分类模型; 协议识别模块:利用上述分类器对测试集进行分类,得出高准确率的分类结果,一类是 属于目标协议的网络数据包,另一类是非目标协议的网络数据包。
【文档编号】H04L29/06GK104270392SQ201410575510
【公开日】2015年1月7日 申请日期:2014年10月24日 优先权日:2014年10月24日
【发明者】张永铮, 周宇, 王一鹏, 续涛 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1