本发明属于计算机网络安全,尤其涉及一种结合数据包语义的网络流量分类方法。
背景技术:
1、随着互联网的逐渐普及,网络流量日益增加,网络流量分类也随之成为重要的研究领域。网络流量分类旨在对来自不同网络应用或者web服务的网络流量进行识别,对网络管理与网络安全有重要意义。然而,在如今的网络环境中,加密流量占据了绝大部分,流量加密技术的广泛使用在保护互联网用户隐私的同时,也为恶意软件和网络中的不法分子提供了隐蔽手段,他们利用加密技术如tor、vpn等来逃避检测。因此,网络流量分类在防火墙、ips、ids、访问控制、qos等应用领域发挥着重要的作用,如何适应当今流量广泛加密的网络环境,并准确地进行网络流量分类成为当前网络流量分类任务所面临的主要挑战。
2、在互联网发展初期,对网络流量进行分类采用基于端口的方法,因为这一阶段的网络应用很少,并且都采用固定的端口进行通信。但由于动态端口技术的发展以及网络应用程序数量的增多,这种方法不再有效。在随后的研究中,往往采用深度包检测技术(dpi)对网络流量进行分类,这一技术使用网络流量数据包中的有效载荷来提取固定的模式或关键字,如设备信息、加密证书、指纹等。然而随着加密流量技术的发展,这种技术无法对加密后的数据包进行检测。一些研究结合网络流量统计特征,并采用机器学习算法来处理加密流量,这类方法的主要问题是泛化性差,模型表现严重依赖于专家对于特征的设计,难以面对当前复杂海量的网络应用程序。
3、针对上述传统方法存在的问题,目前的研究往往采用深度学习方法,并取得了显著的性能提升。目前采用深度学习方法的解决方案主要是使用深度学习技术从网络流量中自动提取特征向量,避免了手动提取向量的过程,使检测模型更具适应性。然而现有基于深度学习方法的研究依然存在很多问题。首先,现有的研究从网络流量中提取数据包或者网络流的特征向量,但是并没有充分结合网络通信双方之间的通信上下文,损失了这部分上下文信息。其次,现有方法在对数据包进行处理时,往往将数据包头和数据包内的有效载荷采用同样的方法进行处理,而数据包头并没有进行加密,不同于经过加密混淆过的有效载荷,包头部分的内容有着丰富的语义信息,而现有研究对这部分信息利用不足。
技术实现思路
1、本发明的目的在于提供一种结合数据包语义的网络流量分类方法,旨在解决现有网络流量分类方法存在对通信上下文利用不充分、对包头语义信息利用不充分的问题。
2、本发明是这样实现的,一种结合数据包语义的网络流量分类方法,所述方法包括以下步骤:
3、步骤s1:将数据包输入到网络流量处理工具,分别处理网络流量数据包的数据包头和有效载荷,分别得到二者的特征向量;
4、步骤s2:将数据包头的特征向量与有效载荷的特征向量进行融合,得到整个数据包的特征向量;
5、步骤s3:将特征向量中具有相同五元组的网络流量数据包归于同一通信过程,由同一通信过程中的网络流量数据包构成图,并进行分类。
6、本发明的进一步技术方案是:所述步骤s1包括以下步骤:
7、步骤s11:流量处理工具根据协议栈进行解析,得到数据链路层、网络层、传输层、应用层以及有效载荷各个网络层次的结果,将不加密的各个层次的数据包头解析结果聚合在一起,得到接近自然语言的协议解析结果;
8、步骤s12:将数据包头的解析结果输入到预训练语言模型中,得到数据包头的特征向量;
9、步骤s13:利用数据包有效负载中的字节信息,计算数据包有效负载的字节熵,作为数据包有效负载特征向量。
10、本发明的进一步技术方案是:步骤s13中,采用滑动窗口的方法计算字节熵,以2048字节窗口大小,以1024字节为步长来滑动,将每个滑动窗口的字节熵增加到直方图中,最终得到1*256维的有效负载特征向量。
11、本发明的进一步技术方案是:流量处理工具采用wireshark。
12、本发明的进一步技术方案是:所述步骤s2包括以下步骤:
13、步骤s21:将数据包包头特征向量与有效负载特征向量分别输入两个独立的滤波器进行计算,滤波器由两个线性层以及激活函数组成;
14、步骤s22:计算数据包包头特征向量与有效负载门控向量对应元素的乘积,以及有效负载特征向量与数据包包头门控向量对应元素的乘积;
15、步骤s23:将步骤s21中两个特征向量的计算结果进行拼接,以拼接后的特征向量来表示整个数据包的语义,作为数据包特征向量。
16、本发明的进一步技术方案是:所述步骤s3包括以下步骤:
17、步骤s31:分析所有网络流量数据包,对于每一个出现在相同五元组的数据包,视作它们处于同一通信过程,将其归到一起;
18、步骤s32:根据不同的传输层协议特点构图,若为tcp协议,则根据数据包的序号顺序作边,并且根据数据包之间的确认关系做边,若为udp协议,则仅根据数据包到达的顺序作边,图中的节点为网络流量数据包,节点的初始特征为所述步骤s2中最终求得的数据包特征向量;
19、步骤s33:使用图神经网络模型对整张图进行分类,由于图中的每个节点都具有相同的五元组,因此图的类别就是最终每个节点的类别,完成网络流量分类。
20、本发明的进一步技术方案是:所述五元组为源ip地址、目的ip地址、源端口、目的端口及传输层协议。
21、本发明的有益效果是:本发明根据不同传输层协议的特点,采用不同的方法来构图,充分表示不同的通信过程,以此利用数据包之间的上下文信息,弥补了现有方法没有利用上下文信息的缺陷。
1.一种结合数据包语义的网络流量分类方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的一种结合数据包语义的网络流量分类方法,其特征在于,所述步骤s1包括以下步骤:
3.根据权利要求2所述的一种结合数据包语义的网络流量分类方法,其特征在于,步骤s13中,采用滑动窗口的方法计算字节熵,以2048字节窗口大小,以1024字节为步长来滑动,将每个滑动窗口的字节熵增加到直方图中,最终得到1*256维的有效负载特征向量。
4.根据权利要求1所述的一种结合数据包语义的网络流量分类方法,其特征在于,流量处理工具采用wireshark。
5.根据权利要求1所述的一种结合数据包语义的网络流量分类方法,其特征在于,所述步骤s2包括以下步骤:
6.根据权利要求1所述的一种结合数据包语义的网络流量分类方法,其特征在于,所述步骤s3包括以下步骤:
7.根据权利要求1所述的一种结合数据包语义的网络流量分类方法,其特征在于,所述五元组为源ip地址、目的ip地址、源端口、目的端口及传输层协议。