多阶段融合的加密流量分类方法与流程

文档序号:22334431发布日期:2020-09-25 18:07阅读:197来源:国知局
多阶段融合的加密流量分类方法与流程

本发明涉及计算机网络技术领域,尤其涉及一种多阶段融合的加密流量分类方法。



背景技术:

随着计算机网络技术的高速发展,互联网技术已经充分融入到人们的日常生活中,而随着人们生活水平的提高,其对生活多元化的需求也越来越广泛,因此各种多样化网络应用不断问世,网络应用流量也呈现持续增长趋势。然而人们在使用各种网络应用的同时,个人信息与隐私泄露问题也接踵而至,因此网络信息安全逐渐得到国家和公民的重视,所以网络加密技术得到空前发展与应用,网络加密流量在网络传输中的占比也越来越多。

网络流量识别不仅是网络行为分析、网络服务规划设计以及网络异常检测的前提,同时也是提升网络管理水平、改善网络服务质量以及维护网络安全的重要基石。网络流量作为网络空间的信息传输和交互的主要载体,流量数据中携带着重要的信息,因此如何从流量数据中获得网络流的类别有着极其重要意义,而随着加密流量份额的不断增加,传统的针对非加密流量识别的方法暴露出许多短板,因此越来越多的学者开始研究加密流量的分类识别方案。传统的网络流量分类方法可以分为以下五类:

基于端口号的方法:该方法是依据tcp/udp报文头部的端口号进行应用识别,即通过读取由iana(internetassignednumbersauthority)发布的servicenameandtransportprotocolportnumberregistry中端口号与具体应用的映射信息来对流量进行分类。这种分类方法的原理非常简单,只需要读取网络数据流中的第一个数据包即可成功识别,识别效率非常高而具体实现又极为简单。但是,随着网络技术的发展该方法却面临着诸多问题:有些应用的端口可能并没有进行注册;有些应用软件使用的是动态端口,其在数据传输过程中可能会发生变化;某些应用程序为躲避系统限制使用其他常用协议的端口进行数据传输,从而实现端口隐蔽。并且,由于流量加密后头部端口信息被隐藏,所以基于端口号的识别方法很难适用于加密流量的分类识别。

基于有效载荷的深度包检测(dpi,deeppacketinspection)方法:该方法是通过匹配数据分组的有效载荷的表达式来对流量进行识别。该方法可以有效避免上述动态端口等带来的问题,且当未加密的数据流与表达式库中的内容相匹配时,其识别准确率非常高。但该方法却面临着以下诸多问题:随着新型网络流量的出现,表达式库中的内容需要不断扩充,需要消耗大量存储空间,同时特征匹配的复杂度也会变大;对于加密的流量很难获取其有效载荷的表达式,那么就无法对其进行解析匹配;该方法将解析数据分组的负载,所以可能会侵犯到用户的隐私。

基于行为特征的方法:该方法主要是从主机节点的角度来分析各类应用的行为特征,即统计主机或者应用的行为,虽然这种方法其通用性很强,但是使用该方法需要监控网络中的主机节点,因此非常的耗费时间与空间资源;而且其能够进行流量识别的分类通常是粗粒度的,而实际情况中网络流量可能同时来自各个不同的应用,并且网络或者节点的运行状态也对行为特征会产生影响,所以其识别准确率也不能令人满意。

基于协议解析的方法:该方法是通过分析特定应用的通信协议来描绘特定应用的特定行为特性。即通过刻画其特定协议层的指纹信息来鉴别加密协议或匿名使用已知端口的应用,但该方法需要考虑数据流多个时间点的状态信息,而现有方案往往一次只考虑其前一个或两个状态信息,因此出现多个应用流的指纹信息重叠;目前该方法只考虑针对加密数据流的应用识别,未考虑数据传输阶段由于传输内容类型不同而导致的识别误差;该方法往往只考虑服务器到客户端的指纹信息特征,这也增大了识别误差。

基于机器学习(machinelearning)的方法:该方法是通过人工提取数据流的统计特征对流量进行识别。一般包括流持续时间、包的到达时间间隔、包大小等统计信息。而机器学习的方式就是将上述统计信息代替数据流作为模型构建的输入,经过一定的训练,使得该模型可以较好地对未知网络流量进行正确识别。而常见的机器学习算法,包括无监督学习,例如各种聚类算法;监督学习,例如支持向量机(svm,supportvectormachines)和决策树(dt,decisiontree)等;半监督学习。近几年来,随着人工智能技术的发展,部分深度学习方法也与网络流量分类工作进行了结合,例如,基于卷积神经网络(cnn)、递归神经网络(rnn)的网络流量识别方法等。虽然使用这些经典的算法能够对流量进行一定程度地识别,但是使用该方法需要大量具备标注的数据集,而随着应用协议的与日俱增,理想数据集获取较为困难;该方法训练时需要考虑数据的不平衡问题;该方法通常以数据包而不是tcp数据段为研究对象,对于识别流量的应用类型存在较大误差;该方法往往只考虑数据流的载荷数据从而判别数据流承载的传输内容类型,而对于加密数据流其加密后载荷内容往往呈现随机性,所以直接提取载荷内容作为数据流的特征进行流量识别存在较大的误差。

因此,虽然上述方法能够在一定程度上对流量实现分类和识别,但是由于端口的动态性以及隐匿性、流量的有效载荷表达式提取困难和匹配复杂度高、行为特征分析需要耗费大量时空资源、加密数据流载荷内容随机性大以及获取大量标注数据集难度大等问题的出现,使得加密流量识别方法还需进一步改进,并且目前的方案很少考虑结合协议语义和数据流统计信息的融合识别,以及很少将数据流的应用识别和传输内容类型识别综合考虑。



技术实现要素:

本发明的目的是提供一种多阶段融合的加密流量分类方法,采用多个阶段融合的方式对数据流的特征进行综合考虑,能提高实际环境下加密流量分类识别的准确率。

本发明的目的是通过以下技术方案实现的:

一种多阶段融合的加密流量分类方法,包括:

对加密数据流进行特征提取,获得tcp数据段的大小、方向、时间间隔、tls/ssl握手阶段的协议信息、以及数据传输阶段的非数据传输协议序列信息;

利用深度学习框架,从tls/ssl握手阶段的协议信息、以及数据传输阶段的非数据传输协议序列信息中,提取出加密数据流应用类型特征;

利用自动编码器,从tcp数据段的大小、方向、时间间隔、以及数据传输阶段的非数据传输协议序列信息中,提取出加密数据流内容类型特征;

融合应用类型特征与内容类型特征,并通过分类器识别出加密数据流的应用类型与内容类型。

由上述本发明提供的技术方案可以看出,能有效地解决传统的流量识别方法由于端口的动态性以及隐匿性、有效载荷表达式提取及匹配难度大、行为特征分析时空资源耗费大、协议分析识别时忽视具体传输内容类型等问题,同时也避免了典型机器学习算法下只基于数据包层面分析数据流、大量标注数据集获取困难以及只考虑数据流的某一种识别问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的一种多阶段融合的加密流量分类方法的流程图;

图2为本发明实施例提供的一种多阶段融合的加密流量分类方法的整体框架示意图;

图3为本发明实施例提供的数据流预处理示意图;

图4为本发明实施例提供的lstm示意图;

图5为本发明实施例提供的自动编码器处理模块示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

传统的流量识别方法由于端口的动态性以及隐匿性、有效载荷表达式提取及匹配难度大、行为特征分析时空资源耗费大、协议分析识别时忽视具体传输内容类型等导致加密流量的识别具有很大的局限性,而基于各类机器学习的方法,其往往只考虑数据流量的某一种识别,且通常基于数据包分析考虑网络流的载荷特征或统计特征,而加密后载荷内容往往呈现较大随机性且获取大量含有标注的数据集较为困难。为此,本发明实施例提供一种多阶段融合的加密流量分类方法,对加密数据流分阶段考虑,即握手阶段和数据传输阶段,根据不同阶段数据流特点提取相关特征,如:tls/ssl握手阶段的协议状态序列,数据传输阶段tcp数据段大小、方向、时间间隔,以及数据传输阶段的非数据传输协议序列信息,最后,再融合不同阶段提取出的特征并进行分类,如图1所示,其主要包括:

1、对加密数据流进行特征提取,获得tcp数据段的大小、方向、时间间隔、tls/ssl握手阶段的协议信息、以及数据传输阶段的非数据传输协议序列信息。

2、利用深度学习框架,从tls/ssl(安全传输层协议/安全套接层协议)握手阶段的协议信息、以及数据传输阶段的非数据传输协议序列信息中,提取出加密数据流应用类型特征。

3、利用自动编码器,从tcp数据段的大小、方向、时间间隔、以及数据传输阶段的非数据传输协议序列信息中,提取出加密数据流内容类型特征。

4、融合应用类型特征与内容类型特征,并通过分类器识别出加密数据流的应用类型与内容类型。

上述方案采用多个阶段融合的方法对数据流的特征进行综合考虑,能提高实际环境下加密流量分类识别的准确率。

如图2所示,为该方法的整体框架。主要分为三个阶段:第一阶段考虑握手阶段的协议状态序列信息及数据传输阶段的非数据传输协议序列信息,并考虑使用深度学习框架(例如,lstm)进行处理,提取应用类型具备的特征;第二阶段考虑数据传输阶段tcp数据段的大小、方向、时间间隔等信息以及该阶段非数据传输协议序列信息,并采用自动编码器进行处理,提取内容类型具备的特征;第三阶段融合上述两阶段处理后的特征信息,综合判别数据流的应用及其内容类型。

如图2所示,数据流特征提取模块解决第一、二阶段的特征序列信息提取问题;lstm模块对第一阶段中的特征信息进行处理,获取数据流的应用类型特征;自动编码器模块对第二阶段中特征信息进行处理,获取数据流的内容类型特征;特征融合模块解决第三阶段的特征融合,并将融合特征输入相关判别模块中得到数据流的综合识别结果,从而综合判别输入的加密数据流是属于何种应用的何种业务类型。

示例性的,对于一条数据流,比如视频网站的点播视频类型,使用lstm处理第一阶段特征,lstm处理后的输出作为应用类型特征;自动编码器处理第二阶段特征,其处理后的输出作为内容类型特征;对上述两特征进行融合,然后输入到softmax中直接获得其应用类型与内容类型:视频网站的点播视频。

下面针对各个部分做详细的介绍。

一、数据流特征提取。

本发明实施例中,首先,通过流量切分工具根据加密数据流的五元组信息,将加密数据流切割为各个独立的单元,所述五元组信息包括:源ip地址、源端口号、目的ip地址、目的端口号以及传输层协议;切割后以tcp数据段为单位进行特征提取。

如图3所示,针对加密数据流的分类识别,本发明既考虑数据流所承载的应用分类又考虑数据流本身传输内容类型的分类。且由于现实情况下许多应用程序往往存在多种业务类型,因此本发明对数据流的两项识别采用数据流不同阶段的特征。

在前述数据流切割操作中,一般有两种标准方式:一种为会话,另一种为流。本发明采用切割成会话的形式,因为其考虑了流的双向性信息,所以包含的信息更能代表原始数据流的特征。

本发明实施例中,以tcp数据段为考虑对象,相比以往基于ip层数据包的分析更能体现数据流所表征的特性,且因为不同的应用在传输tls/ssl加密数据时,其在tls/ssl握手阶段的协商序列信息由于程序开发者本身对其过程的不同规定,其握手阶段的协商序列信息表现出不同特性,且在数据传输阶段其协议类型的转换也存在不同的特征,因此本发明提取数据流的tls/ssl握手阶段的协议信息以及数据传输阶段的非数据传输协议序列信息作为数据流应用识别的特征;另外,考虑到数据加密后其传输内容会随机化,因此本发明不以加密后ip层数据包的载荷内容为考虑对象而是提取传输层tcp数据段的大小、方向、时间间隔以及数据流在数据传输阶段的非数据传输协议信息序列作为识别特征。

