CN114401229B - 一种基于Transformer深度学习模型的加密流量识别方法 - Google Patents
一种基于Transformer深度学习模型的加密流量识别方法 Download PDFInfo
- Publication number
- CN114401229B CN114401229B CN202111659063.4A CN202111659063A CN114401229B CN 114401229 B CN114401229 B CN 114401229B CN 202111659063 A CN202111659063 A CN 202111659063A CN 114401229 B CN114401229 B CN 114401229B
- Authority
- CN
- China
- Prior art keywords
- features
- stream
- feature
- bytes
- packets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000013136 deep learning model Methods 0.000 title claims abstract description 15
- 238000013528 artificial neural network Methods 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 34
- 239000011159 matrix material Substances 0.000 claims description 23
- 238000010606 normalization Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 13
- 210000004205 output neuron Anatomy 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000009466 transformation Effects 0.000 claims description 10
- 230000004913 activation Effects 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 5
- 238000000844 transformation Methods 0.000 claims description 5
- 230000001502 supplementing effect Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 2
- 238000007781 pre-processing Methods 0.000 claims description 2
- 230000003213 activating effect Effects 0.000 claims 1
- 230000017105 transposition Effects 0.000 claims 1
- 238000012549 training Methods 0.000 abstract description 17
- 238000013135 deep learning Methods 0.000 abstract description 8
- 239000000284 extract Substances 0.000 abstract description 8
- 238000013527 convolutional neural network Methods 0.000 abstract description 6
- 238000012545 processing Methods 0.000 abstract description 4
- 125000004122 cyclic group Chemical group 0.000 abstract description 3
- 238000010801 machine learning Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于Transformer深度学习模型的加密流量识别方法,属于计算机网络安全技术领域。针对现有的基于深度学习的加密流量识别方法存在识别率低、训练周期长等问题,本方法利用改进的intra‑Transformer模型首先提取出数据包内各字节的全局特征和局部特征,然后利用inter‑Transformer模型提取流中数据包间字节的全局特征和统计信息的全局特征。相较于卷积神经网络,考虑了输入的全局特征,使模型性能有较大的提升;相较于循环神经网络,能够并行化处理,加速收敛,减少训练时间。本方法仅利用流中部分相邻数据包便可对流进行分类,无需利用流中的大部分包,即可实现快速识别流量类型。本方法在实时性与精度之间实现了更好的平衡。
Description
技术领域
本发明涉及一种基于Transformer深度学习模型的加密流量识别方法,属于计算机网络安全技术领域。
技术背景
加密流量识别,是指将加密后的网络流量按照一定的识别目标,划分为不同的集合。随着网络时代的发展,加密网络流量呈现爆炸式增长。虽然加密可以起到保护隐私的作用,但是,经过加密的流量也可能是攻击者隐藏破坏性活动的手段。因此,准确的加密流量识别,对维护网络空间安全具有重要意义。
流量识别技术的发展可以分为以下四类:基于端口号、基于深度包检测、基于机器学习和基于深度学习。
基于端口号的方法,假设大多数应用程序使用默认的端口号来推断应用程序的类型。然而,现在的许多应用程序使用动态端口。另外,一些恶意软件使用端口伪装、端口随机等技术来隐藏流量,所以该方法很快失效。
基于深度包检测的方法,准确率极高且简单有效,但需要匹配数据包内容,无法处理加密流量。
为了解决上述的问题,进一步出现了基于机器学习的方法,通常依赖于统计特征或时间序列特征,然后使用传统的机器学习算法,如支持向量机、决策树、随机森林等算法进行建模与识别。然而,此方法仍存在两个问题:(1)数据流量的特征需要人工提取,而且这往往依赖于专家经验,十分耗时耗力;(2)传统机器学习方法有很大的局限性,例如对复杂函数难以表示、容易陷入局部最优解等。
与大多数传统机器学习方法不同,在没有人工干预的情况下,基于深度学习的方法可以实现特征的自动提取,并在此基础上直接进行流量识别,是一种端到端的流量识别模型。基于深度学习方法的研究重点,主要集中在使用哪种深度学习模型,以及如何构造符合输入要求的数据。
目前,常用的深度学习模型有卷积神经网络、循环神经网络、自编码器等。在使用卷积神经网络时,输入通常是一维向量或二维图片,再利用一维卷积或二维卷积提取特征。在使用循环神经网络时,输入通常是序列化的数据,如流中多个数据包的统计特征或网络流量字节经过词嵌入技术后产生的向量。
还有一些方法,混合使用了多种深度学习模型,多个模型的组合方式大致分为两种:(1)多个模型分别从不同的角度提取特征后,将多个特征进行融合;(2)多个模型顺序提取特征,即一个模型的输入是另一个模型的输出。
基于深度学习的方法主要使用三种形式的输入特征:(1)时间序列特征,如每个数据包的长度和到达时间间隔等;(2)整条流的统计特征,如数据包平均长度和每秒发送的平均字节等;(3)数据包字节,如报头字节和有效负载字节等。
虽然现有的深度学习方法已经在加密流量识别领域取得了一定效果,但仍然存在一些不足和缺陷:(1)大部分模型采用的输入形式较为单一;(2)卷积神经网络无法考虑输入之间的相互关系,循环神经网络采用递归的方式,训练时间较长。
发明内容
本发明的目的是为了解决现有的基于深度学习的加密流量识别方法存在识别率低、训练周期长等技术问题,创造性地提出一种基于Transformer深度学习模型的加密流量识别方法。
本发明的创新点在于:首次使用Transformer模型进行网络加密流量识别,并给出了具体实现方法。该模型是一个依赖于自注意力机制对输入的全局依赖关系进行特征提取的模型,能够充分考虑输入之间的相互关系,能够并行化操作,大大提高了训练速度和预测准确度。
本发明采用以下技术方案实现。
一种基于Transformer深度学习模型的加密流量识别方法,包括以下步骤:
步骤1:对现有数据集进行预处理。
具体地,步骤1包括以下步骤:
步骤1.1:使用SplitCap工具,将pcap文件(一种常用的数据报存储格式,文件中的数据按照特定格式存储)按照五元组信息,以流为单位进行划分。其中,五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和传输层协议。
步骤1.2:取流中所有数据包网络层部分,并对数据包头进行匿名化处理。将源IP地址和目的IP地址全部设置0.0.0.0,将源端口号和目的端口号全部设置为0。然后,取匿名化后的网络层数据包的前N个字节,如不够则用0补充,以达到神经网络输入数据尺寸固定要求为准。
步骤1.3:取流中的任意M个相邻的数据包,组成子流。从而实现利用流的少数数据包就可以进行流量识别的目的,体现了流量识别的实时性。
步骤2:用改进的intra-Transformer模型提取数据包内的特征,包括数据包内各字节的全局特征和局部特征。
具体地,步骤2包括以下步骤:
步骤2.1:对处理后的数据包的N个字节进行词嵌入,将字节特征映射到d维向量空间,获得数据包的词嵌入特征F1,F1∈RN×d,其中R表示矩阵中的实数。
步骤2.2:由于Transformer模型对位置信息是一无所知的。因此,需要使用额外的位置表示来对字节的顺序进行建模。
将输入序列中的各字节的位置信息pos,通过式1和式2编码为一个d维的位置特征F2,F2∈RN×d,具体如下:
F2(pos,2i)=sin(pos/100002i/d) (1)
F2(pos,2i+1)=cos(pos/100002i/d) (2)
其中,2i表示偶数,2i+1表示奇数。
步骤2.3:将词嵌入特征和位置编码特征进行合并,获得Transformer模型的输入特征F3,F3∈RN×d,其计算方式如式3所示:
F3=F1+F2 (3)
步骤2.4:采用多头自注意力方式,从不同角度获得数据包字节的全局依赖关系。具体如下:
首先,对F3进行三次线性变换,分别获得查询向量Q、键向量K和值向量V,其中,Q∈RN×d、K∈RN×d、V∈RN×d,N表示字节数。三次线性变换分别为:
Q=F3WQ (4)
K=F3WK (5)
V=F3WV (6)
其中,W为一个d×d大小的矩阵。F3乘W表示做了一次线性变换。
然后,计算各字节之间的关联矩阵score,score∈RN×N。该矩阵决定了在某个位置的字节,对数据包其他位置字节的关注程度,如式7所示:
其中,为缩放因子,用于缓解由于softmax激活函数引入的梯度消失问题;T为矩阵转置。
之后,将关联矩阵与值向量V做矩阵乘法操作,得到一个角度的全局依赖关系,即,多头自注意力机制中的一个头head1,head1∈RN×d,计算公式如下:
为了从多个角度充分提取数据包内各字节的全局依赖关系,重复公式(4)至(8)的操作,获得h个不同的头,即head1,head2,…,headh。为更好的融合多角度的信息,对h个头进行拼接操作。
最后,为了保证输入输出维度的一致性,对拼接后的特征进行线性变换,得到特征F4∈RN×d,计算公式如下:
F4=concat(head1,head2,…,headh)W (9)
其中,concat表示矩阵拼接操作。F4即为从多个角度提取到的一个数据包内字节的全局依赖关系。
步骤2.5:为了解决深度学习模型中出现的梯度消失问题,对F3和F4采用残差连接。同时,利用层归一化操作,使训练能够使用更大的学习率,加快训练速度,还可以起到抗过拟合作用。
具体地,通过残差和层归一化,得到特征F5,F5∈RN×d,计算公式为:
F5=LayerNorm(F3+F4) (10)
其中,LayerNorm表示层归一化。
步骤2.6:由于原始的Transformer模型只能提取数据包字节的全局依赖关系,为了获得数据包字节的局部特征,对步骤2.5中的特征F5,利用两个不同尺度的一维卷积,同时为保证特征维度的一致,两种一维卷积核的数量均为d个,最终分别得到网络获取的浅层局部特征F6和深层局部特征F7,F6∈RN×d,F7∈RN×d。
然后,利用Relu激活函数对其进行激活,计算公式为:
F6=Relu(1dconv(F5)) (11)
F7=Relu(1dconv(F6)) (12)
其中,1dconv表示一维卷积。
步骤2.7:将F7与F5进行残差连接后,进行层归一化操作,获得特征F8,F8∈RN×d:
F8=LayerNorm(F5+F7) (13)
步骤2.8:为了更好地提取数据包内的特征,将步骤2.4至步骤2.7重复K1次,利用更深的网络,提取更深层次的特征F9,F9∈RN×d:
其中,代表第K1次重复执行步骤2.4至步骤2.7。
步骤2.9:将基于改进的intra-Transformer提取的数据包内的特征F9输入给一个全连接层,全连接层的输出神经元个数等于向量空间维度d,得到特征F10,F10∈R1×d,如式15所示:
F10=FC(flatten(F9)) (15)
其中,flatten代表将二维特征平铺成一个一维向量。FC代表全连接。
步骤3:用inter-Transformer模型提取数据包间的特征。包括数据包间字节的全局特征和数据包间统计信息的全局特征。
具体地,步骤3包括以下步骤:
步骤3.1:对于有M个数据包的子流,首先通过步骤2中的改进的intra-Transformer模型提取M个数据包的包内特征,即,对于所有的包执行步骤2.1至步骤2.9操作,最终得到M个特征:
将这M个特征进行拼接,得到inter-Transformer的输入特征F11,
步骤3.2:为充分利用流量数据的特征,除利用包的字节特征外,还要利用包的统计特征,即流中M个连续数据包的长度。
将包的长度信息通过词嵌入方式,映射到d维向量空间,获得包长度的长度嵌入特征F12,F12∈RM×d。
步骤3.3:对于包间的相对位置信息,同样使用同步骤2.2中的位置编码,最终得到位置编码特征F13,F13∈RM×2d。
步骤3.4:将特征F11、F12和F13进行融合,得到特征F14,F14∈RM×2d:
F14=concat(F11,F12)+F13 (18)
步骤3.5:利用多头自注意力机制(如步骤2.4所述方法),在流量层面从不同角度获得流中各个数据包间的全局依赖关系,最终得到特征F15,F15∈RM×2d。
步骤3.6:对F14和F15进行残差和层归一化操作(如步骤2.5所述方法),最终得到特征F16,F16∈RM×2d。
步骤3.7:将特征F16输入给两层全连接层,并用非线性激活函数激活。
第一个全连接层的输出神经元个数为4d,输出特征F17,F17∈RM×4d。
第二个全连接层的输出神经元个数为2d,输出特征为F18,F18∈RM×2d。
F17=Relu(FC(F16)) (19)
F18=FC(F17) (20)
其中,FC表示全连接。
步骤3.8:对F17和F18进行残差和层归一化操作(如步骤2.5所述方法),最终得到特征F19,F19∈RM×2d。
步骤3.9:为了更好的提取流中数据包间的特征,将步骤3.5至步骤3.8重复执行K2次,提取出更深层次的特征F20,F20∈RM×2d:
其中,代表重复执行K2次步骤3.5至步骤3.8操作。
步骤4:利用步骤2提取的数据包内的特征和步骤3提取的流中数据包间的特征,进行流量识别任务。
具体地,方法如下:
将步骤3的输出特征F20输入给两个全连接层,两个全连接层的输出神经元个数分别为d(等于向量空间维度d)和分类任务的类别数c,得到特征F21和最终的分类结果Res,F21∈R1×d、Res∈R1×c。
F21=FC(flatten(F20)) (22)
Res=FC(F21) (23)
其中,flatten代表将二维特征平铺成一个一维向量。
有益效果
本发明方法,对比现有技术,具有以下优点:
1.本方法利用改进的intra-Transformer模型,提取出数据包内各字节的全局特征和局部特征,利用inter-Transformer模型提取流中数据包间字节的全局特征和统计信息的全局特征。相较于卷积神经网络,考虑了输入的全局特征,使模型性能有较大的提升;相较于循环神经网络,能够并行化处理,加速收敛,减少训练时间。
2.本方法仅利用流中部分相邻数据包便可对流进行分类,无需利用流中的大部分包,即可实现快速识别流量类型的目标。
3.本方法在满足实时性的前提下,性能领先于现有的加密流量识别方法,在实时性与精度之间实现了更好的平衡。
附图说明
图1为本发明的流程图。
图2为数据预处理流程图。
图3为本发明中改进的intra-Transformer模块的结构。
图4为本发明中inter-Transformer模块的结构。
图5为本发明中特征提取和分类的整体模型结构。
具体实施方式
下面结合附图和实施例,对本发明方法做进一步详细说明。
实施例
如图1所示,一种基于Transformer深度学习模型的加密流量识别方法,包括以下步骤:
步骤1:对现有数据集进行预处理。具体的数据集处理流程如图2所示。
在本实施例中,首先使用SplitCap工具将数据集中原始pcap文件按照五元组信息(源IP地址,目的IP地址,源端口号,目的端口号,传输层协议)以流为单位进行划分,划分后的流量数据以pcap格式存储。
然后,利用Python的dkpt库中来提取流中所有数据包网络层部分,并对数据包头进行匿名化处理,具体地是将源IP地址和目的IP地址全部设置0.0.0.0,将源端口号和目的端口号全部设置为0。然后取匿名化后的网络层数据包的前50个字节,不够则用0补充,以达到神经网络输入数据尺寸固定的要求。最终将一个包的前50个字节保存在一个列表中。
最后,取流中的任意3个相邻的数据包组成子流,以实现利用流的少数数据包就可以进行流量识别的目的,体现了流量识别的实时性。最终处理后的数据集以列表的形式储存,其中每一个元素对应一个子流,每一个子流又是由三个相邻的数据包列表组成。最终数据集被保存在一个pkl文件中。
步骤2:用改进的intra-Transformer模型提取数据包内的特征,包括数据包内各字节的全局特征及局部特征,图3是改进的intra-Transformer的结构,主要是利用了Transformer的编码器部分,并对原始的Transformer编码器结构进行了改进,利用两个一维卷积来替换两个全连接层:
(1)对处理后的数据包的前50个字节进行词嵌入,将字节特征映射到256维的向量空间,获得数据包的词嵌入向量F1∈R50×256。
(2)由于Transformer模型对位置信息是一无所知的。因此,需要额外的位置表示来对字节的顺序进行建模,所以需要将输入序列中的各字节的位置信息编码为一个256维的位置向量F2∈R50×256。位置编码使用了三角函数,其中对于偶数位置,使用正弦编码,对于奇数位置,使用余弦编码。
(3)然后将词嵌入向量和位置编码向量进行合并,直接使用矩阵加法操作,获得intra-Transformer模型的输入F3∈R50×256。
(4)采用多头自注意力方式,从不同角度获得数据包字节的全局依赖关系。对于其中一个头,通过对特征F3进行三次线性变换获得查询向量Q∈R50×256、键向量K∈R50×256、值向量V∈R50×256。然后计算各字节之间的关联矩阵score∈R50×50,该矩阵表示一个包中50个字节之间的关注程度。然后将关联矩阵与值向量V做矩阵乘法操作,就可以得到多头自注意力机制中的一个头。为了充分提取数据包内各字节的全局依赖关系,重复上述操作获取4个头,并将4种全局依赖关系进行拼接,更好的融合多角度的信息,最后为了保证输入输出维度的一致性,对拼接后的特征进行线性变换得到特征F4∈R50×256,该特征即是从多个角度提取到的一个数据包内字节的全局依赖关系。
(5)为了解决深度学习模型中出现的梯度消失问题,对特征F4采用了残差连接。同时还利用了层归一化操作,使训练可以使用更大的学习率,加快训练速度,还可以起到抗过拟合作用。通过残差和层归一化得到F5∈R50×256。
(6)原始的Transformer模型只能提取数据包字节的全局依赖关系,为了获得数据包字节的局部特征,利用3×256和5×256两个不同尺度的一维卷积,同时为了保证特征维度的一致,两种一维卷积核的数量均为256个,最终分别得到特征F6∈R50×256和F7∈R50×256。F6表示网络获取的浅层局部特征,F7表示网络获取的深层局部特征,然后利用Relu激活函数进行激活。
(7)对于一维卷积的输出特征,同样使用了残差结构和层归一化操作,获得特征F8∈R50×256:
(8):将(4)至(7)的步骤重复进行2次,构建更深的网络结构,从而更好地提取数据包内的特征。
(9):将经过(8)提取的数据包内的特征输入给一个全连接层,全连接层的输出神经元个数为256,F10∈R1×256。
步骤3:用inter-Transformer模型提取数据包间的特征,包括数据包间字节的全局特征及数据包间统计信息的全局特征,图4是inter-Transformer模型的结构,就是利用原始的Transformer模型的编码器,具体流程如下:
(1)对于有3个数据包的子流,首先通过步骤2中的改进的intra-Transformer模型提取3个数据包的包内特征,即对于所有的包进行步骤2,最终得到3个特征,将这3个特征拼接起来,得到inter-Transformer的输入特征F11∈R3×256:
(2)为了充分利用流量数据的特征,除了利用包的字节特征外,还利用了包的统计特征,即流中3个连续数据包的长度。现有的方法中还会利用包的方向信息,但因为本发明使用的是单向流,所以只用了包的长度信息,将包的长度信息利用词嵌入技术映射到256维向量空间,获得包长度的长度嵌入向量F12∈R3×256。
(3)给inter-Transformer模型提供数据包间的相对位置信息,对包的位置信息进行位置编码,最终得到位置编码向量F13∈R3×512。
(4)将上述3步的向量进行融合,对特征F11和特征F12进行矩阵拼接后,与特征F13进行矩阵加法操作,得到特征F14∈R3×512:
F14=concat(F11,F12)+F13 (18)
(5)利用多头自注意力机制,在流量层面从8个不同的角度获得流中各个数据包间的全局依赖关系,最终得到特征F15∈R3×512。
(6)对于特征F15利用残差和层归一化操作,可以解决梯度消失问题,还能提高训练速度并防止过拟合,最终得到特征F16∈R3×512。
(7)将特征F16输入给两层全连接层并用非线性激活函数激活,第一个全连接层的输出神经元个数为1024,输出特征为F17∈R3×1024。第二个全连接层的输出神经元个数为512,输出特征为F18∈R3×512。
(8)对于全连接层的输出同样利用残差和层归一化操作,最终得到特征F19∈R3 ×512。
(9)将步骤(5)~(9)的操作,视同为一个编码器块,为了更好的提取流中数据包间的特征,将编码器块重复2次,提取更深层次的特征F20∈R3×512。
步骤4:利用步骤2提取的数据包内的特征和步骤3提取的流中数据包间的特征进行流量识别任务,在本实施例中将流量分为6类。整体流程见图5。
把步骤3的输出特征F20输入给两个全连接层,两个全连接层的输出神经元个数分别为256和分类任务的类别数6,得到的特征和最终的分类结果分别为F22∈R1×256和Res∈R1 ×6。对于Res,取其数值最大的列即为最终的分类结果。
实例验证
使用的数据集为ISCX VPN-nonVPN与ISCX TOR-nonTOR数据集。这两个数据集都包含6种非加密流量和6种加密后的流量,在本发明中分别对6种非加密流量,6种VPN加密流量,6种TOR加密流量进行分类。ISCX VPN-nonVPN数据集包含28G,共150条原始流量,经过五元组分流后包含195095条单向流,经过子流划分后包含717829条流量。ISCX TOR-nonTOR数据集包含20G,共41条原始流量,经过五元组分流后包含138条单向流,经过子流划分后包含186883条流量。对两个数据集,均利用10折交叉验证法,取90%的数据作为训练集,10%的数据作为测试集。
在实现上,所有的实验均使用Pytorch深度学习框架完成,对于intra-Transformer模型的训练周期设置为20,每次迭代的批量大小设置为128,inter-Transformer模型的训练周期设置为5,每次迭代的批量大小设置为128。在1块3090ti显卡上进行训练。所有的性能测试也均在3090ti上进行。在训练方式上,两个模型均采用Adam(Adaptive Moment Estimation)优化器对参数进行学习,其中初始学习率设置为0.0001和0.001,betas设置为0.9与0.999,eps设置为1e-8,weight_decay设置为0。在Trasformer1模型的训练中,采用每隔5个周期,就将学习率递减为原始的90%的策略。
Claims (3)
1.一种基于Transformer深度学习模型的加密流量识别方法,包括以下步骤:
步骤1:对现有数据集进行预处理,将pcap文件按照五元组信息,以流为单位进行划分,取流中的任意M个相邻的数据包,组成子流;
步骤2:用改进的intra-Transformer模型提取数据包内的特征,包括以下步骤:
步骤2.1:对处理后的数据包的N个字节进行词嵌入,将字节特征映射到d维向量空间,获得数据包的词嵌入特征F1,F1∈RN×d,其中R表示矩阵中的实数;
步骤2.2:将输入序列中的各字节的位置信息pos,通过式1和式2编码为一个d维的位置特征F2,F2∈RN×d,具体如下:
F2(pos,2i)=sin(pos/100002i/d) (1)
F2(pos,2i+1)=cos(pos/100002i/d) (2)
其中,2i表示偶数,2i+1表示奇数;
步骤2.3:将词嵌入特征和位置编码特征进行合并,获得Transformer模型的输入特征F3,F3∈RN×d,其计算方式如式3所示:
F3=F1+F2 (3)
步骤2.4:采用多头自注意力方式,从不同角度获得数据包字节的全局依赖关系;
首先,对F3进行三次线性变换,分别获得查询向量Q、键向量K和值向量V,其中,Q∈RN×d、K∈RN×d、V∈RN×d,N表示字节数;三次线性变换分别为:
Q=F3WQ (4)
K=F3WK (5)
V=F3WV (6)
其中,W为一个d×d大小的矩阵;F3乘W表示做了一次线性变换;
然后,计算各字节之间的关联矩阵score,score∈RN×N,如式7所示:
其中,为缩放因子,用于缓解由于softmax激活函数引入的梯度消失问题;T为矩阵转置;
之后,将关联矩阵与值向量V做矩阵乘法操作,得到一个角度的全局依赖关系,即,多头自注意力机制中的一个头head1,head1∈RN×d,计算公式如下:
重复式4至8的操作,获得h个不同的头,即head1,head2,…,headh,对h个头进行拼接操作;
最后,对拼接后的特征进行线性变换,得到特征F4∈RN×d,计算公式如下:
F4=concat(head1,head2,…,headh)W (9)
其中,concat表示矩阵拼接操作;F4即为从多个角度提取到的一个数据包内字节的全局依赖关系;
步骤2.5:对F3和F4采用残差连接,并进行层归一化操作,得到特征F5,F5∈RN×d,计算公式为:
F5=LayerNorm(F3+F4) (10)
其中,LayerNorm表示层归一化;
步骤2.6:对步骤2.5中的特征F5,利用两个不同尺度的一维卷积,同时为保证特征维度的一致,两种一维卷积核的数量均为d个,最终分别得到网络获取的浅层局部特征F6和深层局部特征F7,F6∈RN×d,F7∈RN×d;
然后,利用Relu激活函数对其进行激活,计算公式为:
F6=Relu(1dconv(F5)) (11)
F7=Relu(1dconv(F6)) (12)
其中,1dconv表示一维卷积;
步骤2.7:将F7与F5进行残差连接后,进行层归一化操作,获得特征F8,F8∈RN×d:
F8=LayerNorm(F5+F7) (13)
步骤2.8:将步骤2.4至步骤2.7重复K1次,利用更深的网络,提取更深层次的特征F9,F9∈RN×d:
其中,代表第K1次重复执行步骤2.4至步骤2.7;
步骤2.9:将基于改进的intra-Transformer提取的数据包内的特征F9输入给一个全连接层,全连接层的输出神经元个数等于向量空间维度d,得到特征F10,F10∈R1×d,如式15所示:
F10=FC(flatten(F9)) (15)
其中,flatten代表将二维特征平铺成一个一维向量;FC代表全连接;
步骤3:用inter-Transformer模型提取数据包间的特征,包括以下步骤:
步骤3.1:对于有M个数据包的子流,首先通过步骤2中的改进的intra-Transformer模型提取M个数据包的包内特征,即,对于所有的包执行步骤2.1至步骤2.9操作,最终得到M个特征:
将这M个特征进行拼接,得到inter-Transformer的输入特征F11,F11∈RM×d:
步骤3.2:将包的长度信息通过词嵌入方式,映射到d维向量空间,获得包长度的长度嵌入特征F12,F12∈RM×d;
步骤3.3:对于包间的相对位置信息,同样使用同步骤2.2中的位置编码,最终得到位置编码特征F13,F13∈RM×2d;
步骤3.4:将特征F11、F12和F13进行融合,得到特征F14,F14∈RM×2d:
F14=concat(F11,F12)+F13 (18)
步骤3.5:利用多头自注意力机制,在流量层面从不同角度获得流中各个数据包间的全局依赖关系,最终得到特征F15,F15∈RM×2d;
步骤3.6:对F14和F15进行残差和层归一化操作,最终得到特征F16,F16∈RM×2d;
步骤3.7:将特征F16输入给两层全连接层,并用非线性激活函数激活;
第一个全连接层的输出神经元个数为4d,输出特征F17,F17∈RM×4d;
第二个全连接层的输出神经元个数为2d,输出特征为F18,F18∈RM×2d;
F17=Relu(FC(F16)) (19)
F18=FC(F17) (20)
其中,FC表示全连接;
步骤3.8:对F17和F18进行残差和层归一化操作,最终得到特征F19,F19∈RM×2d;
步骤3.9:为了更好的提取流中数据包间的特征,将步骤3.5至步骤3.8重复执行K2次,提取出更深层次的特征F20,F20∈RM×2d:
其中,代表重复执行K2次步骤3.5至步骤3.8操作;
步骤4:利用步骤2提取的数据包内的特征和步骤3提取的流中数据包间的特征,进行流量识别任务。
2.如权利要求1所述的一种基于Transformer深度学习模型的加密流量识别方法,其特征在于,步骤1包括以下步骤:
步骤1.1:将pcap文件按照五元组信息,以流为单位进行划分,其中,五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和传输层协议;
步骤1.2:取流中所有数据包网络层部分,并对数据包头进行匿名化处理;将源IP地址和目的IP地址全部设置0.0.0.0,将源端口号和目的端口号全部设置为0;
然后,取匿名化后的网络层数据包的前N个字节,如不够则用0补充,以达到神经网络输入数据尺寸固定要求为准;
步骤1.3:取流中的任意M个相邻的数据包,组成子流。
3.如权利要求1所述的一种基于Transformer深度学习模型的加密流量识别方法,其特征在于,步骤4的方法如下:
将步骤3的输出特征F20输入给两个全连接层,两个全连接层的输出神经元个数分别为d和分类任务的类别数c,得到特征F21和最终的分类结果Res,F21∈R1×d、Res∈R1×c;
F21=FC(flatten(F20)) (22)
Res=FC(F21) (23)
其中,flatten代表将二维特征平铺成一个一维向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659063.4A CN114401229B (zh) | 2021-12-31 | 2021-12-31 | 一种基于Transformer深度学习模型的加密流量识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659063.4A CN114401229B (zh) | 2021-12-31 | 2021-12-31 | 一种基于Transformer深度学习模型的加密流量识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114401229A CN114401229A (zh) | 2022-04-26 |
CN114401229B true CN114401229B (zh) | 2023-09-19 |
Family
ID=81229855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111659063.4A Active CN114401229B (zh) | 2021-12-31 | 2021-12-31 | 一种基于Transformer深度学习模型的加密流量识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114401229B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726753B (zh) * | 2022-05-24 | 2022-08-26 | 北京金睛云华科技有限公司 | 一种基于多任务学习的网络加密流量识别方法 |
CN116319523B (zh) * | 2023-05-19 | 2023-08-04 | 湖南承希科技有限公司 | 一种流量智适应的大数据流处理方法 |
CN116996447A (zh) * | 2023-08-22 | 2023-11-03 | 内蒙古工业大学 | 融合一维Inception结构和ET-BERT模型的加密流量识别方法 |
CN118157975B (zh) * | 2024-03-29 | 2024-08-16 | 大连理工大学 | 一种基于自动编码器和Transformer的攻击流量实时检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985361A (zh) * | 2018-07-02 | 2018-12-11 | 北京金睛云华科技有限公司 | 一种基于深度学习的恶意流量检测实现方法和装置 |
CN112003870A (zh) * | 2020-08-28 | 2020-11-27 | 国家计算机网络与信息安全管理中心 | 一种基于深度学习的网络加密流量识别方法及装置 |
CN113037730A (zh) * | 2021-02-27 | 2021-06-25 | 中国人民解放军战略支援部队信息工程大学 | 基于多特征学习的网络加密流量分类方法及系统 |
CN113162908A (zh) * | 2021-03-04 | 2021-07-23 | 中国科学院信息工程研究所 | 一种基于深度学习的加密流量检测方法及系统 |
CN113408707A (zh) * | 2021-07-05 | 2021-09-17 | 哈尔滨理工大学 | 一种基于深度学习的网络加密流量识别方法 |
-
2021
- 2021-12-31 CN CN202111659063.4A patent/CN114401229B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985361A (zh) * | 2018-07-02 | 2018-12-11 | 北京金睛云华科技有限公司 | 一种基于深度学习的恶意流量检测实现方法和装置 |
CN112003870A (zh) * | 2020-08-28 | 2020-11-27 | 国家计算机网络与信息安全管理中心 | 一种基于深度学习的网络加密流量识别方法及装置 |
CN113037730A (zh) * | 2021-02-27 | 2021-06-25 | 中国人民解放军战略支援部队信息工程大学 | 基于多特征学习的网络加密流量分类方法及系统 |
CN113162908A (zh) * | 2021-03-04 | 2021-07-23 | 中国科学院信息工程研究所 | 一种基于深度学习的加密流量检测方法及系统 |
CN113408707A (zh) * | 2021-07-05 | 2021-09-17 | 哈尔滨理工大学 | 一种基于深度学习的网络加密流量识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114401229A (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114401229B (zh) | 一种基于Transformer深度学习模型的加密流量识别方法 | |
Xu et al. | Larger norm more transferable: An adaptive feature norm approach for unsupervised domain adaptation | |
Zhang et al. | Depth-wise separable convolutions and multi-level pooling for an efficient spatial CNN-based steganalysis | |
Liu et al. | A unified feature disentangler for multi-domain image translation and manipulation | |
Liu et al. | Relation modeling with graph convolutional networks for facial action unit detection | |
CN109951444B (zh) | 一种加密匿名网络流量识别方法 | |
CN113037730B (zh) | 基于多特征学习的网络加密流量分类方法及系统 | |
CN109831392B (zh) | 半监督网络流量分类方法 | |
Wang et al. | Dual-channel capsule generation adversarial network for hyperspectral image classification | |
CN112446423B (zh) | 一种基于迁移学习的快速混合高阶注意力域对抗网络的方法 | |
Zhang et al. | A high-order possibilistic $ C $-means algorithm for clustering incomplete multimedia data | |
Marín et al. | Rawpower: Deep learning based anomaly detection from raw network traffic measurements | |
WO2022015948A1 (en) | Privacy-preserving fuzzy query system and method | |
Sun et al. | Common knowledge based and one-shot learning enabled multi-task traffic classification | |
Zhu et al. | Geographic semantic network for cross-view image geo-localization | |
CN112491894A (zh) | 一种基于时空特征学习的物联网网络攻击流量监测系统 | |
Zhang et al. | Deep-forest-based encrypted malicious traffic detection | |
Moreira et al. | Packet vision: a convolutional neural network approach for network traffic classification | |
CN112580011B (zh) | 一种面向生物特征隐私保护的人像加解密系统 | |
Liao et al. | Preserving Label-Related Domain-Specific Information for Cross-Domain Semantic Segmentation | |
de Maele et al. | Disentangling what and where for 3d object-centric representations through active inference | |
Wang et al. | A dictionary approach to domain-invariant learning in deep networks | |
CN116383470A (zh) | 一种具有隐私保护的图像搜索方法 | |
CN116684133A (zh) | 基于双层注意力和时空特征并行融合的sdn网络异常流量分类装置及方法 | |
Ding et al. | A novel two-stage learning pipeline for deep neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |