CN117527391A - 基于注意力机制和一维卷积神经网络的加密流量分类方法 - Google Patents
基于注意力机制和一维卷积神经网络的加密流量分类方法 Download PDFInfo
- Publication number
- CN117527391A CN117527391A CN202311557064.7A CN202311557064A CN117527391A CN 117527391 A CN117527391 A CN 117527391A CN 202311557064 A CN202311557064 A CN 202311557064A CN 117527391 A CN117527391 A CN 117527391A
- Authority
- CN
- China
- Prior art keywords
- data
- model
- network
- attention
- matrix
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000007246 mechanism Effects 0.000 title claims abstract description 26
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 18
- 239000011159 matrix material Substances 0.000 claims abstract description 53
- 238000000605 extraction Methods 0.000 claims abstract description 45
- 238000012549 training Methods 0.000 claims abstract description 36
- 238000009826 distribution Methods 0.000 claims abstract description 14
- 238000007781 pre-processing Methods 0.000 claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 25
- 238000013145 classification model Methods 0.000 claims description 18
- 238000013135 deep learning Methods 0.000 claims description 17
- 238000010606 normalization Methods 0.000 claims description 16
- 239000013598 vector Substances 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 claims description 10
- 230000004913 activation Effects 0.000 claims description 9
- 238000005520 cutting process Methods 0.000 claims description 9
- 238000004140 cleaning Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 230000035945 sensitivity Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 238000004880 explosion Methods 0.000 claims description 4
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000008030 elimination Effects 0.000 claims description 3
- 238000003379 elimination reaction Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000003062 neural network model Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 230000017105 transposition Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 238000001514 detection method Methods 0.000 abstract description 6
- 230000002452 interceptive effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000011176 pooling Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000007635 classification algorithm Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000002679 ablation Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/048—Activation functions
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于网络安全的技术领域,公开了一种基于注意力机制和一维卷积神经网络的加密流量分类方法,该加密流量分类模型使用深度学习实现网络流中的加密流量分类算法。首先通过对实际获取到的原始数据流文件,进行特征预处理,并根据数据样本量生成成本敏感矩阵;然后利用Attention对全局特征进行提取,再利用1DCNN实现局部特征刻画,并使用成本敏感矩阵对训练损失函数进行干扰,使其更加关注难以分类的样本;最后根据模型输出的概率分布判别样本的具体类别。实验结果证明,本发明既可以有效提高加密流量的识别性能,保证数据传输的隐私安全,也可以解决传统检测方法常存在特征提取困难、复杂度高、对少数类样本的检测率低等问题。
Description
技术领域
本发明属于网络安全的技术领域,具体涉及为一种基于注意力机制和一维卷积神经网络的加密流量分类方法,该加密流量分类方法采用深度学习中的注意力机制(Attention Mechanism,Attention)和一维卷积神经网络(1D Convolutional NeuralNetwork,1DCNN)实现加密流量的分类方法。
背景技术
流量分类(Traffic Classification)通过将具体的流量分类为特定的类别,对于保障网络安全、分析网络行为、提高网络管理水平与改善服务质量(Quality ofService,,QoS)等方面发挥着重要的作用。由于互联网已经从简单的信息连接平台,转变为引领时代潮流的全球化交流平台。为保证数据传输的隐私安全,加密技术(Encryption technology)被广泛应用于网络数据传输中。2020年超过70%的恶意软件采用加密技术来隐藏其传输、控制和数据窃取行为,并且60%的组织由于无法有效解密HTTPS数据,从而遗漏关键的加密威胁。如何提升加密流量识别效率,检测恶意流量,成为网络安全领域的研究热门。
当前,已经有诸多学者提出多种网络流量分类方法。按照特征类型主要分为基于端口的分类方法、基于深度数据包检测技术(Deep Packet Inspection)的分类方法和基于机器学习和深度学习的分类方法。基于端口的分类方法使用数据包中的TCP/UDP报头信息提取与特定应用程序相关联的端口号,通过与分配的端口号进行比较分类。该方案提取过程简单,端口号不会受到加密方案的影响。基于深度数据包检测技术的方法,通过对数据流中的数据报文内容进行探测,从而判定数据报文的真实类别。相较于非加密流量,加密流量常采用混淆技术来隐藏真实通信[10],使得传统的分类方法在精度和性能上出现了显著下降。
基于机器学习的分类方法需要根据先验知识利用统计规律手动选择和提取特征进行分类,因此该方法高度依赖于所提取的特征。基于机器学习的方法中,已有相关学者提出各种检测算法,通常需要专家学者对特征进行统计分析后,将提取到的统计特征用于对流量的分类算法,使用到的分类算法主要为决策树、K邻近算法(K-Nearest Neighbor,,KNN)和朴素贝叶斯分类算法。或者将机器学习与深度有效负载检测(DPI)相结合,从而实现较高的分类速度和可接受的准确率。DPI技术可以深入检查各个协议层的数据包,全面分析检测每个数据包内容,最后通过特征库匹配实现对流量的识别。但DPI技术不适用于加密的流量内容,且计算复杂度大,难以在实际环境中进行应用。基于深度学习的方法通过网络模型学习从原始数据到所需输出之间的关系,从而学习到更加复杂的关系,避免了机器学习中对先验知识的依赖以及人工进行特征设计的工作,具有更好的解决效果。目前基于深度学习的研究中,主要采用1DCNN络对数据流进行空间特征提取,或采用长短期记忆网络(Long Short Term Memory,LSTM)进行时序特征的提取,最后使用多层感知机(Multi-Layer Perceptron,,MLP)实现对提取到的特征进行分类。目前基于深度学习的研究中,主要采用1DCNN络对数据流进行空间特征提取,或采用长短期记忆网络(Long Short TermMemory,LSTM)进行时序特征的提取,最后使用多层感知机(Multi-Layer Perceptron,,MLP)实现对提取到的特征进行分类。网络流量的时序特征主要指流量会话中,每个数据包所携带的可以构成随时间变化的序列特征信息,例如数据包之间到达的时间间隔可以反应网络延迟和拥塞情况、数据包到达的先后顺序可以反应传输的可靠性、重传数据包到达的时间与传输过程中的丢包率相关。而流量的空间特征主要指数据包中所携带的实际数据信息,可以更好的反应数据本身信息,例如数据包加密协议、数据包加密内容、不同数据包之间的逻辑关联性、以及用于识别应用的内容签名或特征码等信息。网络流的时序特征相对空间特征而言,时序特征更易提取且规模相对较小,不受数据加密的影响,模型训练速度更快。但时序特征更容易受到数据传输中网络速率以及其他不可控因素的影响,从而导致不同的网络环境下提取到的网络流时序特征会有较大的差别,同时也会因为特征维度低而导致特征代表性不足、易产生数据标签冲突等问题而导致模型的效率下降。空间特征由于特征维度相对较高,可以更深层次的分析加密流量之间的差异,同时,空间特征的提取可以在一定程度上保留原始数据包之间的时序特征,如数据包到达的先后顺序等,从而更好的实现加密流量的识别和分类任务。
在实际的流量数据集中存在样本分布非均衡问题,会影响加密流量分类精度和性能。常见的解决数据不平衡的方法有两种:(1)利用重采样技术,在数据集预处理阶段重新平衡类别样本分布,例如欠采样和过采样。欠采样通过从主要类别中随机删除一些样本,减少主要类别的采样比例,使得各类样本数量趋于平衡,但欠采样由于丢弃了部分样本,在一定程度上造成信息损失。过采样通过少类样本复制或者生成新样本的方式增强少数类,过采样策略会使学习过程变得复杂,模型容易过拟合。(2)在算法层面,通过添加成本函数来提高分类器对少数类样本的敏感度。在模型训练期间,通过将较高的成本分配给少数类样本,从而使模型更加关注少数类样本的分布情况。
目前,已有的分类方法存在以下几个方面的问题:1、对于加密流量信息特征提取不足;2、需要专家进行特征信息提取,复杂度高;3、忽略了原始数据包之间的相互关系;4、数据样本量存在不平衡现象,导致少数类样本的检测率低。总体而言,基于深度学习的加密流量分类技术在当前网络环境下具有广泛的应用前景和多重技术挑战。
发明内容
1DCNN是深度学习领域中一类用于处理一维序列数据的强大模型。相较于传统的全连接神经网络,1DCNN在序列数据建模中具有独特的优势,能够有效地捕捉局部特征和模式,广泛应用于文本处理、时间序列分析以及生物信息学等领域。1D CNN的核心结构包括卷积层、池化层和激活函数。在卷积层中,卷积核沿着序列方向滑动,通过卷积操作提取局部特征。这使得网络能够对序列中的不同部分进行感知,从而更好地理解序列数据的结构。池化层通常用于降采样,通过减少特征的维度来减小计算负担。激活函数(如ReLU)则引入非线性,增加网络的表达能力。但1DCNN在处理长距离依赖时,因为卷积操作局限于捕捉局部特征,难以有效地捕捉序列中的长距离依赖关系,可能导致性能下降。此外,1D CNN对序列长度的变化敏感,需要仔细设计网络结构以适应不同长度的序列数据。
Attention作为深度学习中一项关键技术,其核心思想是在处理输入数据时赋予不同部分不同的权重,以便模型能够更灵活、准确地关注关键信息。最初在自然语言处理领域得到广泛应用,尤其在机器翻译、文本摘要和语言建模等任务中发挥了重要作用。通过引入注意力机制,模型能够在生成输出时集中精力处理输入序列中的关键信息,从而提高模型的性能和表达能力。这一机制的成功应用不仅局限于自然语言处理,还扩展到计算机视觉和语音处理等领域,为图像分类、目标检测以及语音识别等任务带来了显著的提升。不同类型的注意力机制,如点积注意力和多头注意力,以及自注意力,使得模型能够适应各种复杂的数据结构和任务要求。
针对已有的分类方法存在的不足,我们通过设计一种网络结构,使其可以充分的提取到数据流的特征,并根据提取到的特征进行分类,并且针对数据样本中存在的分布不平衡现象,利用数据样本分布变化设计算法,使得模型对于少数类样本的识别精准度进一步提升。
基于此,本发明提出了一种基于注意力机制和一维卷积神经网络的加密流量分类模型,可以适用于对使用加密算法后数据流实现分类,可以有效地提高网络管理水平与改善服务质量。
为了达到上述目的,本发明采取以下技术方案实现:一种基于注意力机制和一维卷积神经网络的加密流量分类方法,其包括以下几个步骤:
步骤1、数据预处理:对待分类的原始加密网络流数据进行切分、截断、向量化与归一化转换为用于提供深度学习特征提取的数据样本,根据数据样本构建成本敏感矩阵;
步骤2、网络流量分类模型构建与训练:步骤2.1,模型构建,使用pytorch搭建Attention-1DCNN-CE网络流量分类模型,步骤2.2,模型训练,将数据样本作为该模型的输入进行特征提取与分析;
步骤3、网络流量分类模型性能评价:采用准确率、精准率、召回率、F1分数、误报率的各自平均值作为模型的评价指标,当评价指标低于90%时,返回至步骤2.2重新进行训练,否则,完成模型构建与训练;
步骤4、加密流量识别与分类:将真实加密网络流数据采用步骤1中切分、截断、向量化与归一化预处理得到测试样本加载后输入到训练好的模型中,自动判别网络流数据所属的具体类别。
作为上述技术方案中的进一步限定,在步骤1中,其具体步骤如下:
步骤1.1:网络流划分:采用Wireshark、SplitCap中任一工具将原始的网络流量pcap文件根据五元组信息进行网络流划分,得到多个带标签的网络流量数据包,作为步骤1.2的输入,其中五元组信息包括源IP地址、目的IP地址、源端口、目的端口和协议;
步骤1.2,数据清洗:采用scapy库函数对分类好的网络流量数据包进行数据清洗,排除掉不包含实际数据信息载荷的网络流文件;
步骤1.3,数据截断与填充:对步骤1.2的网络流文件进行数据的截断与填充,即对超过1500字节的数据包进行截断,对不足1500字节的数据包使用0x00填充;
步骤1.4,数据匿名化:对步骤1.3的网络流文件进行数据匿名化,将原始IP地址、目的地址、原始mac地址、目的mac地址转换为0x00;
步骤1.5,向量化与归一化:对步骤1.4网络流文件进行数据向量化与归一化,将二进制数据以8位为单位转换为0至255之间的十进制整数,然后除以255进行归一化,得到用于提供深度学习特征提取的数据样本;
步骤1.6,创建成本敏感矩阵:根据数据样本的分布创建一个成本敏感矩阵,该矩阵将在输出层中根据不同的成本来更新网络权重,假设类别C1对应的样本数量为类别C2对应的样本数量为/>则敏感系数计算公式为:/>
作为上述技术方案中的进一步限定,在步骤2中,Attention-1DCNN-CE网络流量分类模型分为基于Attention的全局特征提取模块、基于1DCNN的局部特征提取模块、基于成本敏感矩阵的输出层模块。
作为上述技术方案中的补充说明,在步骤2中,其具体步骤如下:
步骤2.1,数据样本加载:采用深度学习框架pytorch1.12对数据样本进行加载,将数据样本采用DataLoader进行数据载入;
步骤2.2,模型构建:步骤2.2.1,基于Attention的全局特征提取模块:使用基于Attention的全局特征提取模块对数据样本进行全局特征提取,首先数据样本进入多层编码器中,通过利用自注意力模块不断优化获取到数据样本的特征信息;在自注意力模块中,将输入序列x∈Rn*d映射为查询矩阵Q、键值矩阵K,值矩阵V,自注意力计算公式如下:
式中:softmax为激活函数,dk是矩阵Q,K的向量维度,为缩放因子,T为矩阵转置;
多头注意力通过使用多个并行的注意力模块,可以获得输入序列不同子空间上的表示,每个头可以学习到不同的特征,多头注意力模块的计算公式为:MultiHead(Q,K,V)=Concat(head1,…,headh)WO,其中
式中:WO,分别为可学习的参数矩阵;
残差链接旨在解决深层网络训练过程中的梯度消失和梯度爆炸问题,并加快网络的训练速度和提高模型性能,残差链接的计算公式如下:Res(x)=x+MultiHead(x),
式中:x为上一层的输出结果;
前馈全连接层可以增加模型的非线性表达能力,从而提升模型的拟合能力,加快收敛速度,前馈全连接计算公式:FeedForward(x)=Relu(x·W+b),
式中:W为可学习的参数矩阵,Relu为激活函数;
步骤2.2.2,基于1DCNN的局部特征提取模块:将数据样本的特征信息输入到基于1DCNN的局部特征提取模块中进行局部特征优化得到特征向量;
步骤2.2.3,基于成本敏感矩阵的输出层模块:将得到的特征向量送入输出层中,并将成本敏感矩阵与交叉熵损失函数相结合,利用计算损失函数,通过方向传递机制更新模型参数,每批N个训练样本的总损失值公式计算如下:
式中:O表示通过输出层计算得到的输出概率,y代表真实的类别标签,Oi为样本i的输出概率,yi是样本i的真实标签对应的独热编码;
步骤2.3,模型训练:将步骤1.5中的数据样本输入到Attention-1DCNN-CE模型中进行参数训练,通过前向传播算法和反向传播算法训练好用于目标网络流量分类的神经网络模型参数,根据模型预测结果对加密的网络流量进行分类。
作为上述技术方案中的进一步限定,在步骤2.2.3中,每批N个训练样本中每个预测的损失值计算公式:
式中:costi,j为将真实类别,i预测输出为类别,j所添加的敏感参数,pi为经过输出层后对应类别的概率值。
作为上述技术方案中的补充说明,在步骤2.3中,使用Adam优化器,通过方向传递机制更新模型参数。
作为上述技术方案中的补充说明,在步骤3中,评价指标的计算方式如下: 式中:(PR,RC,F1,FAR)k表示第k个分类指标(PR,RC,F1,FAR)值,N表示N种类别;
其中,准确率的计算公式为
精准率的计算公式为
召回率的计算公式为
F1分数的计算公式为
误报率的计算公式为
式中:TP代表真正例,FP代表假正例,FN代表假反例,TN代表真反例。
与现有技术相比较,本发明提出了加密环境下的流量分类方法,其有益效果主要体现在以下四个方面:
1、本发明在Attention-1DCNN-CE的加密流量分类模型的训练和学习过程中使用到的特征更加全面具体,不需要专家参与,通过科学的特征提取方法,模型比现有方法在加密流量识别效果上有明显的提升。
2、利用深度学习中神经网络可以避免人工特征提取的特点,提出了一种基于自注意力机制和卷积神经网络的加密流量分类模型,提高了加密流量识别的准确性和鲁棒性。
3、充分利用不同深度学习模型各自的长处,对流量不同维度的特征进行压缩和特征提取。在数据预处理阶段,保留了相邻数据包之间的空间关系。在特征提取阶段,使用自注意力机制提取流量的数据包级别全局特征向量,然后使用卷积神经网络捕获字节级别的局部特征向量。
4、针对加密流量中样本数量不平衡对加密流量分类性能带来的负面影响,提出了一种基于成本敏感的交叉熵损失函数,提高了加密流量对于少数类样本识别的性能指标。
附图说明
图1为本发明中加密流量分类方法的流程图;
图2为本发明中加密流量分类模型框架图;
图3为本发明中数据包截断与填充的示意图;
图4为本发明中成本敏感矩阵图;
图5为本发明中基于Attention的全局特征提取模块的结构图;
图6为本发明中基于1DCNN的局部特征提取模块的结构图;
图7为本发明中网络流量分类模型的评价指标概念图;
图8为本发明在BOT_IOT数据集下的模型输出混淆矩阵图;
图9为本发明在消融实验中各模型分类性能的指标对比图;
图10为本发明消融实验中各模型下各类别的性能指标对比图;
图11为本发明在BOT_IOT数据集下与其他方案的性能指标对比图;
图12为本发明在TON_IOT数据集下与其他方案的性能指标对比图;
具体实施方法
为了更好的理解本发明,下面结合公开数据集进一步阐明本发明内容,但本发明的内容不局限于以下实施例。
如附图1和2所示,基于注意力机制和一维卷积神经网络的加密流量分类方法,其包括以下几个步骤:
步骤1、数据预处理:对待分类的原始加密网络流数据进行切分、截断、向量化与归一化转换为用于提供深度学习特征提取的数据样本,根据数据样本构建成本敏感矩阵;
步骤2、网络流量分类模型构建与训练:步骤2.1,模型构建,使用pytorch搭建Attention-1DCNN-CE网络流量分类模型,其中Attention-1DCNN-CE网络流量分类模型分为基于Attention的全局特征提取模块、基于1DCNN的局部特征提取模块、基于成本敏感矩阵的输出层模块;步骤2.2,模型训练,将数据样本作为该模型的输入进行特征提取与分析;
步骤3、网络流量分类模型性能评价:采用准确率、精准率、召回率、F1分数、误报率的各自平均值作为模型的评价指标,当评价指标低于90%时,返回至步骤2.2重新进行训练,否则,完成模型构建与训练;
步骤4、加密流量识别与分类:将真实加密网络流数据采用步骤1中切分、截断、向量化与归一化预处理得到测试样本加载后输入到训练好的模型中,自动判别网络流数据所属的具体类别。
如附图3和4所示,作为上述实施例的优选实施方式,在步骤1中,其具体步骤如下:
步骤1.1:网络流划分:采用Wireshark、SplitCap中任一工具将原始的网络流量pcap文件根据五元组信息进行网络流划分,得到多个带标签的网络流量数据包,作为步骤1.2的输入,其中五元组信息包括源IP地址、目的IP地址、源端口、目的端口和协议;
步骤1.2,数据清洗:采用scapy库函数对分类好的网络流量数据包进行数据清洗,排除掉不包含实际数据信息载荷的网络流文件;
步骤1.3,数据截断与填充:对步骤1.2的网络流文件进行数据的截断与填充,即对超过1500字节的数据包进行截断,对不足1500字节的数据包使用0x00填充;
步骤1.4,数据匿名化:对步骤1.3的网络流文件进行数据匿名化,将原始IP地址、目的地址、原始mac地址、目的mac地址转换为0x00;
步骤1.5,向量化与归一化:对步骤1.4网络流文件进行数据向量化与归一化,将二进制数据以8位为单位转换为0至255之间的十进制整数,然后除以255进行归一化,得到用于提供深度学习特征提取的数据样本;
步骤1.6,创建成本敏感矩阵:根据数据样本的分布创建一个成本敏感矩阵,该矩阵将在输出层中根据不同的成本来更新网络权重,假设类别C1对应的样本数量为类别C2对应的样本数量为/>则敏感系数计算公式为:/>
如附图5和6所示,作为上述实施例的优选实施方式,在步骤2中,其具体步骤如下:
步骤2.1,数据样本加载:采用深度学习框架pytorch1.12对数据样本进行加载,将数据样本采用DataLoader进行数据载入;
步骤2.2,模型构建:步骤2.2.1,基于Attention的全局特征提取模块:使用基于Attention的全局特征提取模块对数据样本进行全局特征提取,首先数据样本进入多层编码器中,通过利用自注意力模块不断优化获取到数据样本的特征信息;在自注意力模块中,将输入序列x∈Rn*d映射为查询矩阵Q、键值矩阵K,值矩阵V,自注意力计算公式如下:
式中:softmax为激活函数,dk是矩阵Q,K的向量维度,为缩放因子,T为矩阵转置;
多头注意力通过使用多个并行的注意力模块,可以获得输入序列不同子空间上的表示,每个头可以学习到不同的特征,多头注意力模块的计算公式为:MultiHead(Q,K,V)=Concat(head1,…,headh)WO,其中
式中:WO,分别为可学习的参数矩阵;
残差链接旨在解决深层网络训练过程中的梯度消失和梯度爆炸问题,并加快网络的训练速度和提高模型性能,残差链接的计算公式如下:Res(x)=x+MultiHead(x),
式中:x为上一层的输出结果;
前馈全连接层可以增加模型的非线性表达能力,从而提升模型的拟合能力,加快收敛速度,前馈全连接计算公式:FeedForward(x)=Relu(x·W+b),
式中:W为可学习的参数矩阵,Relu为激活函数;
步骤2.2.2,基于1DCNN的局部特征提取模块:将数据样本的特征信息输入到基于1DCNN的局部特征提取模块中进行局部特征优化得到特征向量;
步骤2.2.3,基于成本敏感矩阵的输出层模块:将得到的特征向量送入输出层中,并将成本敏感矩阵与交叉熵损失函数相结合,利用计算损失函数通过方向传递机制更新模型参数,每批N个训练样本的总损失值公式计算如下:
式中:O表示通过输出层计算得到的输出概率,y代表真实的类别标签,Oi为样本i的输出概率,yi是样本i的真实标签对应的独热编码;
每批N个训练样本中每个预测的损失值计算公式:
式中:costi,j为将真实类别,i预测输出为类别,j所添加的敏感参数,pi为经过输出层后对应类别的概率值;对于公式对于预测类别与真实类别一致的情况costi,j为1,如果不一致,则costi,j为根据样本分布计算的成本敏感参数。损失函数的改进主要是针对误分类的损失计算,当预测正确时,costi,j=1,随着预测类别概率值pi,pi∈[0,1]增大,f(pi)值逐渐减小。当预测错误时,costi,j=α,α∈(0,1),通过对类别概率值pi的进一步放缩,使得f(pi)值增大,从而使损失函数的输出增大,从而模型更加关注错误类别;
步骤2.3,模型训练:将步骤1.5中的数据样本输入到Attention-1DCNN-CE模型中进行参数训练,使用Adam优化器通过前向传播算法和反向传播算法训练好用于目标网络流量分类的神经网络模型参数,根据模型预测结果对加密的网络流量进行分类。
如附图2和5所示,在基于Attention的全局特征提取模块中,对于特征处理后的每个样本,向量维度为1500*10。首先进入多层编码其中,编码器架构如图4所示,编码器模块共包含N组子编码器,通过利用自注意力机制不断优化获取到的特征信息。每个子编码器中还包含归一化层、残差连接和前馈全连接层。
如附图3所示,由于通过实际捕获到的数据流中存在数据不平衡现象,会影响模型分类的性能。我们根据类别本的分布创建一个成本敏感系数矩阵,该矩阵将在输出层中根据不同的成本来更新网络权重成本敏感矩阵形式。
多头注意力作为自注意力机制的一个重要变种,通过使用多个并行的注意力模块,可以获得输入序列不同子空间上的表示,每个头可以学习到不同的特征,这种非线性转换增强了模型对输入信息的表达能力,是模型学习到更加抽象的特征表示,全面理解输入信息。
如附图5所示,基于1DCNN的局部特征提取模块从结构上来看可以分成两个基本=结构体,每个结构体中包含卷积层(1DCNN)、归一化层(BatchNorm)、池化层(MaxPool),最后采用自适应平均池化层(AdaAvgpool)对得到的特征图进行自适应的空间汇聚。在每一个结构体中,一维卷积层的主要作用是对输入的空间特征向量进行局部特征提取,将全局的特征信息保存在多个局部特征矩阵中,每个卷积层的过滤器大小设置为3,可以更加高效的提取数据流每3个连续特征点的相关性,实现对局部特征高效的特征提取能力。归一化层采用BatchNorm进行,在不影响数据真实分布的前提下,减少内部协变量偏移,使得每层参数分布更加稳定,避免梯度消失或爆炸,增强模型的稳定性和泛化能力。归一化层后采用Relu作为激活函数,并采用Dropout降低过拟合。最后每一个结构体中采用最大池化层进行数据降维和特征压缩,其中池化窗口大小设置为2,通过提取最重要的特征,提高模型的泛化能力。最后将得到的特征表示采用自适应平均池化层,在最后的输出层之前实现对特征图大小的转换。
在基于成本敏感矩阵的输出层模块中,我们通过添加成本敏感参数,实现对样本分布不平衡的处理,考虑与每种错误分类类型相关的成本值来修改交叉熵损失函数。本方法使得模型对于少数类别样本的错误分类更加敏感,对于通过一维卷积提取到的特征向量,Softmax层将值转换为概率并将其馈送到改进的交叉熵损失函数中以重新计算损失。
如附图7所示,作为上述实施例的优选实施方式,在步骤3中,评价指标的计算方式如下:式中:(PR,RC,F1,FAR)k表示第k个分类指标(PR,RC,F1,FAR)值,N表示N种类别;
其中,准确率的计算公式为
精准率的计算公式为
召回率的计算公式为
F1分数的计算公式为
误报率的计算公式为
式中:TP代表真正例,FP代表假正例,FN代表假反例,TN代表真反例。
如图9所示,为了验证本发明中Attention-1DCNN-CE网络流量分类模型的泛化性和可靠性,我们使用BOT_IOT数据集进行对比,实验结果,分别对比了1DCNN、1DCNN-CE、Attention、Attention-CE、Attention-1DCNN、Attention-1DCNN-CE,(其中CE为使用成本敏感矩阵)。如附图10所示,为了更好的说明成本敏感矩阵对模型性能的影响,列出了在经过训练后每个类别对应的训练指标,并输出对应的混淆矩阵结果参照图8。从附图8中我们可以发现,类别datatheft和Keylogging为少数类别样本,根据图10中的信息,可以明显的观察到,使用了成本敏感矩阵的方法的性能均高于未使用的性能。
如附图11和12所示,数据集BOT_IOT和TON_IOT的分类指标为了综合对比,选取了相关研究中的三个方法进行实验,分别为1DCNN、Deep_Packet和CMTSNN,实验结果表明,该模型相对其他模型而言,有较高的识别准确率和性能,在不同数据集上的F1分数值都达到了97%以上,且相较于其他模型而言,对于数量较少的样本的识别性能更高。
综上所述,本发明具有较强的性能,与现有方法相比也具有一定的优势。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (7)
1.基于注意力机制和一维卷积神经网络的加密流量分类方法,其特征在于:包括以下几个步骤:
步骤1、数据预处理:对待分类的原始加密网络流数据进行切分、截断、向量化与归一化转换为用于提供深度学习特征提取的数据样本,根据数据样本构建成本敏感矩阵;
步骤2、网络流量分类模型构建与训练:步骤2.1,模型构建,使用pytorch搭建Attention-1DCNN-CE网络流量分类模型,步骤2.2,模型训练,将数据样本作为该模型的输入进行特征提取与分析;
步骤3、网络流量分类模型性能评价:采用准确率、精准率、召回率、F1分数、误报率的各自平均值作为模型的评价指标,当评价指标低于90%时,返回至步骤2.2重新进行训练,否则,完成模型构建与训练;
步骤4、加密流量识别与分类:将真实加密网络流数据采用步骤1中切分、截断、向量化与归一化预处理得到测试样本加载后输入到训练好的模型中,自动判别网络流数据所属的具体类别。
2.根据权利要求1所述的基于注意力机制和一维卷积神经网络的加密流量分类方法,其特征在于:在步骤1中,其具体步骤如下:
步骤1.1:网络流划分:采用Wireshark、SplitCap中任一工具将原始的网络流量pcap文件根据五元组信息进行网络流划分,得到多个带标签的网络流量数据包,作为步骤1.2的输入,其中五元组信息包括源IP地址、目的IP地址、源端口、目的端口和协议;
步骤1.2,数据清洗:采用scapy库函数对分类好的网络流量数据包进行数据清洗,排除掉不包含实际数据信息载荷的网络流文件;
步骤1.3,数据截断与填充:对步骤1.2的网络流文件进行数据的截断与填充,即对超过1500字节的数据包进行截断,对不足1500字节的数据包使用0x00填充;
步骤1.4,数据匿名化:对步骤1.3的网络流文件进行数据匿名化,将原始IP地址、目的地址、原始mac地址、目的mac地址转换为0x00;
步骤1.5,向量化与归一化:对步骤1.4网络流文件进行数据向量化与归一化,将二进制数据以8位为单位转换为0至255之间的十进制整数,然后除以255进行归一化,得到用于提供深度学习特征提取的数据样本;
步骤1.6,创建成本敏感矩阵:根据数据样本的分布创建一个成本敏感矩阵,该矩阵将在输出层中根据不同的成本来更新网络权重,假设类别C1对应的样本数量为类别C2对应的样本数量为/>则敏感系数计算公式为:/>
3.根据权利要求2所述的基于注意力机制和一维卷积神经网络的加密流量分类方法,其特征在于:在步骤2中,Attention-1DCNN-CE网络流量分类模型分为基于Attention的全局特征提取模块、基于1DCNN的局部特征提取模块、基于成本敏感矩阵的输出层模块。
4.根据权利要求3所述的基于注意力机制和一维卷积神经网络的加密流量分类方法,其特征在于:在步骤2中,其具体步骤如下:
步骤2.1,数据样本加载:采用深度学习框架pytorch1.12对数据样本进行加载,将数据样本采用DataLoader进行数据载入;
步骤2.2,模型构建:步骤2.2.1,基于Attention的全局特征提取模块:使用基于Attention的全局特征提取模块对数据样本进行全局特征提取,首先数据样本进入多层编码器中,通过利用自注意力模块不断优化获取到数据样本的特征信息;在自注意力模块中,将输入序列x∈Rn*d映射为查询矩阵Q、键值矩阵K,值矩阵V,自注意力计算公式如下:
式中:softmax为激活函数,dk是矩阵Q,K的向量维度,为缩放因子,T为矩阵转置;
多头注意力通过使用多个并行的注意力模块,可以获得输入序列不同子空间上的表示,每个头可以学习到不同的特征,多头注意力模块的计算公式为:MultiHead(Q,K,V)=Concat(head1,…,headh)WO,其中
式中:分别为可学习的参数矩阵;
残差链接旨在解决深层网络训练过程中的梯度消失和梯度爆炸问题,并加快网络的训练速度和提高模型性能,残差链接的计算公式如下:Res(x)=x+MultiHead(x),
式中:x为上一层的输出结果;
前馈全连接层可以增加模型的非线性表达能力,从而提升模型的拟合能力,加快收敛速度,前馈全连接计算公式:FeedForward(x)=Relu(x·W+b),
式中:W为可学习的参数矩阵,Relu为激活函数;
步骤2.2.2,基于1DCNN的局部特征提取模块:将数据样本的特征信息输入到基于1DCNN的局部特征提取模块中进行局部特征优化得到特征向量;
步骤2.2.3,基于成本敏感矩阵的输出层模块:将得到的特征向量送入输出层中,并将成本敏感矩阵与交叉熵损失函数相结合,利用计算损失函数,通过方向传递机制更新模型参数,每批N个训练样本的总损失值公式计算如下:
式中:O表示通过输出层计算得到的输出概率,y代表真实的类别标签,Oi为样本i的输出概率,yi是样本i的真实标签对应的独热编码;
步骤2.3,模型训练:将步骤1.5中的数据样本输入到Attention-1DCNN-CE模型中进行参数训练,通过前向传播算法和反向传播算法训练好用于目标网络流量分类的神经网络模型参数,根据模型预测结果对加密的网络流量进行分类。
5.根据权利要求4所述的基于注意力机制和一维卷积神经网络的加密流量分类方法,其特征在于:在步骤2.2.3中,每批N个训练样本中每个预测的损失值计算公式:
式中:costi,j为将真实类别,i预测输出为类别,j所添加的敏感参数,pi为经过输出层后对应类别的概率值。
6.根据权利要求5所述的基于注意力机制和一维卷积神经网络的加密流量分类方法,其特征在于:在步骤2.3中,使用Adam优化器,通过方向传递机制更新模型参数。
7.根据权利要求1至6中任一项所述的基于注意力机制和一维卷积神经网络的加密流量分类方法,其特征在于:在步骤3中,评价指标的计算方式如下:式中:(PR,RC,f1,FAR)k表示第k个分类指标(PR,RC,h1,FAR)值,N表示N种类别;
其中,准确率的计算公式为
精准率的计算公式为
召回率的计算公式为
F1分数的计算公式为
误报率的计算公式为
式中:TP代表真正例,FP代表假正例,FN代表假反例,TN代表真反例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311557064.7A CN117527391A (zh) | 2023-11-21 | 2023-11-21 | 基于注意力机制和一维卷积神经网络的加密流量分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311557064.7A CN117527391A (zh) | 2023-11-21 | 2023-11-21 | 基于注意力机制和一维卷积神经网络的加密流量分类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117527391A true CN117527391A (zh) | 2024-02-06 |
Family
ID=89747090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311557064.7A Pending CN117527391A (zh) | 2023-11-21 | 2023-11-21 | 基于注意力机制和一维卷积神经网络的加密流量分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117527391A (zh) |
-
2023
- 2023-11-21 CN CN202311557064.7A patent/CN117527391A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022041394A1 (zh) | 一种网络加密流量识别方法及装置 | |
CN110311829B (zh) | 一种基于机器学习加速的网络流量分类方法 | |
CN113179223B (zh) | 一种基于深度学习和序列化特征的网络应用识别方法及系统 | |
CN110012029B (zh) | 一种区分加密和非加密压缩流量的方法和系统 | |
CN110730140A (zh) | 基于时空特性相结合的深度学习流量分类方法 | |
CN111783442A (zh) | 入侵检测方法、设备和服务器、存储介质 | |
CN110796196A (zh) | 一种基于深度判别特征的网络流量分类系统及方法 | |
CN114816909A (zh) | 一种基于机器学习的实时日志检测预警方法及系统 | |
CN113329023A (zh) | 一种加密流量恶意性检测模型建立、检测方法及系统 | |
CN114039901A (zh) | 基于残差网络和循环神经网络混合模型的协议识别方法 | |
CN110532564A (zh) | 一种基于cnn和lstm混合模型的应用层协议在线识别方法 | |
CN112804253A (zh) | 一种网络流量分类检测方法、系统及存储介质 | |
CN115037805B (zh) | 一种基于深度聚类的未知网络协议识别方法、系统、装置及存储介质 | |
CN109376797B (zh) | 一种基于二进制编码器和多哈希表的网络流量分类方法 | |
CN114826776B (zh) | 一种用于加密恶意流量的弱监督检测方法及系统 | |
CN112491894A (zh) | 一种基于时空特征学习的物联网网络攻击流量监测系统 | |
CN115296919B (zh) | 一种边缘网关对特殊流量包计算方法及系统 | |
CN113923026A (zh) | 一种基于TextCNN的加密恶意流量检测模型及其构建方法 | |
CN116684877A (zh) | 一种基于gyac-lstm的5g网络流量异常检测方法及系统 | |
CN112910853A (zh) | 基于混合特征的加密流量分类方法 | |
Zhang et al. | A framework for resource-aware online traffic classification using CNN | |
Zhao et al. | Block cipher identification scheme based on Hamming weight distribution | |
CN115622810B (zh) | 一种基于机器学习算法的业务应用识别系统及方法 | |
Zhang et al. | Transfer learning for encrypted malicious traffic detection based on efficientnet | |
CN114979017B (zh) | 基于工控系统原始流量的深度学习协议识别方法及系统 |
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 |