二、应用类型特征提取。

对于每条数据流本发明分析其多个tcp数据段的相关特性,而因为各tcp数据段之间存在一定的时间关系,本发明考虑使用lstm(长短记忆网络)进行相关处理,当然也可以采用其他相关的深度学习框架进行处理。

lstm工作流程如图4所示,与普通的rnn相比,之所以选择lstm是因为其在神经元内部加了如下关键性部件,从而可以消除梯度消失带来的影响。

(1)遗忘门:通常用来为记忆单元状态ct-1提供一个遗忘的参数值,即决定之前的哪些信息可以通过记忆单元,这里需要使用逻辑函数(例如sigmoid函数)计算上一时刻(即t-1时刻)的输出隐状态ht-1以及当前时刻(即t时刻)输入的数据信息xt来产生一个0~1之间的过滤值ft。

ft=σ(wf·[ht-1,xt])+bf

其中,xt为t时刻输入的tls/ssl握手阶段的协议信息以及数据传输阶段的非数据传输协议序列信息中任一类数据信息,两类数据信息处理方式相同,但是由于出现在数据流的时间点不同所以分开处理。

(2)输入门:其过程类似上述遗忘门操作,其用于过滤当前的输入。

it=σ(wi·[ht-1,xt])+bi

(3)输入节点:通常使用tanh函数计算上一时刻的输出ht-1及当前输入xt产生一个0~1之间的过滤值。其用于生成输入的候选值,即可能会添加到记忆单元的内容。

yt=tanh(wy·[ht-1,xt])+by

(4)记忆单元更新:将上述过程中产生的结果进行相应计算,以此更新原来的记忆单元状态。

ct=ft*ct-1+it*yt

(5)输出门:针对更新后的记忆单元,我们需要根据当前输入和前一时刻的输出对其产生一个新的过滤值,从而获得当前时刻的输出值ht。

ot=σ(wo·[ht-1,xt])+bo

ht=ot*tanh(ct)

上述操作中,带有下标的w与b表示相应的计算过程中所涉及的权重与偏置参数,第t-1、第t时刻计算出的隐状态ht-1、ht表示根据输入的数据信息xt-1、xt以及相应时刻记忆单元内容提取到的应用类型特征。

三、内容类型特征。

自动编码器(autoencoder)是一种对称的三层前馈神经网络,由输入层、隐含层和输出层三层神经元组成。与传统神经网络不同的是,自动编码器加入了编码和解码的概念。输入层和隐含层构成编码部分,隐含层和输出层构成解码部分。编码器用于将未标记的输入数据映射到隐含层得到有意义的特征表示;解码器是编码器的逆过程,将特征表达重构近似原始数据的数据作为输出。

自动编码器的目标是实现样本重构,首先通过编码器把高维空间中的向量压缩成低维向量,然后通过解码器把低维向量解压重构出高维向量,进而最小化重构误差。

如图5所示,本发明实施例中,采用自动编码器作为特征提取模块,用于从原始输入(数据流的tcp数据段特征构成的向量)中提取表达特征,解码器则利用表达特征重构出输入的数据信息。

将自动编码器输入的数据信息记为x=(x1,x2,…,xn),编码器与解码器的计算过程如下:

z(xi)=f(wi1·xi+bi1)

其中,z(xi)表示编码器从输入的数据信息xi中提取出表达特征,i=1,2,…,n,wi1表示编码器中输入层和隐含层之间的权重矩阵,bi1表示编码器中输入层的偏置矢量,f(·)表示编码器中的sigmoid激活函数;表示解码器重构出输入的数据信息,wi2表示解码器中输入层和隐含层之间的权重矩阵,bi2表示解码器中输入层的偏置矢量,g(·)表示解码器中的sigmoid激活函数;tcp数据段的大小、方向及时间间隔对应于同一时刻的内容作为一类数据,记为数据a,前述的集合x可以为数据a以及数据传输阶段的非数据传输协议序列信息中的任一类,这两类数据信息都按照上述方式做相关处理。

通过最小化重构误差训练自动编码器,损失函数为:

其中,表示误差损失函数,n为输入的数据信息的总数;θ={wi1,wi2,bi1,bi2}为自动编码器中的权重及偏置参数,θ={wi1,bi1}为编码器中的权重及偏置参数,θ1={wi2,bi2}为解码器中的权重及偏置参数。

四、特征融合与分类识别。

经上述lstm处理后,可以直接得到数据流所对应的应用类型,同时考虑提取lstm处理后的得到的应用类型特征,记为pk,另一方面经自动编码器处理后可获得数据流所承载的内容类型,同时将自动编码器处理后得到的特征记为pj,将两部分的特征进行一个融合操作得到综合特征,即p。然后将综合特征p输入到softmax分类器中进行最后的识别处理,获得加密数据流的应用类型与内容类型。

基于上述方案给出一个示例描述。

首先对数据集进行一个获取及预处理的工作,即采用交换机镜像技术旁路出部分加密网络流量形成pcap文件,然后采用tcpdump技术将pcap文件按五元组(即源ip地址、源端口号、目的ip地址、目的端口号、传输层协议)分成数据流的形式,并且预先采用dpi技术对网络流量进行类型标注,如可以标注其为youtube–video、wechat-chat、wechat-video等类型。然后对标注好的流量从传输层进行相关特征提取。

一方面提取数据流的tls/ssl握手阶段的协议信息,同时考虑在数据传输阶段非数据传输协议出现的序列信息,因为这些序列信息存在一定的时间特征,且考虑到马尔科夫模型以及普通rnn存在较大弊端,采用lstm对该部分特征进行处理,提取lstm处理后的输出向量为该数据流的应用类型特征;另一方面不再以ip层内容为考虑对象,而是直接从tcp层获取tcp数据段的大小、方向以及间隔时间,此外我们也将数据传输阶段非数据传输协议出现的序列信息作为特征之一,因为不同内容传输时往往存在大小、时间等特征差异,对于这部分特征我们使用自动编码器对其进行处理,提取自动编码器处理后的输出向量为该数据流的内容类型特征。当两个向量都获得后,直接将两向量进行一个整合,将其作为数据流的整合特征,最后再经过一个softmax分类器给出最后的分类识别结果。

本发明实施例提供的上述方案,能有效地解决传统的流量识别方法由于端口的动态性以及隐匿性、有效载荷表达式提取及匹配难度大、行为特征分析时空资源耗费大、协议分析识别时忽视具体传输内容类型等问题,同时也避免了典型机器学习算法下只基于数据包层面分析数据流、大量标注数据集获取困难以及只考虑数据流的某一种识别问题。本发明从实际网络环境出发,既考虑数据流的粗粒度识别又综合考虑其特征从而识别该数据流属于何种应用的何种业务类型的精细化识别,这比以往的只研究应用类型或只研究业务类型的识别更全面、准确率更高;本发明以tcp数据段为单位考虑数据流内容类型的特性,即考虑加密协议层的握手协商信息以及数据传输阶段的非数据传输协议信息序列,这比以往基于ip层数据包的分析更能体现数据流所表征的特性,从而提高数据流传输内容类型识别的准确率;考虑到数据加密后其传输内容会随机化,所以不以加密后载荷内容为考虑对象而以tcp数据段的大小、方向、时间间隔以及数据流的数据传输阶段的非数据传输协议信息序列为特征,从而准确地识别数据流的业务类型;从时间角度考虑数据流的各方面特性信息,以往的马尔科夫模型会将先前数据流的特征信息丢失,从而导致识别误差大,而本发明采用lstm处理,既可以对先前的数据流特征信息进行一个过滤提取又可以避免普通rnn带来的梯度消失或梯度爆炸问题;通过自动编码器对数据流特征进行降维及特征提取,实现更为准确的加密流量识别效果。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1