基于深度学习的加密流量分类方法及相关设备

文档序号:26050950发布日期:2021-07-27 15:26阅读:65来源:国知局
基于深度学习的加密流量分类方法及相关设备

本公开涉及网络流量分类技术领域,尤其涉及一种基于深度学习的加密流量分类方法及相关设备。



背景技术:

现有的网络流量分类技术可以分为四类:基于端口分类的技术,基于深度包检测(dpi)的技术,基于统计的技术,基于行为的技术。但随着互联网流量的急剧变化,特别是加密技术的广泛应用,基于端口分类的和基于深度包检测的技术分类准确率急剧下降。为了能够对加密后的流量进行分类,一般采用不直接解析加密算法的思路,从流量或应用的统计行为特征出发,提出了三种针对加密流量的分类技术:基于通信模式的、基于机器学习的、基于深度学习的。其中,基于通信模式的加密流量分类技术往往需要构建网络通信连通图,存在计算复杂度和空间复杂度较高的问题;基于机器学习的加密流量分类技术严重依赖于人工特征的设计选取,存在泛化能力差、实际应用困难的问题;基于深度学习的加密流量分类技术通常是将加密流量数据直接转换成灰度图或者是分析数据包之间的关联特征从单一维度来表示网络流量,存在模型欠拟合、分类准确率低的问题。



技术实现要素:

有鉴于此,本公开的目的在于提出一种基于深度学习的加密流量分类方法及相关设备。

基于上述目的,本公开提供了一种于深度学习的加密流量分类方法,包括:

基于加密流量数据获取网络流数据集;

通过所述网络流数据集获取三维特征集,所述三维特征集包括时序特征、空间特征以及统计特征;

将所述三维特征集的数据填充到n*n*3的第一矩阵中,通过映射获得图像格式的三维矩阵特征集,其中,n表示第一矩阵的尺寸;

根据所述三维矩阵特征集以及预先训练的加密流量分类模型,得到所述加密流量数据的分类结果。

基于同一发明构思,本公开还提供了一种基于深度学习的加密流量分类装置,包括:第一获取模块:被配置为基于加密流量数据获取网络流数据集;

第二获取模块:被配置为通过所述网络流数据集获取三维特征集,所述三维特征集包括时序特征、空间特征以及统计特征;

特征转换模块:被配置为将所述三维特征集的数据填充到n*n*3的第一矩阵中,通过映射获得图像格式的三维矩阵特征集,其中,n表示第一矩阵的尺寸;

加密流量分类模块:被配置为根据所述三维矩阵特征集以及预先训练的加密流量分类模型,得到所述加密流量数据的分类结果。

基于同一发明构思,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。

基于同一发明构思,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任一所述方法。

从上面所述可以看出,本公开提供的基于深度学习的加密流量分类方法及相关设备,通过构建三维矩阵特征集作为预先训练的加密流量分类模型的输入,三维矩阵特征集能够体现加密流量数据的多维特性,使加密流量分类模型具有较高的拟合度和较强的泛化能力,进而提升加密流量数据分类的准确率;此外,通过加密流量分类模型对加密流量数据的分类特征进行学习,节省了大量人工工作量的同时降低了任务的复杂度。

附图说明

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

图1为本公开实施例的基于深度学习的加密流量分类方法流程图;

图2为本公开实施例的加密流量数据可视化后的三维图像示意图;

图3为本公开实施例的基于深度学习的加密流量分类装置结构示意图;

图4为本公开实施例的电子设备结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。

如背景技术所述,现有的加密流量分类方法还难以满足需要,申请人在实现本公开的过程中发现,相关技术中对加密流量的分类技术主要有以下三种:基于通信模式的、基于机器学习的、基于深度学习的。而基于通信模式的加密流量技术存在计算复杂度和空间复杂度高的问题;基于机器学习的加密流量分类技术存在泛化能力差、实际应用困难的问题;基于深度学习的加密流量分类技术存在模型欠拟合、分类准确率低的问题。

有鉴于此,本公开提出了一种基于深度学习的加密流量分类方法,在深度学习的基础上,利用加密流量数据的空间特征、时间特征以及统计特征进行构造三维矩阵特征集,能够全面的保留原始加密流量数据信息,同时将加密流量数据图像化进行多维度协同训练,通过卷积神经网络模型学习并提取待分类加密流量数据的三维特征,进而得到待分类的加密流量数据的分类结果。

以下,通过具体的实施例来详细说明本公开的技术方案。

参考图1,本公开的基于深度学习的加密流量分类方法,包括以下步骤:

步骤s101,基于加密流量数据获取网络流数据集。

在本步骤中,所述加密流量数据可通过以下方式获取:

在交换机配置中设置镜像端口,并将所述镜像端口作为监听端口。

对于多个不同的应用程序(app1,app2,……appn)中的每个所述应用程序执行以下操作:

响应于确定所述应用程序运行时通过所述监听端口采集的数据包数量达到预设的阈值a,停止对所述应用程序进行抓包,其中所述数据包的文件格式为pcap,并由pcap文件头、数据包头、数据包数据。

通过所述数据包中数据包头的caplen字段截取所述数据包数据部分并保存为以相应的所述应用程序命名的数据文件(app1.txt,app2.txt,……appn.txt),以得到所述加密流量数据。

进一步地,将采集的加密流量数据通过流量切割、数据清洗、维度转换、流量标注的预处理操作,进行获取去除无关信息后的所述网络流数据集,具体为:

基于五元组(5-tuple)的定义,对所述加密流量数据进行整流,并获取属于同一条数据流的前k个所述数据包,并根据预设数据包长度对同一条数据流中所述数据包的长度进行统一,对大于所述预设数据包长度的所述数据包进行截取,小于所述预设数据包长度的所述数据包进行补零。

