网络协议识别技术综述

2019-01-06 07:27冯文博洪征吴礼发付梦琳
计算机应用 2019年12期
关键词:网络流量网络管理

冯文博 洪征 吴礼发 付梦琳

摘 要:网络流量的协议类型识别是进行协议分析和网络管理的前提,为此研究综述了网络协议识别技术。首先,描述了网络协议识别的目标,分析了协议识别的一般流程,探讨了协议识别的现实需求,给出了评估协议识别方法的标准;然后,从基于数据包的协议识别和基于数据流的协议识别两个类别分析了网络协议技术的研究现状,并对协议识别的各类技术进行了比较分析;最后,针对目前协议识别方法的缺陷和应用需求,对协议识别技术的研究趋势进行了展望。

关键词:应用层协议;网络流量;协议识别;特征工程;网络管理

中图分类号: TP393.02计算机网络与结果文献标志码:A

Review of network protocol recognition techniques

FENG Wenbo1, HONG Zheng1*, WU Lifa2, FU Menglin1

(1. College of Command and Control Engineering, Army Engineering University of PLA, Nanjing Jiangsu 210007, China;

2. College of Computer Science and Technology, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210023, China)

Abstract: Since the protocol classification of network traffic is a prerequisite for protocol analysis and network management, the network protocol recognition techniques were researched and reviewed. Firstly, the target of network protocol recognition was described, and the general process of protocol recognition was analyzed. The practical requirements for protocol recognition were discussed, and the criteria for evaluating protocol recognition methods were given. Then, the research status of network protocol techniques was summarized from two categories: packet-based protocol recognition methods and flow-based protocol recognition methods, and the variety of techniques used for protocol recognition were analyzed and compared. Finally, with the defects of current protocol recognition methods and the practical application requirements considered, the research trend of protocol recognition techniques was forecasted.

Key words: application-level protocol; network traffic; protocol recognition; feature engineering; network management

0 引言

網络协议是通信实体在互联网环境中进行数据交换的基础,是计算机网络及数据通信不可缺少的组成成分。网络协议描述了特定网络环境下通信设备之间的通信过程,规定了通信报文的格式、处理方式和交互时序,其质量关乎网络通信的安全性、可靠性和稳定性。常用的协议解析工具如Wireshark等[1]根据协议规范可以对协议实现快速准确识别。

网络协议识别是指通过人工或自动化手段分析网络协议或者应用所产生的网络流量,提取出能够标识网络协议的关键特征,然后以这些特征为基础标识网络流量所隶属的应用层协议[2]。网络协议识别技术是管理和优化网络资源的重要基础,能够对网络流量的组成进行精确分析,为网络管理与维护、网络内容审计、网络安全防御等多个研究领域提供技术支撑。随着网络规模的不断扩大、网络应用种类的迅速增加,对网络协议识别的效率和准确性的要求越来越高,研究能够提高协议识别准确率和自动化程度的方法具有重要的现实意义。

1 问题描述与定义

网络协议识别技术的研究主要从序列载荷的内容特征和通信行为的外部特征两个方面展开。基于序列载荷内容特征的协议识别可以理解为微观、具体的方法。这类方法需要了解各层协议数据单元的字段结构和字节取值分布,如采用传输控制协议(Transmission Control Protocol, TCP)层的端口信息进行协议区分,基于特定协议字段的取值进行协议区分。基于通信行为外部特征的协议识别可以视为宏观、抽象的方法。不同协议通常具有不同的传输特性和不同的统计分布规律,可以依据协议的各种宏观统计信息来推断流量所属的网络协议。为了剖析网络协议识别的本质,分析现有方法的优势与不足,本文将首先论述协议识别目标、协议识别需求和主要判别指标三方面的基础内容。

1.1 协议识别目标

协议实体的通信通常是一个复杂的交互过程。出于简单化处理的考虑,协议设计时通常采用分层思想,将不同的通信功能在不同层次上实现。

TCP/IP协议族是使用最为广泛的四层协议系统,其层次系统自下而上分为:链路层、网络层、传输层和应用层。链路层负责处理与传输媒介相关的问题;网络层负责处理分组在网络中传输;传输层为两个传输节点提供端到端通信;应用层负责处理特定应用程序与用户的交互细节。链路层、网络层和传输层都定义了各自的协议格式,根据RFC(Request For Comments)文档便可以分析通信过程。而应用层协议是根据应用需求进行定制,种类繁多。区分应用层协议是网络协议识别的主要目标。

网络协议识别往往会以协议的分层为基础,首先依据协议解析工具识别出帧头格式,如以太网帧、点对点协议(Point to Point Protocol, PPP)帧,确定数据包中的网络层首部和传输层首部,进而提取出应用层协议数据进行分析。

网络协议识别需要将连续的网络流量按照一定粒度进行划分,常见的粒度包括Bit-level、Packet-level、Flow-level、Stream-level四类。Bit-level关注网络流量的内容特征,从比特流中挖掘用于区分协议的特征序列,适用于无任何先验知识下的网络协议识别。Packet-level关注数据包的内容特征及其交互行为,如数据包内容、大小分布、时间间隔等,适用于早期的互联网流量的协议识别,现在多作为网络协议识别的辅助分析手段。Flow-level关注数据流的内容特征与交互行为,如数据流内容、大小分布、到达时间等,这种以流为单位分析网络传输数据的方法目前使用最为广泛。Stream-level关注通信主机交互产生的流量,通过长期收集来统计通信特性,适用于研究粗粒度且时间跨度较长的骨干网流量。

同一种协议通信产生的网络流量之间存在一定的相似性,可以利用这种相似性区分不同协议产生的网络流量。网络协议识别的本质就是利用网络流量的内容信息或统计信息,建立一种函数映射关系f:X→C,将网络流量映射为具体的协议类型,其中:X表示待分类的网络流量集合,C表示协议类型集合,

1.2 协议识别需求

网络协议识别技术有助于对网络流量的组成结构进行分析,保障网络的正常运转。网络协议识别的应用需求主要体现在以下领域:

1)网络管理与优化。协议识别技术通过对网络流量的分类识别与统计分析有助于了解流量分布情况和网络运行状态,通过细粒度的协议分析提高网络监控效能,通过配置合理的管理策略提供差异化的网络服务。

2)网络内容监管。面对海量的通信内容,依赖人工识别的传统内容监管方法难以为继,网络协议识别技术可以自动获取流量所承载的内容,能够针对性地过滤非法信息,有效降低监管成本,提高网络内容监管的效率和水平。

3)网络安全防御。网络流量是网络行为的体现,通过深层次分析网络中传输的内容,可以发现通信流量中包含的病毒攻击代码和敏感信息,及时进行告警并提供应对方案,从而防范安全威胁,提高网络安全防御水平。

1.3 主要判别指标

目前,衡量网络协议识别方法,主要采用以下一些判別指标:

1)准确性。衡量协议识别方法的预测值与真实值之间接近程度,主要包括总体识别衡量指标(总体分类准确率Accuracy)和单类识别衡量指标(精确率Precision、召回率Recall和F值F-Measure)。在实际应用中,需要考虑流量种类的不平衡性,因为流量占比较高的协议更容易被识别。

2)实时性。评估协议识别方法是否能够实时对网络流量进行类型判别,较早识别出协议类型有利于后续处理,例如及时对恶意流量进行过滤拦截。

3)鲁棒性。网络数据传输过程中会发生一些特殊情况,如数据包乱序、丢失等。评估协议识别方法应该具备处理这些特殊情况的能力,包容这些异常并且保证协议识别结果的准确率。

4)扩展性。评估协议识别方法在不同粒度划分下的准确率变化以及面对不同吞吐量的性能表现,扩展性好的方法能够保证协议识别结果的准确率和效率。

5)安全性。衡量协议识别方法对于传输内容的保护能力,安全性高的方法在进行协议识别的同时能够有效保护用户隐私、防止隐私数据泄露。

6)协议无关性。协议识别方法除了能够对已知协议实现准确识别,在实际应用中,还可能会遇到新出现的未知协议产生的流量或经过加密的流量,协议无关性好的方法应该能够识别出未知协议的网络流量。

2 网络协议识别流程

网络协议的识别流程大体可分为五个阶段:数据采集、数据预处理、特征提取、分类模型的建立和模型验证,如图 1所示。每个阶段相对独立,又互相关联。模型验证的结果与数据预处理、特征提取和分类模型建立密切相关。数据预处理是模型验证的数据原因,合理、有效的预处理有助于提高协议识别的准确率;特征提取阶段提取出的特征是模型验证的特征原因,完备的特征集有利于提高协议识别的检测效率;分类模型建立是模型验证的模型原因,简单、高效的分类模型有利于提高协议识别的准确率和检测效率。数据采集和数据预处理阶段的工作相对固定,本章将进行重点介绍。特征提取和分类模型的建立是协议识别领域的研究重点,将在后续章节结合研究进展进行介绍。

2.1 数据采集

网络协议识别的第一步就是获取网络数据样本。目前,协议识别的研究数据主要包括本地流量集和公开数据集。下面对两类数据集进行介绍。

2.1.1 本地数据集

本地流量集是指协议分析人员根据实际需求捕获的网络流量,然后将网络流量构造为研究所用的数据集。一些机器学习算法要求建立训练数据集,其中的训练数据需要进行标注。数据集标注的好坏会直接影响算法的学习性能,目前的标注方法主要包括人工标注方法和自动标注方法两类。人工标注方法往往要求在实验环境中模拟目标程序运行,依据端口等已知信息对目标程序产生的流量进行协议类型的标注。自动标注方法利用深度包检测(Deep Packet Inspection, DPI)方法或基于DPI的工具自动地标记流量,如L7-filter[3]、nDPI[4]、Libprotoident[5]等。DPI技术不仅检测端口等信息,而且检查包括包头和载荷的完整数据包,通常这种方法准确率优于简单依赖于端口的方法。两种标注方法各有优缺点,人工标注方法的实验环境可能跟真实网络环境有很大差距,因此产生的训练数据集不具有代表性。工具辅助标记常常因应用繁多、通信量较大等问题,不能精确标记样本,因此实际应用中常结合两种方法进行目标数据的标记。

2.1.2 公开数据集

由于网络流量可能包含用户的隐私数据,出于对用户隐私安全的考虑,协议识别领域缺乏广泛认可的标准流量数据集。为了避免泄露用户隐私,数据集一般需要进行匿名化处理。匿名化处理主要去除负载数据或载荷数据中的敏感信息,对IP地址匿名化。公开数据集是由相关研究机构收集而来,并对外公开的流量数据集,表1给出了目前协议识别领域常用的公开流量数据集:Moore[6]、CAIDA[7] 、UNIBS[8] 、WIDE[9] 、WITS[10] 、DARPA[11]。

表格(有表名)表1 常见公开流量数据集

Tab. 1 Common public traffic datasets

序號数据集数据实例标签匿名处理1Moore248种统计特征有无2CAIDA流量数据无是3UNIBS无载荷数据有是4WIDE无负载数据无是5WITS64字节数据无是6DARPA流量数据无无

2.2 数据预处理

网络协议识别的对象可以是数据包、流、会话等。数据预处理能够将包含异常数据记录的原始数据集转化为适用于协议识别的数据集。

数据预处理主要包括数据清洗和数据转换两个步骤。数据清洗的目标是提高数据质量,保证数据的一致性。具体做法是对缺失数据、冗余数据、噪声数据等异常进行清洗,清洗检查内容包括包头长度是否在合理范围内、包到达时间间隔是否在合理区间内等。数据转换步骤的目标是将数据从一个维度空间映射为另一个维度空间,常用的是归一化处理方法。网络流量从数学的角度看就是一种离散型数据,使用归一化方法可以将离散特征取值映射到欧氏空间,离散特征值对应于欧氏空间的某点,这样可以使离散特征之间距离或者相似度的计算更加合理。

经过数据预处理后,样本集构造成功。此外,还需要考虑数据集中各类别数据的规模是否平衡,若不平衡,可以采取过采样或欠采样方法构造平衡数据集。为了评估方法效果,通常还需要将数据集进行分割,细分为训练集和验证集或训练集、验证集和测试集等形式。训练集用于构建分类模型,验证集用于验证模型识别效果是否达到指定要求,测试集用于评估在实际应用中模型表现的泛化能力。数据集分割方法多样,可以采用随机抽样、K折交叉验证法等。

3 研究进展

网络协议识别技术的研究根据研究思路的不同,主要可以分为两个阶段,分别是:基于数据包的协议识别阶段和基于数据流的协议识别阶段。每一阶段都有不同的研究方法,如图 2所示。本章对两个阶段的一些代表性方法进行探讨和分析。

3.1 基于数据包的协议识别阶段

早期的网络协议识别主要基于数据包进行分析,可以分为两类协议识别方法:基于固定规则的协议识别方法和基于载荷特征的协议识别方法。

3.1.1 基于固定规则的协议识别方法

目前基于固定规则的协议识别方法多使用网络传输的五元组信息(源IP地址、目的IP地址、源端口号、目的端口号、传输层协议),一般通过比对数据包的端口或IP地址相关信息推断协议类型,可以细分为基于端口的协议识别方法和基于IP地址的协议识别方法。

基于端口的协议识别往往基于互联网数字分配机构(Internet Assigned Numbers Authority, IANA)[12]提供的端口协议对照表进行查询,在解析出数据包的端口号信息之后,推断网络流量所属协议类型,如表 2所示。IANA规定系统应用端口号范围为0~1023,用户应用端口号范围为1024~49151,动态端口号为49152~65535。但是随着网络应用的快速发展,很多应用都向用户提供了自定义端口的功能,用户可以根据自己的喜好设置网络应用所使用的端口。此外,点对点传输(Peer-to-Peer, P2P)、基于IP的语音传输(Voice over Internet Protocol, VoIP)等应用为了避开运营商监控,采用动态端口技术。一些僵尸网络程序为了躲避防火墙检测,引入了端口伪装技术,通过将通信端口更改为公认端口欺骗依据端口进行过滤的入侵检测系统。这些技术的出现,导致基于端口的协议识别方法不再可靠。Moore等[6]与Madhukar等[13]分别通过实验证实基于端口的协议识别方法的识别准确率从最初的70%已降低至20%以下。但是,由于此类方法实现简单、运行速度高,现在还常常作为协议识别的辅助手段。

基于IP地址的协议识别主要是利用数据包的IP地址信息进行协议识别。这种方法的适用范围较窄,多用于一些公开应用的识别,例如:如果数据包中包含的一方IP地址为31.13.83.16,该IP地址属于Facebook站点,所有与此IP 地址交互的流量都被推断为Facebook流量。以IP地址和通信端口作为协议特征进行协议识别。Yoon等[14]将应用流量与三元组〈IP,Port,Protocol〉进行关联,通过匹配三元组信息可以确定哪些流量属于公开应用产生的。在可控环境下主机的所有应用是前提已知的,通过筛查统计可以确定非公开应用产生的流量;但这种方法只能粗略地对流量进行分类,且在实际应用中准确率难以保证。基于固定规则的协议识别方法虽然存在很大缺陷,但能够对流量进行初步分类,有利于后续进一步精确地进行协议识别。

表格(有表名)表 2 IANA提供的常见端口协议映射

