CN117056797A - 基于非平衡数据的加密流量分类方法、设备及介质 - Google Patents
基于非平衡数据的加密流量分类方法、设备及介质 Download PDFInfo
- Publication number
- CN117056797A CN117056797A CN202310963455.2A CN202310963455A CN117056797A CN 117056797 A CN117056797 A CN 117056797A CN 202310963455 A CN202310963455 A CN 202310963455A CN 117056797 A CN117056797 A CN 117056797A
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- packet
- flow
- session
- 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 63
- 238000000605 extraction Methods 0.000 claims abstract description 64
- 238000012549 training Methods 0.000 claims abstract description 25
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 19
- 239000002131 composite material Substances 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 13
- 230000004927 fusion Effects 0.000 claims abstract description 9
- 238000012360 testing method Methods 0.000 claims abstract description 8
- 238000001914 filtration Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 24
- 238000013527 convolutional neural network Methods 0.000 claims description 21
- 230000004913 activation Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 4
- 230000006403 short-term memory Effects 0.000 claims description 4
- 230000007787 long-term memory Effects 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims description 2
- 238000007405 data analysis Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 19
- 238000005070 sampling Methods 0.000 abstract 1
- 230000007246 mechanism Effects 0.000 description 8
- 238000011176 pooling Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007493 shaping process Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013145 classification model Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000010030 laminating Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- 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/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- 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/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder 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/0475—Generative networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于非平衡数据的加密流量分类方法、设备及介质,方法包括:对原始流量进行切分过滤后进行数据包复合特征提取和数据包载荷特征提取;进行流量数据分析后设置基线,对低于基线值的流量送入WGAN‑GP网络进行训练,将高于基线值的流量送入OSS算法模型进行下采样获取平衡后的数据集合;按照预设比例划分为测试集和训练集,将训练集通过多层次时空特征提取模型进行训练;之后通过预设的特征融合模块和分类模块进行处理,获取训练好的多层次时空特征提取模型。本申请在数据处理时考虑了TCP数据包头中的tcp options字段通过两种采样方法实现数据平衡,采用的多层次时空特征提取模型使模型更加注重有区分度的特征信息,进而促进分类效果。
Description
技术领域
本文件涉及互联网加密流量分类技术领域,尤其涉及一种基于非平衡数据的加密流量分类方法、设备及介质。
背景技术
随着互联网的快速发展,信息安全问题逐渐成为国家、企业和个人关注的热点,加密流量已然成为互联网环境中不可或缺的重要组成部分。从2019年起,互联网中HTTPS加密流量占比已经超过HTTP流量。截至2020年4月,谷歌浏览器中启用加密服务的页面已经超过95%,TLS、IPSec等流量加密和认证技术加强了通信数据的保密性和可靠性,但是,非法攻击者借助流量数据加密的方法将木马或恶意软件数据进行加密,从而绕过防火墙和传统IDS设备的检测,造成严重安全隐患。比如广告软件、木马、恶意勒索软件等通过与命令和控制器服务器间的相互通信来执行恶意活动。因此,针对恶意加密流量或应用的识别任务成为了现阶段需要解决的难题。
流量识别任务可以归为三大类,分别是基于端口的流量分类方法,基于深层包的识别方式和基于统计的分类方法。基于端口号来进行流量检测的方式分类粒度不高,通过检测UDP或者TCP源端口及目的端口来识别流量所属协议,这种方法已经难以适用于现阶段的互联网环境。基于深层包检测(DPI,Deep Packet Inspection),这种分类方法关注于流量数据包整个包头和载荷内容,通过指纹匹配的方式来识别流量达到分类效果。但现阶段随着流量加密技术的使用,数据包载荷内容被进行了加密或协议封装,因此,指纹信息的提取将会变的非常困难。基于统计的分类方法,这种方法关注不同应用产生的不同特性和行为。基于统计的方式有两个优势,一是轻量级,二是可以应用于加密流量,不会根据载荷内容去匹配加密流量,通过人工提取到的特征数据去进行识别分类。但是人工选取特征会有一系列问题产生,除了耗时耗力以外,如何提取特征和选择特征是难题所在,同时也是较为热门的研究方向。
发明内容
本发明提供一种基于非平衡数据的加密流量分类方法、设备及介质,旨在解决上述问题。
本发明实施例提供了一种基于非平衡数据的加密流量分类方法,包括:
S1、对原始流量进行切分过滤后获取多个会话子文件,对多个会话子文件进行数据包复合特征提取和数据包载荷特征提取;
S2、对多个会话子文件进行流量数据分析后设置基线,对低于基线值的流量送入WGAN-GP网络进行训练,将高于基线值的流量送入OSS算法模型进行下采样获取平衡后的数据集合;
S3、将平衡后的数据集合按照预设比例划分为测试集和训练集,将训练集通过多层次时空特征提取模型进行训练;
S4、将训练后的数据通过预设的特征融合模块和分类模块进行处理,获取训练好的多层次时空特征提取模型;
S5、将测试集通过训练好的多层次时空特征提取模型获取加密流量分类。
本发明实施例提供了一种电子设备,包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行如上述基于非平衡数据的加密流量分类方法的步骤
本发明实施例提供了一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现如上述基于非平衡数据的加密流量分类方法的步骤。
采用本发明实施例通过WGAN-GP能够避免GAN网络的缺陷而更稳定的生成所需数据,而OSS算法能够对特定类别标签数据进行下采样以满足要求。考虑了TCP数据包头中的tcp options字段,并根据实验效果,尝试选择其Kind类型和tcp options字段长度两种特征作为基本特征进行提取,该方法对于后续模型的分类任务得到了较好的效果。本研究所提出的多层次特征提取模型结构在流量分类任务上有着不错的效果,主要因为该模型结构对于数据包的包头复合特征和载荷特征有所针对性,比如1D-CNN对于数据包载荷内容,即长字节序列数据有着很好的空间特征提取效果,而BiLSTM针对数据包间的依赖关系有着很好的时序特征提取效果,二者都配合transformer网络针对数据包间和字节间的依赖关系加权求和,从而使模型更加注重有区分度的特征信息,进而促进分类效果。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的基于非平衡数据的加密流量分类方法的流程图;
图2为本发明实施例的加密流量分类模型整体架构示意图;
图3为本发明实施例的数据包复合特征提取流程图;
图4为本发明实施例的数据平衡模块示意图;
图5为本发明实施例的BiLSTM网络结构示意图
图6为本发明实施例的Transformer编码器结构示意图;
图7为本发明实施例的1D-CNN模型架构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
下面对现有的基于传统机器学习的流量分类检测方法进行介绍:
胡斌等提出一种不依赖五元组信息的加密恶意流量检测方法,五元组信息通常是指数据包的源ip、目的ip、源端口、目的端口和协议五种信息,五元组信息中的ip地址和端口等信息在不同会话流量中不尽相同从而表现出了独特性,这种独特性并非区分流量间关系的良性特征,所以丢弃掉五元组信息,作者采用传统方式,人工针对数据包中TLS加密流量握手期间的明文信息进行分析,联合其载荷报文的内容使用机器学习的方法进行加密流量的分类。然而这种方法需要依靠人工进行明文信息特征的提取,并且提取到的特征不具备普适性。
LIU等通过对流量会话的流行为,TLS的握手明文信息和证书三个维度进行基本特征的提取,然后结合在线随机森林模型来实时的区分恶意加密流量,相比于传统基于端口和DPI的方法效果有显著提高。上面提到的方法多数要依赖于专家知识,需要人工费时费力去进行特征的选择和提取,
下面介绍现阶段主流的基于深度学习的流量分类方法,抛弃了传统人工特征的提取,采用“端到端”的形式完成特征提取到分类整个步骤,精度及效率相比传统方法有所提高。Zou等人是使用清华大学校园网的正常流量和沙箱运行的恶意流量为数据集,针对流量会话中前50个数据包的传输时间间隔、传输方向和数据包长度进行特征统计,然后基于长短期记忆网络(LSTM)进行训练,其准确率和误报率均优于基于决策树、随机森林等传统机器学习算法的识别模型。
WANG等将会话流量字节转换为灰度图,首先使用二维CNN提取流量空间特征,然后使用双向长短期记忆网络(BiLSTM)提取流量的时序特征,最终得到会话流量的时空特征进行后续分类取得较高的精度,整个特征提取及分类过程是一个端到端的结构,无需特征工程,避免了人工提取特征而耗时耗力。
程华等将加密流量的载荷内容通过Word2vec模型转换为句子向量(借鉴了自然语言处理领域(NLP)的知识),选择流量会话载荷内容前1000字节作为特征向量,先对特征向量的每一个字节信息进行维度300的词嵌入展开,然后对新的特征向量使用一维卷积神经网络CNN进行恶意C&C流量的识别,其中一维CNN借鉴NLP领域中的TextCNN的方法,使用多个大小不同的卷积核对不同层次的空间特征进行提取,最后将多个特征结果级联在一起,使用softmax函数进行分类。
Chen等介绍了模型Attention-CNN,采用1D-CNN和改进的BiLSTM针对加密应用流量进行分类,其中,BiLSTM主要针对流量会话的数据包头,传统时序和长度特征提取,同时,BiLSTM的输出部分引入了Attention机制,通过对BiLSTM最后一个时刻的隐藏层输出计算权重并进行加权求和来突出关键的流量特征,能够让模型重视关键特征,更精准的完成分类任务。1D-CNN主要针对会话流量中的载荷部分,使用最大池化层压缩特征维度,使用归一化层在不影响数据真实分布的前提下将数据尽量向原点靠拢,从而提高模型的训练速率。
Jiang等介绍了端到端的模型HST-MHSA,该模型基于流量层次结构,结合长短期记忆网络和TextCNN有效整合加密流量的多尺度局部特征和双层全局特征,最后引入多头注意力机制有效的针对关键特征进行增强提高特征区分度。该模型整体由两大部分组成,分别从数据包级别和会话级别两个角度考虑,首先采用词嵌入的方式编码数据包,数据包分别经过BiLSTM和TextCNN进行时空特征的提取,随后将本属于同一会话的流量数据包重新组合在一起形成会话,通过多头注意力机制对流量会话进行特征增强,同时,采用全局平均池化代替最大池化,避免了最大池化层对特征的损坏。
Wang等介绍了一种基于Bit级的DPI(深层包检测)加密流量检测方法,首先探究了加密流量中载荷内容的位指纹信息,使用0和1的比特位将加密流量的载荷内容和非加密流量的载荷内容区分出来,将其封装成为状态转换机,主要用于识别待测流量是加密流量还是非加密流量,然后使用CNN针对流量数据包中的明文握手信息,协议及剩余包长度等信息进行特征提取以实现加密流量分类。
Lin等提出了ET-BERT模型,该模型的核心是预训练模型BERT,BERT模型是自然语言处理领域(NLP)中兴起的,有效的针对文本上下文特征进行提取,本申请借鉴了此优点,将流量数据引入其中得到了很好的效果。
Dai等提出了GLADS模型,是一个通过“指标”机制配合“本地+全局”的模型框架,“指标”是一种借助滑动窗口处理的多模式输入方法,允许模型使用类似单一的模态方法从多模式输入中有效的提取特征,而这种“本地+全局”的框架很好的解决了流量数据输入不定长且速度性能问题。
FU等提出了一个基于实时无监督机器学习的恶意检测系统HyperVision,作者提出了流之间的属性和时间关系,使用图神经网络来记录流的交互行为,比如入度和出度。采用无监督学习的方式避免了标签的设计。并且,该模型能够通过流特征来识别未知攻击,有效区分恶意和良性加密流量。但该模型的缺点在于没有提取加密流量的明文握手或证书等信息,无法区分加密与非加密流量。
Xi等提出了基于数据增强的Tor流量检测系统,考虑到数据集的不平衡,将流量数据转换为灰度图像,使用多尺度融合的DCGAN来生成数据来平衡数据集,同时,使用SDAE数据编码器进行特征学习从而实现Tor流量的识别处理。
方法实施例
本发明实施例提供了一种基于非平衡数据的加密流量分类方法,图1为本发明实施例的一种基于非平衡数据的加密流量分类方法的流程图,根据图1所示,本发明实施例的基于非平衡数据的加密流量分类方法包括:
S1、对原始流量进行切分过滤后获取多个会话子文件,对所述多个会话子文件进行数据包复合特征提取和数据包载荷特征提取;
S1为对原始数据进行预处理,图2所示的加密流量分类模型整体架构示意图,给出了从原始pcap流量处理到基本特征提取的全部过程,主要分为三个步骤,分别为原始流量切分过滤,数据包复合特征提取和数据包载荷特征提取;
原始流量切分过滤的具体过程为:
由于公共数据集中的pcap原始流量文件庞大,单个文件中包含了多个地址或者进程端口的访问,所以按照相同的五元组信息对pcap文件进行切分是非常有必要的。使用开源的SplitCap工具针对原始流量按照Session模式进行切分,单个pcap文件被分别切分成多个pcap会话子文件,后续特征提取主要基于这些子文件来进行的。
考虑到一个会话文件中每个数据包的网络层ip地址或数据链路层MAC地址可能不尽相同,这种独特性如果不进行处理则会参与到后续算法模型的特征提取上,从而影响模型后续的分类效果。所以要进行流量匿名化,也就是将MAC地址进行删除,网络层中的IP地址全部设置为”0.0.0.0”,这样就会消除独特性。这里注意,具体做法是使用了python中的scapy工具,使用raw函数读取pcap文件中的流量字节可以直接跳过数据链路层中的MAC地址部分,相当于忽略了MAC地址信息。
考虑到数据集中含有TCP握手失败,DNS域名查询和LLMNR协议等无用会话,这类会话会影响到后续模型对流量的特征提取,需要将其进行删除以免影响后续步骤。具体操作是首先检测数据包是否为TCP数据包,然后检查文件中数据包数目是否小于3个,如果小于3个说明该会话没有达到基本的握手条件,从而进行删除。而LLMNR协议的特点是通过UDP传输,其目的IP固定为“224.0.0.252”,目的端口固定为“5355”,根据这两条过滤条件对会话文件进行筛选并删除。
数据包复合特征提取的过程包括:
数据包复合特征提取分为两个步骤,分别为传统特征提取和数据包头特征提取,图3为数据包复合特征提取的具体流程图。传统特征部分可以得到2维特征数据,数据包头部分可以得到42维度数据特征,二者融合共计44维度特征,下面具体对这两个步骤进行介绍。
(1)传统特征提取。
本研究针对每个pcap会话中数据包的到达时间间隔、数据包长度、数据包方向三个角度进行分析,主要用到了python中提供的scapy工具。在一个流量会话文件中含有多个数据包,通过scapy提供的time函数就可以得到每个数据包的到达时间,通过计算每个数据包到达时间的差值便可以得到时间间隔大小。数据包长度则是通过计算数据包原始流量字节数获取的,主要通过raw函数获取原始流量字节,再通过len函数得到具体字节长度大小。最后,数据包方向代表了流量交互的方向,事先定义每个会话文件中第一个数据包的源ip地址至目的ip地址为正方向,则后续数据包中与之相同则为正方向,反之为负方向。其中,方向特征具体提取出来并不需要额外作为特征维度,可以直接相乘在数据包长度上面,例如数据包长度为-728,代表该数据包为负方向并且长度为728字节大小,以上就是从三个角度考虑所得到的特征。
总结,假设有i条会话,我们在每个会话中截取n1个数据包,而通过上面传统特征提取之后得到的特征可以用[i,n1,2]来表示,这里的2代表两个维度,分别为数据包到达时间特征和带方向的长度特征。
(2)数据包头特征提取。
考虑到每个数据包所提取的包头特征维度需要保持一致大小,便于后续输入到算法模型当中,因此,所属TCP或UDP的数据包应当分开考虑,下面分别具体介绍。
TCP数据包特征提取:
图2中TCP数据包首先提取网络层IP包头特征20字节和TCP包头基本特征20字节数据,二者共计40字节数据。本研究除了这40字节数据以外,还针对tcp options字段进行特征提取。tcp options字段由Kind(1字节)、Length(1字节)和Info(n字节)组成,其中Kind表示option选项的类型,Length表示选项的长度,Info就是选项的具体信息内容。本研究重点在于分析数据包的Kind类型部分,表3表示Kind字段的全部类型,首先分析该TCP数据包是否含有tcp options字段,如果没有,则用整形6来填充,这里使用6来填充是因为6不属于任何Kind类别,便于区分。如果TCP数据包含有tcp options字段,则从所属类别和字段长度两个维度进行特征提取,所属类别使用Kind类型标号来表示。
表3 tcp options字段
总结一下,首先截取网络层IP包头和TCP包头基本特征共计40字节数据,然后检查包头是否含有tcp options字段,若有,从中再提取2种维度数据,若没有,则用整形6进行填充。具体实现时,使用python中的scapy工具能够对原始流量字节进行截取,再通过pytorch中的frombuffer函数可以将流量字节数据转换为整形数据,便于将上面提到的特征级联在一起形成42维度的数据特征。
UDP数据包特征提取:
UDP数据包特征分为两部分,网络层IP包头20字节和UDP包头特征8字节,由于要保证会话中数据包的特征长度一致,所以UDP数据包需要额外使用0x00进行填充直至42字节大小,即TCP数据包特征维度大小。
总结一下,假设数据集中有i条会话,每条会话截取n1个数据包,每个TCP/UDP数据包包头特征维度形状可以表示为[i,n1,42],其中42维度包括了IP包头20字节信息,TCP/UDP包头20字节信息和tcp options字段2种维度信息。
数据包载荷特征提取具体包括:
数据包载荷数据是分段提取,并非直接从会话文件中进行抽取。考虑到每个会话文件中含有多个数据包,每个数据包含有大小不同的载荷数据,故本研究设定每个会话文件中限定提取n2大小的字节数据,根据实验可知n2取3500较为合适。而具体的截取方式也做出限制,即每个数据包最多提取128字节大小的数据,直到截取长度达到n2字节为止。如果没有截取至n2字节数据,则使用0x00进行填充。
总结,假设有i个会话,设定每个会话截取n2字节数据,则数据包载荷特征形状可以用[i,n2]进行表示。其中,n2字节数据是来自会话中多个数据包载荷内容,并且是按照从上至下顺序依次访问每个数据包载荷信息,限定每个数据包截取最多128字节数据,若出现不足n2字节情况,则使用0x00进行填充。
S2、对多个会话子文件进行流量数据分析后设置基线,对低于基线值的流量送入WGAN-GP网络进行训练,将高于基线值的流量送入OSS算法模型进行下采样获取平衡后的数据集合;
数据集不平衡,在本研究问题上理解为每种标签类别所对应的流量会话数量不同,这种情况可能会对最终流量分类结果产生很大的影响。例如,后续算法模型可能对样本较多的类别给予更多的权重,而忽视样本较少的类别,从而影响模型对少数类别的识别准确度和泛化能力。还可能产生过拟合或欠拟合的情况,导致模型在测试集上表现很差。所以,在图2所示的数据平衡模块上,本方法采用OSS欠采样算法针对流量会话较多的类别数据进行下采样,使用WGAN-GP(改进的生成对抗网络GAN)针对流量会话较少的类别数据进行上采样,直到每个类别标签下的流量会话数目达到基本平衡为止。图4为数据平衡模块的流程图,下面针对OSS欠采样算法和WGAN-GP的基本原理和使用流程进行介绍。
OSS算法结合了KNN和Tomek links,能够去除多数类数据的噪声并进行采样,其基本原理不同于随机移除样本,而是事先对每个样本进行评估,在了解样本所含信息量大小的基础上再决定样本的移除。其中Tomek links是指(xi,xj)样本对,有如下关系:
d(xi,xj)<d(xi,xk)
d(xi,xj)<d(xj,xk)
公式中d(xi,xj)表示的是xi和xj之间的欧氏距离,而xj表示多数类数据,xi表示少数类数据,xk表示其他样本数据。而由Tomek links的定义可知,数据样本中被Tomek links标记的样本被划为噪声样本或边界样本,而OSS算法以最近邻算法(KNN)从样本数据中筛选出分类错误的样本,并在这些样本中找到Tomek links样本对,然后通过移除多数类样本并保留少数类样本以达到数据下采样的目的。
WGAN-GP是传统的生成对抗网络(GAN)的改进网络,传统的GAN网络有超参数敏感和模式崩塌等缺陷。超参数敏感是指网络的学习率、初始化状态和网络结构设置等超参数对GAN网络训练影响较大,微调参数会产生截然不同的训练结果。模式崩塌是指模型生成的样本单一,这是由于GAN网络中的判别器只能鉴别单个样本是否采样至真实分布,并不能对样本的多样性进行显式约束,从而导致模型生成的样本倾向于真实分布区间中少量的高质量样本,而不会学习到全部的真实分布。针对于GAN网络的缺陷,出现了WGAN-GP网络,WGAN-GP网络去除了GAN网络判别器的最后一层Sigmoid函数,并提出了梯度惩罚项(GradientPenalty)的方法来迫使判别器采用Earth-Mover距离和梯度惩罚项GP的差值作为损失Loss,损失函数定义如下:
其中,Loss(d)和Loss(g)分别代表网络中判别器和生成器的损失函数,fd代表判别器,gθ代表生成器;公式中的xi表示真实数据,zi表示随机生成的噪声数据;m代表一个batch的大小;gp是针对WGAN-GP网络中判别器的梯度惩罚函数,λ用来决定惩罚力度。通过WGAN-GP网络对数据集中样本过少的类型进行数据增强以达到数据平衡。
数据平衡模块的执行流程图如图4流程图可分为以下三个步骤。
(1)数量分析:针对流量数据的增强和下采样是需要基线来界定的,这里的基线(Baseline)是由如下公式所得:
其中,C代表数据标签类别的总数,ci代表标签类别;Sum函数求得每种流量数据标签中所含会话的数据;avg表示对每类标签会话数取平均。简单来说,Baseline就是每类标签所含流量会话的平均数。
有了基线会话数之后,通过计算每类标签所含流量会话数并且与基线数做差值,如果为正数,那就说明该类标签会话数高于平均会话数,需要通过OSS下采样处理。反之低于平均会话数,则需要WGAN-GP进行流量数据增强。因此,原始流量数据输入到数据平衡模块中后会自动化分为两组流量,将两组流量分别送入后续模块。
(2)WGAN-GP数据增强:将低于基线值的流量送入WGAN-GP网络进行训练,采
用Adam优化器,学习率设置为0.0001。其中,生成器是由线性层、自适应激活函数ReLU和dropout丢弃层组成,dropout参数设置为0.4。判别器是由线性层、自适应激活函数ReLU和dropout丢弃层组成,为了防止过拟合,dropout参数设置为0.5。
(3)OSS下采样:将高于基线值的流量送入OSS算法模型进行下采样,这里OSS
算法模块使用的是python中imblearn包中的OneSidedSelection函数。
S3、将所述平衡后的数据集合按照预设比例划分为测试集和训练集,将所述训练集通过多层次时空特征提取模型进行训练;
如图2所示整体框架图中算法模型部分,主要分为时序特征提取模块和空间特征提取模块两部分。其中,数据包复合特征送入框架中的时序特征提取模块,而数据包载荷特征送入空间特征提取模块,最后将两个模块的输出特征送入最终的特征融合与分类模块当中,下面针对每种模块的具体实现原理及流程进行介绍。
时序特征提取模块:
该模块主要用到了双向长短期记忆网络BiLSTM和Transformer的编码器部分。
(1)双向长短期记忆网络BiLSTM实现。
图5为BiLSTM的网络结构,输入层将数据包头复合特征分别送入Forward网络和Backward网络,最后将二者的输出结构进行拼接(Output),即如下形式。
其中,和/>分别代表反向和正向网络的输出,hi是二者级联后的结果。
(2)Transformer具体实现:
BiLSTM在处理会话流量中数据包之间的特征向量,在长距离传播中会损失部分信息且对重要特征信息不太敏感,因此,使用Transformer中的多头注意力机制针对BiLSTM最后一个时刻的隐藏层输出进行计算权重并加权求和,以便让网络模型能够关注重要的数据包特征提高分类效果。
Transformer原始的模型结构主要由解码器和编码器两部分组成,但本研究中数据集即流量会话数据特征有着定长的特点,故只采用transformer中的编码器部分。如图6为Tranformer的编码器部分,主要由多头注意力层和前馈神经网络构成。其中,注意力机制采取的是点积注意力,包括value、key和query三个输入,使用query和key计算出分配给每个值的权重分数,然后将权重与value计算加权和从而得到输出,计算公式如下:
Qi=QWi Q
其中,Q、K和V代表query、key和value矩阵,分别使用不同的权重矩阵和/>并行n次线性变换可以得到n个不同的数据包向量注意力/>dk为Key的维度。i的取值是1,2,...,n(n为注意力头的个数),WO表示可以学习的矩阵,作用是与多个注意力头拼接之后的结果进行线性变换。
在编码器的第二个部分,即前馈神经网络中有一个隐藏层的感知机,其输入和输出维度相同,考虑到映射能力和计算复杂度的平衡,设置隐藏层神经元数量为输入层的2倍。这里使用GuLU函数作为激活函数,相比于ReLU增加了随机性。GuLU函数的计算公式如下:
如图6所示,为了防止梯度消失问题的出现,多头多头注意力机制和前馈神经网络采用残差连接的方式进行。
本实验具体实现如下:
BiLSTM使用了pytorch中的nn.LSTM函数,其输入维度为44,隐藏层大小为20,不进行堆叠,方向数设置为2。Transformer中多头注意力头的数目为4个,注意力头的大小为11,其dropout设置为0.5,前馈神经网络由两个线性层,GuLU激活函数和丢弃层组成,其dropout设置为0.5。
空间特征提取模块:
该模块主要用到了一维卷积神经网络1D-CNN和Transformer的编码器部分。
(1)一维卷积神经网络(1D-CNN)的实现。
如图7所示,1D-CNN模型流程,主要由卷积层、池化层、丢弃层和归一化层四层组成,其中卷积层、归一化层、池化层和丢弃层和组成一个循环体重复两轮。在循环体中,卷积层的作用主要是对输入的数据包载荷数据进行空间特征提取,将全局特征信息保存在多个局部特征矩阵当中,而池化层采用最大池化对数据进行降维并特征压缩,丢弃层是为了防止过拟合,主要采用dropout方法。归一化层设置的目的是在不影响数据真实分布下将数据尽量向原点靠拢,在一定程度上提高模型的训练速度。
(2)Transformer具体实现。
该部分的Transformer模块具体实现和时序特征提取模块中的transformer模块原理基本相同,数据包载荷内容经过卷积神经网络进行空间特征的提取,单独使用一维卷积神经网络针对会话级别而言,对字节的重要程度并不敏感,因此采用transformer中的多头注意力机制捕捉字节间的依赖关系,从而赋予不同的权重,有助于模型注重重要的字节内容从而更好的提取重要的特征信息。
下面是具体实现:
在1D-CNN中,使用pytorch中的nn.Conv1d函数,第一轮循环时,输入通道大小为1,输出通道为32,卷积核大小为25,padding设置为12。第二轮中,输入通道大小为32,输出通道大小为64,卷积核大小为25,padding设置为12。在编码器结构中,多头注意力的头数为4个,其dropout设置为0.5,前馈神经网络由两个线性层,GuLU激活函数和丢弃层组成,其dropout设置为0.5。
S4、将所述训练后的数据通过预设的特征融合模块和分类模块进行处理,获取训练好的多层次时空特征提取模型;
如图2所示特征融合及分类部分,首先将时序特征处理模块的结果和空间特征提取模块的结果进行形状处理,便于后续特征融合。二者特征形状均为[i,256],其中i表示会话的总数,256为每个会话对应的特征数据,二者融合后总特征形状为[i,512]。
分类模块主要由线性层、丢弃层、ReLU激活函数和归一化层组成,将会话特征维度由512降至数据集标签类别数便可实现分类任务。
具体实现如下:
第一个线性层的参数是(512,256),归一化层参数为256,dropout参数为0.5。第二个线性层参数是(256,64),归一化层参数为256,dropout参数为0.5。最后一个线性层参数是(64,class),这里的class为最终分类数。
S5、将所述测试集通过所述训练好的多层次时空特征提取模型获取加密流量分类。
通过采用本发明实施例具备如下有益效果:
(1)从数据集平衡的角度来看,相比于现有研究使用的GAN和DCGAN等网络结构,WGAN-GP能够避免GAN网络的缺陷而更稳定的生成所需数据,而OSS算法能够对特定类别标签数据进行下采样以满足要求。
(2)从数据预处理角度来看,本方法考虑了TCP数据包头中的tcp options字段,并根据实验效果,尝试选择其Kind类型和tcp options字段长度两种特征作为基本特征进行提取,该方法对于后续模型的分类任务得到了较好的效果。
(3)从算法模型上看,本研究所提出的多层次(数据包级别和会话级别)特征提取模型结构在流量分类任务上有着不错的效果,主要因为该模型结构对于数据包的包头复合特征和载荷特征有所针对性,比如1D-CNN对于数据包载荷内容,即长字节序列数据有着很好的空间特征提取效果,而BiLSTM针对数据包间的依赖关系有着很好的时序特征提取效果,二者都配合transformer网络针对数据包间和字节间的依赖关系加权求和,从而使模型更加注重有区分度的特征信息,进而促进分类效果。
装置实施例一
本发明实施例提供了一种电子设备,包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行如上述方法实施例的步骤。
装置实施例二
一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现如上述方法实施例的步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于非平衡数据的加密流量分类方法,其特征在于,包括:
S1、对原始流量进行切分过滤后获取多个会话子文件,对所述多个会话子文件进行数据包复合特征提取和数据包载荷特征提取;
S2、对多个会话子文件进行流量数据分析后设置基线,对低于基线值的流量送入WGAN-GP网络进行训练,将高于基线值的流量送入OSS算法模型进行下采样获取平衡后的数据集合;
S3、将所述平衡后的数据集合按照预设比例划分为测试集和训练集,将所述训练集通过多层次时空特征提取模型进行训练;
S4、将所述训练后的数据通过预设的特征融合模块和分类模块进行处理,获取训练好的多层次时空特征提取模型;
S5、将所述测试集通过所述训练好的多层次时空特征提取模型获取加密流量分类。
2.根据权利要求1所述的方法,其特征在于,所述复合特征提取具体包括:
采用传统特征提取方式和数据包头特征提取方式相结合对数据包复合特征进行提取;
所述传统特征提取方式具体包括:获取每个会话子文件中数据包的到达时间间隔、数据包长度以及数据包方向,
所述数据包头特征提取方式具体包括:对TCP数据包及UDP数据包进行提取;对所述TCP数据包进行提取时首先提取网络层IP包头特征20字节和TCP包头基本特征20字节数据,并对tcp options字段进行特征提取;对UDP数据包进行提取时,提取网络层IP包头20字节和UDP包头特征8字节,额外使用预设字符进行填充直至42字节大小。
3.根据权利要求1所述的方法,其特征在于,所述数据包载荷特征提取具体包括:
对每个会话子文件的数据进行截取直到截取长度达到预设字节长度,如果没有截取至预设字节长度,则使用0x00进行填充。
4.根据权利要求1所述的方法,其特征在于,所述对多个会话子文件进行流量数据分析后设置基线,具体包括:
通过公式1获取基线:
其中,C代表数据标签类别的总数,ci代表标签类别;Sum函数求得每种流量数据标签中所含会话的数据;avg表示对每类标签会话数取平均。
5.根据权利要求1所述的方法,其特征在于,所述将所述训练集通过多层次时空特征提取模型进行训练具体包括:将数据包复合特征送入时序特征提取模块,将数据包载荷特征送入空间特征提取模块。
6.根据权利要求5所述的方法,其特征在于,所述将数据包复合特征送入时序特征提取模块具体包括:
双向长短期记忆网络BiLSTM和Transformer的编码器部分,所述BiLSTM的输入层;
将数据包头复合特征分别送入Forward网络和Backward网络,最后将二者的输出结构进行拼接,即如下形式;
其中,和/>分别代表反向和正向网络的输出,hi是二者级联后的结果。
7.根据权利要求5所述的方法,其特征在于,所述将数据包载荷特征送入空间特征提取模块具体包括:一维卷积神经网络1D-CNN和Transformer的编码器部分。
8.根据权利要求5所述的方法,其特征在于,所述S4具体包括:
通过特征融合模块将时序特征处理模块的结果和空间特征提取模块的结果进行形状处理;
通过分类处理模块的线性层、丢弃层、ReLU激活函数和归一化层将经过所述特征融合模块进行形状处理的数据的降至数据集标签类别数从而实现分类任务。
9.一种电子设备,包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行如权利要求1-8中任一项所述基于非平衡数据的加密流量分类方法的步骤。
10.一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现如权利要求1-8中任一项所述基于非平衡数据的加密流量分类方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963455.2A CN117056797A (zh) | 2023-08-01 | 2023-08-01 | 基于非平衡数据的加密流量分类方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963455.2A CN117056797A (zh) | 2023-08-01 | 2023-08-01 | 基于非平衡数据的加密流量分类方法、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117056797A true CN117056797A (zh) | 2023-11-14 |
Family
ID=88661778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310963455.2A Pending CN117056797A (zh) | 2023-08-01 | 2023-08-01 | 基于非平衡数据的加密流量分类方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117056797A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117614747A (zh) * | 2024-01-24 | 2024-02-27 | 青岛风飏智能科技有限公司 | 基于包头与载荷分离的多模型融合的流量分类方法及系统 |
-
2023
- 2023-08-01 CN CN202310963455.2A patent/CN117056797A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117614747A (zh) * | 2024-01-24 | 2024-02-27 | 青岛风飏智能科技有限公司 | 基于包头与载荷分离的多模型融合的流量分类方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shapira et al. | FlowPic: A generic representation for encrypted traffic classification and applications identification | |
WO2022041394A1 (zh) | 一种网络加密流量识别方法及装置 | |
CN113162908B (zh) | 一种基于深度学习的加密流量检测方法及系统 | |
CN113037730A (zh) | 基于多特征学习的网络加密流量分类方法及系统 | |
Marín et al. | Rawpower: Deep learning based anomaly detection from raw network traffic measurements | |
CN113179223A (zh) | 一种基于深度学习和序列化特征的网络应用识别方法及系统 | |
CN110417729A (zh) | 一种加密流量的服务与应用分类方法及系统 | |
CN112910853A (zh) | 基于混合特征的加密流量分类方法 | |
Wang et al. | Using CNN-based representation learning method for malicious traffic identification | |
CN112217763A (zh) | 一种基于机器学习的隐蔽tls通信流检测方法 | |
CN117056797A (zh) | 基于非平衡数据的加密流量分类方法、设备及介质 | |
Yu et al. | An encrypted malicious traffic detection system based on neural network | |
CN113472751A (zh) | 一种基于数据包头的加密流量识别方法及装置 | |
CN113364787A (zh) | 一种基于并联神经网络的僵尸网络流量检测方法 | |
CN114239737A (zh) | 一种基于时空特征与双层注意力的加密恶意流量检测方法 | |
CN114785563A (zh) | 一种软投票策略的加密恶意流量检测方法 | |
Wang et al. | Feature mining for encrypted malicious traffic detection with deep learning and other machine learning algorithms | |
Agrafiotis et al. | Image-based neural network models for malware traffic classification using pcap to picture conversion | |
Zhou et al. | Encrypted network traffic identification based on 2d-cnn model | |
CN114362988A (zh) | 网络流量的识别方法及装置 | |
Haghighat et al. | SAWANT: smart window based anomaly detection using netflow traffic | |
Dener et al. | RFSE-GRU: Data balanced classification model for mobile encrypted traffic in big data environment | |
CN113746707B (zh) | 一种基于分类器及网络结构的加密流量分类方法 | |
Yang | Anomaly traffic detection based on LSTM | |
Li et al. | TCMal: A Hybrid Deep Learning Model for Encrypted Malicious Traffic Classification |
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 |