将每条所述数据流中与所述数据包的无关数据剔除,其中,无关数据可包括mac地址、ip地址、协议字段、tcp三次握手等。

将每条所述数据流中所述数据包的二进制字符串转换成十进制数字。

基于所述数据文件(app1.txt,app2.txt,……appn.txt)对每条所述数据流进行标注,以获得所述网络流数据集。

步骤s102,通过所述网络流数据集获取三维特征集,所述三维特征集包括时序特征、空间特征以及统计特征。

在本步骤中,获取所述三维特征集具体包括:

对于所述网络流数据集中每条所述数据流(flow_feature)执行以下操作:

根据所述数据流的数据包结构分别确定每个数据包中有效载荷的字节数(pcklen)和传输控制协议(tcp)窗口大小(tcplen)。

根据所述数据流的第一个数据包的时间戳(prev1)和每个剩余的目标数据包的时间戳(prevn),确定数据包间隔时间(intime)。

响应于确定所述目标数据包的源端口(dst_port)与所述第一个数据包的源端口(src_port)为同一端口,获取数据包方向(dirct),其中,0表示从源地址到目的地址,1表示从目的地址到源地址。

将所述有效载荷的字节数(pcklen)、tcp窗口大小(tcplen)、数据包间隔时间(intime)以及数据包方向(dirct)填充至预设的i*j大小的第二矩阵(temp_feature)。

获取所述数据流中每个数据包的字节分布率,并选取所述字节分布率最高的预设个数的字节作为所述数据包的统计特征填充至预设的k*l大小的第三矩阵(stats_feature)。

将每条所述数据流(flow_feature)及其所述第二矩阵(temp_feature)分别作为空间特征和时序特征,并结合所述第三矩阵(stats_feature)得到所述三维特征集。

步骤s103,将所述三维特征集的数据填充到n*n*3的第一矩阵中,通过映射获得图像格式的三维矩阵特征集,其中,n表示第一矩阵的尺寸。

在本步骤中,具体通过以下方式获取三维矩阵特征集。

对于所述三维特征集中每个三维特征执行以下操作:

将所述三维特征按照时间维度、空间维度、统计维度填充至n*n*3的所述第三矩阵中,并根据每个维度对应位置的字节得到一像素点。

参考图2,基于全部所述像素点,将每个所述三维特征映射为三维图像。

根据所述三维图像得到所述三维矩阵特征集。

步骤s104,根据所述三维矩阵特征集以及预先训练的加密流量分类模型,得到所述加密流量数据的分类结果。

在本步骤中,在通过预先训练的加密流量分类模型对待分类的加密流量数据进行分类时,首先要获取待分类的加密流量数据的所述时序特征、空间特征和统计特征,并输入至所述加密流量分类模型中,以输出每个应用类型的分类概率(p1,p2,p3,…,pn);

根据所述分类概率的大小,得到待分类的加密流量数据的分类结果。

在一些实施例中,所述预先训练的加密流量分类模型是基于lenet-5模型构建的,用于加密流量分类的卷积神经网络模型,其中,所述加密流量分类模型包括两层卷积层、两层池化层以及三层全连接层。

所述加密流量分类模型的训练过程包括:

基于所述三维矩阵特征集构建训练集;可将所述三维矩阵特征集的70%作为训练集。

将所述训练集输入所述卷积神经网络模型中,对加密流量数据进行分类,以得到所述加密流量分类模型。

具体的,卷积层使用f*f大小的卷积核ω对n*n大小的输入特征按照ci=σr(w·xi+bi)执行滑动卷积,其中,w表示权重,xi表示第i层卷积层的输入,bi表示第i层卷积层的偏置项,ci表示第i层卷积层输出的新特征,σr表示激活函数relu;输出大小为c=(n-f+1)*(n-f+1)的特征图。

进一步,经过池化层后获得大小为[(n-f+1)*(n-f+1)]/2的特征图,并将特征图展开。

进而,前两层全连接层的神经元与输入的一维特征向量进行乘积操作,基于relu函数输出特征向量;最后一层全连接层的神经元与输入的一维特征向量进行乘积操作,根据softmax激活函数输出每个应用类型的分类概率,其中,最后一层全连接层的神经元数目为应用类型数量。

基于所述三维矩阵特征集构建验证集,并基于所述验证集验证所述加密流量分类模型的分类结果的准确率以及模型性能,进而对所述加密流量分类模型的结构和参数进行修正,以及设置不同的损失函数和优化器,以提高所述加密流量分类模型分类结果的准确率和模型性能,其中,可将所述三维矩阵特征集的10%作为验证集。

基于所述三维矩阵特征集构建测试集,并根据所述测试集对所述加密流量分类模型的拟合程度进行判断,其中,可将所述三维矩阵特征集的20%作为验证集。

需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种基于深度学习的加密流量分类装置。

参考图3,所述基于深度学习的加密流量分类装置,包括:

第一获取模块301:被配置为基于加密流量数据获取网络流数据集;

第二获取模块302:被配置为通过所述网络流数据集获取三维特征集,所述三维特征集包括时序特征、空间特征以及统计特征;

特征转换模块303:被配置为将所述三维特征集的数据填充到n*n*3的第一矩阵中,通过映射获得图像格式的三维矩阵特征集,其中,n表示第一矩阵的尺寸;

加密流量分类模块304:被配置为根据所述三维矩阵特征集以及预先训练的加密流量分类模型,得到所述加密流量数据的分类结果。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述任一实施例中相应的基于深度学习的加密流量分类方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的基于深度学习的加密流量分类方法。

图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的基于深度学习的加密流量分类方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的基于深度学习的加密流量分类方法。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的基于深度学习的加密流量分类方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。

本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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