Tab. 2 Common port-protocol mappings provided by IANA

端口号协议传输协议描述20FTP-DATATCP/UDP文件传输协议数据端口21FTPTCP/UDP文件传输协议控制端口23TELNETTCP/UDP远程登录协议25SMTPTCP/UDP简单邮件传输协议53DNSTCP/UDP域名服务80HTTPTCP/UDP超文本传输协议110POP3TCP/UDP邮件接收协议

3.1.2 基于载荷特征的协议识别方法

为了提高协议识别的准确率,基于载荷特征的协议识别方法被提出,此类方法主要采用深度包检测技术。深度包检测技术不仅检查数据包的头首部信息,还对部分载荷或者全部载荷进行检测,通过寻找预定义的字符串特征,与特征库进行比对确定数据包的协议类型。表 3给出了部分应用协议的识别规则[15-16]。

基于载荷特征的协议识别方法能够避免对端口的过分依赖,减小端口滥用、伪装等技术对协议识别的影响。早期的特征提取需要一定专家知识,随着技术的不断发展,采用机器学习中深度学习方法可以自动完成特征提取。Sen等[17]通过对载荷的分析实现了P2P流的分类,通过检查数据包载荷识别应用特征,能够在高速网络上基于特征准确识别P2P流量,相較基于端口的方法,准确率提高了3倍。Yun等 [18]提出了一种基于语义信息的网络协议识别方法。该方法首先对原始流量进行3-gram切分处理,得到3-gram序列;然后,基于隐含狄利克雷分布(Latent Dirichlet Allocation, LDA)算法挖掘协议关键字,得到协议关键字模型;最后,通过协议关键字模型提取协议数据包特征,进而完成聚类,实现协议格式的提取。

从理论上看,分析数据包的载荷内容,协议识别的准确率可以接近100%[19]。但典型的深度包检测方法存在以下三方面的问题:1)提取协议识别特征较为困难,特征库需要不断维护。协议识别特征的提取依赖于专家领域知识,需要人工手动确定;且当协议版本升级或新协议出现时,需要及时将特征存入特征库中;面对网络的快速发展,特征库需要持续更新维护。2)适用范围有限,该方法无法应用于加密流量和协议规范信息未知的网络流量。流量的加密会使得网络数据表现出随机性和不确定性,难以进行协议特征的提取。而对于一些私有协议,由于协议规范信息未知,在特征库中找不到特征与之匹配。3)系统开销较高。当特征库中的特征数量超过一定规模时,耗费的系统资源会急剧增加。

尽管存在许多不足,此类方法仍是目前较为准确的一类协议识别方法,在工业界应用广泛,也是高速网络环境部署的最佳选择[16,20]。近年来,不少研究人员针对DPI的不足,提出了各类改进方法。DPI的技术研究不断朝着智能化、系统化的方向发展。

深度流检测(Deep Flow Inspection, DFI)技术是DPI技术一个改进,其检测粒度从单一数据包扩展到完整数据流。DFI技术是基于流量行为的识别技术,即不同类型流量数据的流状态不同。与DPI技术相比,DFI能够对未知流量和加密流量进行识别;但总体上看,该技术的识别准确率低于DPI技术[21],具体如表 4所示。Wang等[22]综合DPI和DFI的优势,提出了一种基于DPI和DFI的新型P2P流量识别系统,该系统比单个基于DPI或DFI识别系统具有更广泛的识别范围,且具有自主学习能力。叶文晨等[23]提出了一种以DPI技术为主、DFI技术为辅的协议识别方法,并为此设计了软硬件结合的识别设备,其中:DPI技术是由MPC8572网络处理器提供硬件支撑,DFI技术则是通过软件程序完成。该方法主要通过对内存池进行读写处理,DPI实现细粒度的分类,并在内存池中写入涉及分类识别的相应信息,以此来更新会话流的统计信息和识别结果。DFI用于检测DPI误识别情况,若DPI与DFI识别结果一致,则确定识别结果;否则,清除识别结果,进行重新检测。这种方法比简单地使用DPI或DFI技术的识别方法效果好;但面对加密等情况,DPI技术失效,只能使用DFI进行流量的粗分类。

高效的特征匹配算法是实现高性能DPI的基础,因此很多研究人员从降低特征匹配算法的复杂度着手改进DPI技术。特征匹配算法分为字符串匹配方法和正则表达式匹配方法。字符串匹配方法是对一个或多个固定特征串(模式)的简单规则的匹配,通常对载荷的前几十个字节进行匹配,包括KMP(Knuth-Morris-Pratt)、BM(Boyer-Moore)算法、WM(Wu-Manber)算法、AC(Aho-Corasick)自动机算法等。这类方法通过缩减检测范围,提高DPI的数据处理能力;但该类方法的主要缺点是面对协议特征位置不固定的协议,识别准确率较低。

正则表达式匹配方法可以面向复合型条件的查询和模糊匹配,能够实现复杂规则的匹配,即通过一个表达式表示一组规则,也支持规则之间的关联[24]。与字符串匹配方法相比,此类方法具有更强的字符串描述能力,灵活高效,能够识别非固定位置的协议特征,但存在空间开销大、处理速度慢等问题。付文亮等[25]针对正则表达式的计算复杂度高、存储消耗大等问题,提出了一种基于现场可编程逻辑门阵列(Field Programmable Gate Array, FPGA)的正则表达式匹配方法,通过对数据结构、流管理策略等方面进行优化,提高协议识别的处理能力。Kumar等[26]也提出了基于硬件的正则表达式方法,通过缩减确定有限状态自动机(Deterministic Finite Automaton, DFA)硬件存储空间来提高匹配识别的速率。Tong等[27]针对大多数协议识别方法存在的吞吐量性能瓶颈,从软硬件两方面提高协议识别的吞吐量。该方法首先利用C4.5决策树构造识别器;然后,采用优化决策树和分治技术,对协议识别器进行加速;最后,基于FPGA和多核处理器,对协议识别器进行硬件加速。

为了将DPI技术部署在高速网络环境中,研究人员尝试以自动化、半自动化方式获得应用特征,比较常用的是基于统计指纹(即模式)的方法,采用统计方法自动推导网络协议的指纹特征,然后利用特征进行协议识别。Finamore 等[28]提出了KISS方法处理用户数据包协议(User Datagram Protocol, UDP)流量,利用UDP流量载荷的统计特征,通过卡方测试推导协议统计指纹。该方法在实验测试中效果较好,不足之处是使用范围有限,仅适用于UDP流量载荷。Crotti 等[29]提出一种基于数据包大小、到达时间和到达顺序三个简单属性的协议识别方法,通过这些流量属性来表示协议指纹;但此方法只考虑TCP流量载荷。

3.2 基于数据流的协议识别阶段

网络协议识别领域研究的第二个阶段是基于数据流的协议识别阶段,该阶段最为典型的方法包括基于主机行为的协议识别方法和基于统计分析的协议识别方法。加密协议的使用导致依赖数据包固定特征串的方法不再可靠,研究者转向分析数据包的行为特征、统计特征等外部信息,将分析粒度从单个数据包扩展到了完整的数据流。

3.2.1 基于主机行为的协议识别方法

基于主机行为的协议识别方法从宏观的角度对网络流量进行分类识别,主要利用了网络流量的统计特性,如数据流持续时间、字节数、传输间隔时间等在网络通信过程可直接测量的统计参数。此类方法有效避免了具体数据特征的提取,能够防止用户信息泄露,计算效率高,存储开销小,并且能够处理加密数据流;但这种方法的主要缺点是统计信息采集繁琐,且受网络环境影响,统计结果可能不稳定,实时性差,协议识别的准确度偏低。

Karagiannis等[30]提出了基于主机行为的BLINC流量分类框架,提取网络流的社会行为、功能行为和应用行为特征。其中:社会层关注主机与其他主机的交互行为,如连接数量、社区关系;功能层关注特定主机的网络角色,如客户端、服务器;应用层捕获特定主机在特定端口传输的信息,如流的长度、大小。该方法首先基于经验推导出每种协议的主机行为,并将这些行为以图的形式存储下来,BLINC通过图匹配进行协议识别,实验测试能够识别80%~90%的网络流量,且准确率超过95%。后续基于主机行为的协议识别方法多以BLINC的分类框架为基础。

Iliofotou等[31]提出了一种利用流量散度图监测、分析网络流量的方法,首先通过TDG(Traffic Dispersion Graph)建模网络通信场景,借鉴社交网络理论,使用IP地址代替社交网络中的个人,以散度图的节点表示通信主机,边代表主机间的信息交换,不同协议的TDG明显不同,通过分析连通子图、节点分布情况,可以推断出网络流的协议信息。

3.2.2 基于機器学习的协议识别方法

面对与日俱增的网络流量,一些研究人员提出将机器学习方法应用于协议识别领域。机器学习是人工智能领域的一项重要技术,通过计算机对大规模数据进行挖掘,分析数据特征之间的规律。机器学习以强大的自适应性、自学习能力为分类问题提供了一种有效的决策手段。协议识别的本质是分类问题,可以通过机器学习的方法解决。这种方法虽具有很高的准确率以及很强的数据处理能力,但也存在对特征的依赖严重、在真实网络环境部署困难等问题。

目前,基于机器学习的协议识别方法可以分为基于有监督学习的协议识别方法、基于无监督学习的协议识别方法,以及基于半监督学习的机器学习方法,其中有监督学习是研究较多的一类。下面对这三类方法的研究情况进行介绍。

1) 有监督学习方法。

有监督学习方法又称分类方法,需要一个预先分类的标签训练集,即数据集中有输入数据信息和期望的输出结果。有监督学习的目标是通过分类模型能够降低样本实际标签与期望结果之间的差距。有监督学习方法的基本识别流程分为训练和测试两个阶段。在训练阶段,首先对网络数据流进行预处理转化为向量或矩阵形式;然后,通过特征工程方法获取适合的特征作为判别依据;最后,选择有监督学习算法构造训练分类器,并对训练分类器进行训练。在测试阶段,也需要进行预处理完成数据类型转化,并通过特征工程选择出代表网络数据流的特征;然后,将提取出的特征信息输入训练好的分类器,预测网络流量所对应的协议类型。目前,分类模型主要采用了朴素贝叶斯(Naive Bayesian, NB)、支持向量机(Support Vector Machine, SVM)、神经网络(Neural Network, NN)、决策树(Decision Tree, DT)、K近邻(K-Nearest Neighbors, KNN)等方法。

贝叶斯网络是一种概率图模型,也是有向无环图,节点代表变量,有向边代表节点之间的条件概率。贝叶斯分类器是基于贝叶斯公式解决分类问题的概率模型,目前研究较多的贝叶斯分类器是朴素贝叶斯。该方法是基于特征向量各分量之间相互独立的假设,首先基于此假设学习数据输入与结果输出的联合概率分布模型,然后利用模型基于贝叶斯原理求出输入数据后验概率最大的输出值。Moore等[6]使用有监督的简单朴素贝叶斯分类算法对数据集进行分类,所使用的网络数据集由248个统计特征组成,如流持续时间、包到达时间的傅里叶变换等,且已被人工分类,并指明了分类标签,使用有监督的简单朴素贝叶斯分类算法进行分类的准确率为65%,然而通过方法改进,使用基于核密度估计的朴素贝叶斯(Naive Bayes with Kernel density Estimation, NBKE)算法和基于快速相关的过滤器(Fast Correlation-Based Filter, FCBF)的朴素贝叶斯减少特征维度,分类准确率可以提高到95%以上。李君等[32]采用贝叶斯网络进行流量分类,首先通过分析流统计特征确定所需提取的特征属性,然后通过遗传算法选择最优的特征子集,最后基于特征子集采用贝叶斯网络识别P2P流量。该方法能够快速识别P2P业务,且分类准确率达95%。张泽鑫等[33]提出一种基于加权的朴素贝叶斯流量分类方法,采用特征选择算法ReliefF和相关系数方法计算出每个特征的权重值,然后通过贝叶斯确定流量所属类别。

支持向量机是针对二值分类问题提出的,但通过构造多个SVM分类模型或与二叉决策树相结合,可以将其推广到多分类问题[34]。支持向量机是一种基于结构风险最小化原理的分类方法,目标是寻找能够分离样本的分类超平面。Li等[35]和Yang等[36]针对以往方法复杂、难以实时分类,且在条件独立假设不成立和先验知识存有不足的情况下,使用SVM分别对校园流量和P2P流量进行识别分类,通过支持向量机将流量分类问题转化为二次寻优问题,当面对流量各类别先验概率未知或不足的情况时,其分类准确率比朴素贝叶斯方法要高。Groleat等[37]提出一种结合FPGA硬件加速技术的SVM协议识别模型,对于高速网络环境,这种方法的分类性能远远超过纯软件实现,并且能够实现实时分类。王一鹏等[38]提出一种基于主动学习和SVM的网络协议识别方法。该方法能够克服网络数据流的获取与标记工作对于领域知识的依赖,避免SVM分类器对无意义、重复样本的学习,不仅能够减少标记所用时间,而且提高了学习效率。曹杰[39]提出一种过滤式封装式(Filter-Wrapper)特征选择方法,该方法能够改善特征维冗余引发分类性能的下降问题,增强SVM流量分类的泛化能力。Lobato等[40]提出了一种能够实时检测零日攻击的流量识别方法,该方法从蜜罐中收集攻击流量,将分类器的输入视为合法输入,若分类器识别为攻击流量时报警,识别为正常流量时进行参数更新。

DBSCAN算法是一种基于密度的聚类算法,通过寻找密度相连的最大集合来确定聚类结果,将具有高密度的区域划分为一类。何震凯等[61]提出一种基于DBSCAN的协议识别方法,以主成分分析作为特征选择方法,选出合适的特征子集,进而利用DBSCAN算法聚类成簇,利用簇构建流量分类器。

无监督学习方法还包括层次聚类、谱聚类、高斯混合模型聚类和隐马尔可夫模型聚类算法等方法。张凤荔等[62]提出基于改进凝聚层次聚类的协议分类算法,该算法以层次凝聚(AGglomErative NeSting, AGENS)算法为基础,采用边聚类边提取结果的方式,实现对数据的快速聚类。周文刚等[63]针对网络流量复杂、动态的特性,采用谱聚类的思想将网络流量的分类识别问题转化为无向图的多路划分问题,使用拉普拉斯矩阵完成高维数据向低维数据的转换,然后利用谱图划分的思想构建分类器,最终基于图划分结果对流量进行分类识别。Bernaille等[64]采用K均值、高斯混合模型、隐马尔可夫模型这三种聚类方法对TCP网络流量进行分类,研究发现高斯混合模型聚类和隐马尔可夫模型聚类算法的分类准确率接近,且高于K均值聚类。

3) 半监督学习方法。

有标记数据少、无标记数据多的现象普遍存在,但它们具有相似的数据分布,为了解决这类问题出现了半监督学习。半监督学习方法介于有监督学习与无监督学习之间,能够利用少量标记样本和大量未标记样本,指导进行分类工作。

赵英等[65]提出一种基于马尔可夫模型的半监督学习方法。该方法利用马尔可夫模型提取特征值,通过密度计算的方法估计聚类中心点,有效避免了传统聚类算法不稳定的问题,提升了识别准确率。Erman等[66]提出一种基于K-Means的半監督学习方法,首次将半监督学习引入到流量分类领域,通过K均值算法将包含有少量标记样本和大量未标记样本数据的数据集划分为若干簇,然后选择簇中比例最大的已标记样本,以相应的类标记作为簇的类别。Zhang等[67]利用网络数据流的相关性信息扩展有监督数据集,根据未标记流和预先标记流之间的相关性自动标记未标记流,扩展了有监督数据集的规模和质量,提高了分类识别的性能。丁伟等[68]提出基于层次聚类的半监督学习方法,利用层次聚类将内容相近的数据流聚为一类,首先利用互信息选择最相关的统计特征,缩减数据流的特征空间,然后采用高斯函数进行数据流的高维特征映射,根据高维空间的距离进行聚类,实验结果表明该方法能够对大部分流量进行准确的分类识别。Wang等[69]研究了基于先验知识的协议识别方法,该方法将标记数据集和未标记数据集作为输入,首先利用约束聚类算法提取未标记数据的新模式,且这些模式是标记数据未出现的,并以此模式代表未知协议,然后基于标记数据和未标记数据的新模式训练多个二元分类器,根据分类器的结果确定样本数据的协议类型。

3.3 方法比较

从上述的基于固定规则、载荷特征、主机行为、机器学习这四类协议识别技术可以看出,很难凭借一种方法识别出所有流量,大部分方法适用于特定场景。为了进一步分析四种技术的不同,本文从准确性、实时性、鲁棒性、伸缩性、安全性、协议无关性这六种判别指标着手,对四种技术进行对比和分析,结果如表 5所示。

表格(有表名)表5 不同协议识别方法的性能比较

Tab. 5 Performance comparison of different protocol recognition methods

方法准确性实时性鲁棒性伸缩性安全性协议无关固定规则低较高较高较高最高最低载荷特征较高较高低低最低最低主机行为较低较低中中最高中机器学习中中中最高最高最高

在准确性方面,基于固定规则的识别方法能够很好识别常见的标准协议,如超文本传输协议(HyperText Transfer Protocol, HTTP)、文件传输协议(File Transfer Protocol, FTP)、域名系统(Domain Name System, DNS)等,但识别其他协议时,尤其是非固定端口的协议,准确性会大幅下降,总的来说,这种方法的准确性偏低。基于载荷特征的识别方法是目前工业界应用较多的方法,这种方法为每一种协议建立识别规则。虽然规则库的建立和维护成本较高,但准确性是最好的,原因在于识别规则与协议规范是密切联系的,建立规则可以理解为提取协议规范的固定模式。基于主机行为或机器学习的方法需要预先建立模型,识别准确性与模型完备性、训练数据集等都密切相关,且大多情况下,识别准确性不如基于载荷特征的方法。

在实时性方面,基于固定规则、载荷特征的实时性较好,这与处理对象是有直接联系的,匹配规则通常分析数据包的前几十字节或是指定位置,能够快速分析出流量的类型。基于主机行为的方法是对通信的网络进行分析,对每一种协议的通信行为进行统计建模,该方法计算量大、耗时长,因此实时性较差。基于机器学习的方法需要提取数据流的内容或统计特征。若提取统计特征,则与基于主机行为方法相似,实时性较差。若提取内容特征,则实时性与提取特征的位置有关:有些方法认为特征应当从数据流开始和结束的几十个字节中提取,这种特征提取方法难以保证实时性;也有的研究人员选择从数据流开始的几百个字节进行提取,这种提取方法实时性较好。总体来看,基于机器学习的协议识别方法实时性一般。

在鲁棒性方面,基于固定规则的识别方法适用性较强,只需简单地从IP头或TCP头提取地址和端口,便能作出判断。这种方法能够容忍网络出现异常,鲁棒性也是四种方法中最好的。基于主机行为、机器学习的识别方法的鲁棒性取决于多种因素,如提取特征的质量或位置、数据集的完备性。整体来看,这两种方法鲁棒性一般。基于载荷特征的识别方法鲁棒性较差,主要是因为对数据包的重传、乱序等异常现象较为敏感,如果流量经过加密处理,数据的特性被隐藏,该方法将失效,因此这种方法的鲁棒性相较其他三种方法是最差的。

在扩展性方面,基于固定规则的识别方法只需提取协议头部的端口等信息,该方法简单、高效,伸缩性最好。基于载荷特征的识别方法在面临吞吐量较大的情况时,需要进行大量的特征匹配,计算开销也会急剧增加,需要结合软硬件设备才能满足性能要求,其伸缩性偏低。基于主机行为、机器学习的识别方法当面临吞吐量较大的情况时,也需要更大的内存空间来存储特征。在对数据流进行分析时,伸缩性较好,因为从数据流提取的特征更完备;在数据包进行分析时,伸缩性相对较差。整体来看,这两种方法伸缩性一般。

在安全性方面,基于载荷特征的识别方法需要检测数据包的应用层数据,容易造成隐私泄露问题。基于固定规则的识别方法不需要对应用层数据匹配特征模式等,也就不存在安全问题。基于主机行为、机器学习的识别方法在对统计特征进行分析时,不分析流量的具体内容,只分析流量的通信行为,安全性较高。另外,基于机器学习的识别方法也存在分析应用层数据的情况,但不深入检测应用层具体内容,安全性问题并不严重。

在协议无关性方面,基于固定规则的识别方法只能识别已知的标准协议,根据端口协议的映射关系进行识别,对未知协议的流量,尤其端口非固定的协议,该方法会失效。基于载荷特征的识别方法面对未知流量、加密流量都会失效。这种方法的识别依赖于识别规则库,规则库中因没有未知流量的识别规则而失效;加密会掩盖协议特征而使方法失效。基于主机行为的识别方法是对流量外部特征进行分析,因此不会受到流量内容加密所带来的影响;但这种方法是对已知协议的通信行为进行建模,也就导致无法识别未知流量。基于机器学习的识别方法与基于主机行为的识别方法类似,当对统计行为特征进行分析时,能够识别加密流量;当对内容特征进行分析时,根据同一协议内部特征表现出的相似性,可以识别出未知流量的协议信息。因此基于機器学习的识别方法适用范围最广。

4 未来研究方向

协议识别技术经过十几年的研究,从传统的基于固定规则和载荷特征的数据包识别阶段,发展到目前的基于主机行为和机器学习的数据流识别阶段,识别准确率和效率虽然有所提高,但还不能很好适应网络的持续性变化。为了应对各类新兴的网络技术和纷繁复杂的应用,协议识别技术可以尝试在以下方向有所突破:

1)数据采集与可信标注。目前协议识别缺乏公认的数据集,研究人员多采用自身实验网络环境下捕获的原始流量数据,然后使用人工方法或DPI工具进行类别标注。人工方法繁琐、工作量大,易出错,适用于小样本标记。DPI工具能够大批量、自动化地标记样本,但是Carela-espanol等[70]的测试发现L7-fiter的平均准确率只有38.13%,达不到结果可信的水平。然而协议识别需要大量的样本,因为样本越多越能反映出协议的特性,不能仅仅依赖于人工标记的方法,因此标准的数据集与值得信任的标注方法是需要研究人员考虑解决的问题之一。

2)未知协议的识别。未知协议在互联网中越来越多,很多应用软件使用了自己设计的通信协议,这类协议是Wireshark等通用协议解析工具无法解析的。但未知协议与已知协议一样,具有相对固定的格式,当同一类型未知协议的流量数据不断累积,流量数据在物理取值和统计分布方面的特性也会变得愈加明显,从中寻找规律也成为可能。未知协议识别需要首先通过寻找相对固定的特征序列识别出帧头,然后在此基础上,挖掘出上层协议特征,最后使用协议特征指导后续的协议识别。

3)加密流量识别。一些软件出于安全防护的考虑,采用了加密和隧道化传输技术,如安全套接层(Secure Sockets Layer, SSL)、安全外壳(Secure SHell, SSH)协议、虚拟专用网络(Virtual Private Network, VPN)等,加密后的流量数据缺乏明显的协议特性,增加了分类的难度。不仅要考虑这些加密流量的检测,更要进一步识别它们的协议类型,这就显得尤为困难。

4)P2P协议识别。P2P技术的普及,导致难以采集完整有效的数据。P2P节点在行为上兼具Server 和Client两种身份,跟传统的C/S或B/S访问模式中通信端点的一一映射关系有很大的不同,只能收集到部分流量。除此之外,P2P应用类型多样,包括文件下载、内容共享、即时通信、网络电话和流媒体等。在这种情况下,如何细粒度地区分P2P协议是目前研究难点。

5)类别不平衡的协议识别。目前机器学习方法是协议识别的研究热点,其分类模型多是由类别平衡的实验环境下的数据训练得到,但在实际网络环境中,存在严重的类别不平衡现象。如果采用重采样技术,多采样小类别的样本或从大类别中删除一部分样本,这种处理方式会破坏原本的样本分布情况。若部署在真实网络环境中,可能将小类别流量误识别为大类别流量,在类别不平衡条件下,保证小类别协议识别的准确率也是研究人员需要考虑的问题。

5 结语

网络协议识别技术在网络安全领域具有重要的作用。随着网络技术的不断升级,传统的基于端口的协议识别技术识别效果越来越差。基于载荷特征的方法虽然准确,但容易泄露用户隐私。基于主机行为的方法建模复杂,且多停在理论分析阶段。基于机器学习方法的虽然高效、准确率高,但严重依赖于特征导致其难以在真实环境中部署。

本文综述了网络协议识别领域的研究方法和相关成果。首先介绍网络协议识别的识别目标、识别需求和评估准则;然后分析网络协议识别的基本流程;接着从两个类别详细分析了不同协议识别方法的优缺点;最后展望了未来的研究方向。

虽然研究人员在流量识别领域取得了不少成果,但是协议识别技术仍面临着众多的挑战:

1)复杂网络环境的挑战,例如移动网络、云平台环境。移动互联网发展迅速和智能终端的快速普及都极大改变了传统互联网的行为模式,智能终端的应用数量也不断增加,所产生网络流量也在急剧增长,如何在移动网络下进行网络流量的协议识别分类也显得更加重要。越来越多的应用采用云平台环境部署。云平台的出入口流量混合了多种不同应用的流量,且经常对应用的部署进行动态调整,难以得到纯净的训练样本,实现精确的协议识别。

2)大數据高速网络实时分类的挑战。面对网络流量的大数据,结合Hadoop、FPGA等并行处理技术和硬件加速技术成为研究趋势。实时分类不同于离线分类,要求尽早识别出协议类型。从目前协议识别的研究情况来看,大多数研究方法都围绕着提高识别准确率展开,基于固定规则、载荷特征两种方法虽具有早期识别的优势,但准确率和运行效率难以保证。基于主机行为和基于机器学习的两类方法依赖于离线学习。除此之外,高速网络越来越普及,如何将协议识别方法部署在高速网络,实时进行协议识别且能保证识别准确率,是学术界、工业界面临的重要挑战。

3)网络流量持续动态变化的挑战。网络流量持续性动态变化会导致概念漂移现象的产生,具体表现是处于不同网络环境的同一类协议的流量数据分布会出现较大差异。然而现有方法假设同种协议具有相同分布的特性,且着重于流量的静态识别,没有考虑流量概念漂移的影响。面对网络流量的持续变化,将不同网络环境的流量进行统一处理,是协议识别领域的严峻挑战。

参考文献 (References)

[1]SANDERS C. Practical Packet Analysis: Using Wireshark to Solve Real-World Network Problems [M]. San Francisco: No Starch Press, 2011: 192-194.

[2]陈亮,龚俭,徐选.应用层协议识别算法综述[J].计算机科学,2007,34(7):73-75.(CHEN L, GONG J, XU X. A survey of application-level protocol identification algorithm [J]. Computer Science, 2007, 34(7): 73-75.)

[3]SourceForge. L7-filter: application layer packet classifier for Linux [EB/OL]. [2019-04-14]. http://l7-filter.sourceforge.net/.

[4]DERI L, MARTINELLI M, BUJLOW T, et al. nDPI: open-source high-speed deep packet inspection [C]// Proceedings of the 2014 Wireless Communications and Mobile Computing Conference. Piscataway: IEEE, 2014: 617-622.

[5]ALCOCK S, NELSON R. Libprotoident: traffic classification using lightweight packet inspection: technical report [R/OL]. [2019-04-14]. http://www.wand.net.nz/publications/lpireport.

[6]MOORE A W, ZUEV D. Internet traffic classification using Bayesian analysis techniques [J]. ACM SIGMETRICS Performance Evaluation Review, 2005, 33(1): 50-60.

[7]CAIDA. CAIDA data-overview of datasets, monitors and reports [EB/OL]. [2019-04-14]. http://www.caida.org/data/overview/.

[8]Università degli Studi di Brescia. UNIBS: data sharing [EB/OL]. [2019-04-14]. http://netweb.ing.unibs.it/~ntw/tools/traces.

[9]The MAWI Working Group. MAWI working group traffic archive [EB/OL]. [2019-04-14]. http://mawi.wide.ad.jp/mawi/.

[10]WAND network research group. WITS: Waikato Internet traffic storage [EB/OL]. [2019-04-14]. https://wand.net.nz/wits/.

[11]LIPPMANN R, HAINES J W, FRIED D J, et al. The 1999 DARPA off-line intrusion detection evaluation [J]. Computer Networks, 2000, 34(4): 579-595.

[12]TOUCH J, MANKIN A, KOHLER E, et al. Service name and transport protocol port number registry [EB/OL]. [2019-04-14]. https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml.

[13]MADHUKAR A, WILLIAMSON C. A longitudinal study of P2P traffic classification [C]// Proceedings of the 14th International Symposium on Modeling, Analysis, and Simulation. Piscataway: IEEE, 2006: 179-188.

[14]YOON S H, PARK J W, PARK J S, et al. Internet application traffic classification using fixed IP-port [C]// Proceedings of the 12th Asia-pacific Network Operations and Management Conference on Management Symposium, LNCS 5787. Berlin: Springer, 2009: 21-30.

[15]KARAGIANNIS T, BROIDO A, FALOUTSOS M, et al. Transport layer identification of P2P traffic [C]// Proceedings of the 4th ACM SIGCOMM Internet Measurement Conference. New York: ACM, 2004: 121-134.

[16]汪立東,钱丽萍,王大伟,等.网络流量分类方法与实践[M].北京:人民邮电出版社,2013:122-126.(WANG L D, QIAN L P, WANG D W, et al. Network Traffic Classification [M]. Beijing: Posts and Telecom Press, 2013: 122-126.)

[17]SEN S, SPATSCHECK O, WANG D. Accurate, scalable in-network identification of P2P traffic using application signatures [C]// Proceedings of the 2004 13th International Conference on World Wide Web. New York: ACM, 2004: 512-521.

[18]YUN X, WANG Y, ZHANG Y, et al. A semantics-aware approach to the automated network protocol identification [J]. IEEE/ACM Transactions on Networking, 2016, 24(1): 583-595.

[19]MOORE A W, PAPAGIANNAKI K. Toward the accurate identification of network applications [C]// Proceedings of the 6th International Workshop on Passive and Active Network Measurement, LNCS 3431. Berlin: Springer, 2005: 41-54.

[20]BUJLOW T, CARELA-ESPANOL V, BARLET-ROS P. Independent comparison of popular DPI tools for traffic classification [J]. Computer Networks, 2015, 76: 75-89.

[21]CHEN H, HU Z, YE Z, et al. A new model for P2P traffic identification based on DPI and DFI [C]// Proceedings of the 2009 International Conference on Information Engineering and Computer Science. Piscataway: IEEE, 2009: 1-3.

[22]WANG C, ZHOU X, YOU F, et al. Design of P2P traffic identification based on DPI and DFI [C]// Proceedings of the 2009 International Symposium on Computer Network and Multimedia Technology. Piscataway: IEEE, 2009: 1-4.

[23]叶文晨,汪敏,陈云寰,等.一种联合DPI和DFI的网络流量检测方法[J].计算机工程,2011,37(10):102-104,107.(YE W C, WANG M, CHEN Y H, et al. Network flow inspection method of joint DPI and DFI [J]. Computer Engineering, 2011, 37(10): 102-104, 107.)

[24]林冠洲.网络流量识别关键技术研究[D].北京:北京邮电大学,2011:10.(LIN G Z. Research on the key technologies of network traffic classification [D]. Beijing: Beijing University of Posts and Telecommunications, 2011: 10.)

[25]付文亮,嵩天,周舟.RocketTC:一种基于FPGA的高性能网络流量分类架构[J].计算机学报,2014,37(2):414 -422.(FU W L, SONG T, ZHOU Z. RocketTC: a high throughput traffic classification architecture on FPGA [J]. Chinese Journal of Computers, 2014, 37(2): 414-422.)

[26]KUMAR S, DHARMAPURIKAR S, YU F, et al. Algorithms to accelerate multiple regular expressions matching for deep packet inspection [J]. ACM SIGCOMM Computer Communication Review, 2006, 36(4): 339-350.

[27]TONG D, QU Y R, PRASANNA V K. Accelerating decision tree based traffic classification on FPGA and multicore platforms [J]. IEEE Transactions on Parallel and Distributed Systems, 2017, 28(11): 3046-3059.

[28]FINAMORE A, MELLIA M, MEO M, et al. KISS: stochastic packet inspection classifier for UDP traffic [J]. IEEE/ACM Trans on Networking, 2010, 18(5): 1505-1515.

[29]CROTTI M, DUSI M, GRINGOLI F, et al. Traffic classification through simple statistical fingerprinting [J]. ACM SIGCOMM Computer Communication Review, 2007, 37(1): 5-16.

[30]KARAGIANNIS T, PAPAGIANNAKI K, FALOUTSOS M. BLINC: multilevel traffic classification in the dark [C]// Proceedings of the 2005 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. New York: ACM, 2005: 229-240.

[31]ILIOFOTOU M, PAPPU P, FALOUTSOS M, et al. Network monitoring using Traffic Dispersion Graphs (TDGs) [C]// Proceedings of the 7th ACM SIGCOMM Conference on Internet Measurement. New York: ACM, 2007: 315-320.

[32]李君,張顺颐,王浩云,等.基于贝叶斯网络的Peer-to-Peer识别方法[J].应用科学学报,2009,27(2):124-130.(LI J, ZHANG S Y, WANG H Y, et al. Peer-to-peer traffic identification using Bayesian networks [J]. Journal of Applied Sciences, 2009, 27(2): 124-130)

[33]张泽鑫,李俊,常向青.基于特征加权的朴素贝叶斯流量分类方法研究[J].高技术通讯,2016,26(2):119-128.(ZHANG Z X, LI J, CHANG X Q. Internet traffic classification using the attribute weighted naive Bayes algorithm [J]. High Technology Letters, 2016, 26(2): 119-128.)

[34]孙德山.支持向量机分类与回归方法研究[D].长沙:中南大学,2004:10.(SUN D S. The researches on support vector machine classification and regression methods [D]. Changsha: Central South University, 2004: 10.)

[35]LI Z, YUAN R, GUAN X. Accurate classification of the Internet traffic based on the SVM method [C]// Proceedings of the 2007 IEEE International Conference on Communications. Piscataway: IEEE, 2007: 1373-1378.

[36]YANG A, JIANG S, DENG H. A P2P network traffic classification method using SVM [C]// Proceedings of the 9th International Conference for Young Computer Scientists. Piscataway: IEEE, 2008: 398-403.

[37]GROLEAT T, ARZEL M, VATON S. Hardware acceleration of SVM-based traffic classification on FPGA [C]// Proceedings of the 8th International Wireless Communications and Mobile Computing Conference. Piscataway: IEEE, 2012: 443-449.

[38]王一鹏,云晓春,张永铮,等.基于主动学习和SVM方法的网络协议识别技术[J].通信学报,2013,34(10):135-142.(WANG Y P, YUN X C, ZHANG Y Z, et al. Network protocol identification based on active learning and SVM algorithm [J]. Journal on Communications, 2013, 34(10): 135-142.)

[39]曹杰.基于SVM的网络流量特征降维与分类方法研究[D].长春:吉林大学,2017:10.(CAO J. Research of feature reduction and traffic classification method based on SVM [D]. Changchun: Jilin University, 2017: 10.)

[40]LOBATO A G P, LOPEZ M A, SANZ I J, et al. An adaptive real-time architecture for zero-day threat detection [C]// Proceedings of the 2018 International Conference on Communications. Piscataway: IEEE, 2018: 1-6.

[41]谭骏,陈兴蜀,杜敏,等.基于自适应BP神经网络的网络流量识别算法[J].电子科技大学学报,2012,41(4):580-585.(TAN J, CHEN X S, DU M, et al. Internet traffic identification algorithm based on adaptive BP neural network [J]. Journal of University of Electronic Science and Technology of China, 2012, 41(4): 580-585)

[42]WANG W, ZHU M, ZENG X, et al. Malware traffic classification using convolutional neural network for representation learning [C]// Proceedings of the 2017 International Conference on Information Networking. Piscataway, NJ: IEEE, 2017: 712-717.

[43]王勇,周慧怡,俸皓,等.基于深度卷积神经网络的网络流量分类方法[J].通信学报,2018,39(1):14-23.(WANG Y, ZHOU H Y, FENG H, et al. Network traffic classification method basing on CNN [J]. Journal on Communications, 2018, 39(1): 14-23.)

[44]JAIN A V. Network traffic identification with convolutional neural networks [C]// Proceedings of the IEEE 16th International Conference on Dependable, Autonomic and Secure Computing, 16th International Conference on Pervasive Intelligence and Computing, 4th International Conference on Big Data Intelligence and Computing and 2018 International Conference on Cyber Science and Technology. Piscataway: IEEE, 2018: 1001-1007.

[45]陳雪娇,王攀,俞家辉. 基于卷积神经网络的加密流量识别方法[J].南京邮电大学学报(自然科学版),2018,38(6):40-45.(CHEN X J, WANG P, YU J H. CNN based encrypted traffic identification method [J]. Journal of Nanjing University of Posts and Telecommunications (Natural Science Edition), 2018, 38(6): 40-45)

[46]叶松.基于现代网络的深度学习应用协议识别技术研究与实现[J].软件导刊,2018,17(10):194-199.(YE S. Research and implementation of deep learning application protocol recognition technology based on modern network [J]. Software Guide, 2018, 17(10): 194-199.)

[47]REN J, WANG Z. A novel deep learning method for application identification in wireless network [J]. China Communications, 2018, 15(10): 73-83.

[48]WILLIAMS N, ZANDER S, ARMITAGE G. A preliminary performance comparison of five machine learning algorithms for practical IP traffic flow classification [J]. ACM SIGCOMM Computer Communication Review, 2006, 36(5): 5-16.

[49]徐鹏,林森.基于C4.5决策树的流量分类方法[J].软件学报,2009,20(10):2692-2704.(XU P, LIN S. Internet traffic classification using C4.5 decision tree [J]. Journal of Software, 2009, 20(10): 2692-2704.)

[50]周剑峰,阳爱民,刘吉财.基于改进的C4.5算法的网络流量分类方法[J].计算机工程与应用,2012,48(5):71-74.(ZHOU J F, YANG A M, LIU J C. Traffic classification approach based on improved C4.5 algorithm [J]. Computer Engineering and Applications, 2012, 48(5): 71-74)

[51]王朝正.基于Hadoop的C4.5決策树及其在网络流量中的应用[D].重庆:重庆邮电大学,2016:10.(WANG C Z. C4.5 decision tree based on Hadoop and its application in network traffic [D]. Chongqing: Chongqing University of Posts and Telecommunications, 2016: 10.)

[52]程珊,钮焱,李军.基于网络资源的KNN网络流量分类模型的研究[J].湖北工业大学学报,2016,31(4):75-79,82.(CHENG S, NIU Y, LI J. A study on network traffic classification model of KNN based on network resources [J]. Journal of Hubei University of Technology, 2016, 31(4): 75-79, 82.)

[53]SU M Y. Using clustering to improve the KNN-based classifiers for online anomaly network traffic identification [J]. Journal of Network and Computer Applications, 2011, 34(2): 722-730.

[54]ZHANG J, XIANG Y, WANG Y, et al. Network traffic classification using correlation information [J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(1): 104-117.

[55]WU D, CHEN X, CHEN C, et al. On addressing the imbalance problem: a correlated KNN approach for network traffic classification [C]// Proceedings of the 2015 International Conference on Network and System Security, LNCS 8792. Cham: Springer, 2015: 138-151.

[56]MCGREGOR A, HALL M, LORIER P, et al. Flow clustering using machine learning techniques [C]// Proceedings of the 2004 International Workshop on Passive and Active Network Measurement, LNCS 3015. Berlin: Springer, 2004: 205-214.

[57]LIU S, HU J, HAO S, et al. Improved EM method for Internet traffic classification [C]// Proceedings of the 8th International Conference on Knowledge and Smart Technology. Piscataway: IEEE, 2016: 13-17.

[58]ZANDER S, NGUYEN T, ARMITAGE G. Automated traffic classification and application identification using machine learning [C]// Proceedings of the 2005 IEEE Conference on Local Computer Networks 30th Anniversary. Piscataway: IEEE, 2005: 250-257.

[59]LIU Y, LI W, LI Y. Network traffic classification using k-means clustering [C]// Proceedings of the 2nd International Multi-symposiums on Computer and Computational Sciences. Piscataway: IEEE, 2007: 360-365.

[60]彭大芹,项磊,李司坤,等.多协议下智能家居协议的分类方法[J].重庆邮电大学学报(自然科学版),2018,30(3):321-328.(PENG D Q, XIANG L, LI S K, et al. Classification of intelligent home protocol under multi-protocols [J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2018, 30(3): 321-328.)

[61]何震凯,阳爱民,刘永定,等.一种使用DBSCAN聚类的网络流量分类方法[J].计算机应用研究,2009,26(9):3461-3464.(HE Z K, YANG A M, LIU Y D, et al. Method of network traffic classification using DBSCAN clustering [J]. Application Research of Computers, 2009, 26(9): 3461-3464.)

[62]张凤荔,周洪川,张俊娇,等.基于改进凝聚层次聚类的协议分类算法[J].计算机工程与科学,2017,39(4):796-803.(ZHANG F L, ZHOU H C, ZHANG J J, et al. A protocol classification algorithm based on improved AGENS [J]. Computer Engineering and Science, 2017, 39(4): 796-803.)

[63]周文剛,陈雷霆,董仕.基于谱聚类的网络流量分类识别算法[J].电子测量与仪器学报,2013,27(12):1114-1119.(ZHOU W G, CHEN L T, DONG S. Network traffic classification algorithm based on spectral clustering [J]. Journal of Electronic Measurement and Instrument, 2013, 27(12): 1114-1119.)

[64]BERNAILLE L, TEIXEIRA R, SALAMATIAN K. Early application identification [C]// Proceedings of the 2006 ACM Conference on Emerging Network Experiment and Technology. New York: ACM, 2006: Article No. 6.

[65]赵英,韩春昊.马尔科夫模型在网络流量分类中的应用与研究[J].计算机工程,2018,44(5):291-295.(ZHAO Y, HAN C H. Application and research of Markov model in network traffic classification [J]. Computer Engineering, 2018, 44(5): 291-295.)

[66]ERMAN J, MAHANTI A, ARLITT M, et al. Semi-supervised network traffic classification [J]. ACM SIGMETRICS Performance Evaluation Review, 2007, 35(1): 369-370.

[67]ZHANG J, CHEN C, XIANG Y, et al. Semi-supervised and compound classification of network traffic [C]// Proceedings of the 32nd International Conference on Distributed Computing Systems Workshops. Piscataway: IEEE, 2012: 617-621.

[68]丁伟,徐杰,卓文辉.基于层次聚类的网络流识别算法研究[J].通信学报,2014,35(Z1):41-45.(DING W, XU J, ZHUO W H. Net traffic identifier based on hierarchical clustering [J]. Journal on Communications, 2014, 35(Z1): 41-45.)

[69]WANG Y, XUE H, LIU Y, et al. Statistical network protocol identification with unknown pattern extraction [J]. Annals of Telecommunications, 2019, 74(7/8): 473-482.

[70]CARELA-ESPANOL V, BUJLOW T, BARLET-ROS P. Is our ground-truth for traffic classification reliable? [C]// Proceedings of the 2014 International Conference on Passive and Active Network Measurement, LNCS 8362 . Cham: Springer, 2014: 98-108.

This work is partially supported by the National Key Research and Development Program of China (2017YFB0802900).

FENG Wenbo, born in 1994, M. S. candidate. His research interests include network protocol recognition, machine learning.

HONG Zheng, born in 1979, Ph. D., associate professor. His research interests include network security, protocol reverse engineering.

WU Lifa, born in 1968, Ph. D., professor. His research interests include network security, network management.

FU Menglin, born in 1995, M. S. candidate. Her research interests include vulnerability mining, blockchain security.

收稿日期:2019-06-06;修回日期:2019-08-07;录用日期:2019-08-08。基金项目:国家重点研发计划项目(2017YFB0802900)。

作者简介:冯文博(1994—),男,河南周口人,硕士研究生,主要研究方向:网络协议识别、机器学习; 洪征(1979—),男,江苏南京人,副教授,博士,主要研究方向:网络安全、协议逆向工程; 吴礼发(1968—),男,湖北黄石人,教授,博士,CCF会员,主要研究方向:网络安全、网络管理; 付梦琳(1995—),女,江苏南京人,硕士研究生,主要研究方向:漏洞挖掘、区块链安全。

文章编号:1001-9081(2019)12-3604-11 DOI:10.11772/j.issn.1001-9081.2019050949

猜你喜欢
网络流量网络管理
新时期企业网络管理的现状及对策研究
一种用于敏感图像快速加密的图像注入技术仿真
基于小波神经网络的网络流量预测研究
网络管理技术的应用分析
对软件定义网络环境下安全流平台的探究
移动运营商流量经营体系建设的相关思考
网络管理技术的发展及应用
试论推动新一代网络管理技术发展的动因
基于时间序列分析的网络流量预测模型研究