CN116260736A - 一种基于深度学习的去中心化应用流量识别方法和系统 - Google Patents
一种基于深度学习的去中心化应用流量识别方法和系统 Download PDFInfo
- Publication number
- CN116260736A CN116260736A CN202310140377.6A CN202310140377A CN116260736A CN 116260736 A CN116260736 A CN 116260736A CN 202310140377 A CN202310140377 A CN 202310140377A CN 116260736 A CN116260736 A CN 116260736A
- Authority
- CN
- China
- Prior art keywords
- data
- network
- traffic
- layer
- filtering
- 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 72
- 238000013135 deep learning Methods 0.000 title claims abstract description 14
- 238000001914 filtration Methods 0.000 claims abstract description 44
- 238000012549 training Methods 0.000 claims abstract description 32
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims abstract description 27
- 238000007781 pre-processing Methods 0.000 claims abstract description 17
- 238000003062 neural network model Methods 0.000 claims abstract description 15
- 238000011176 pooling Methods 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 32
- 230000004913 activation Effects 0.000 claims description 11
- 210000002569 neuron Anatomy 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000006399 behavior Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 abstract description 13
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- 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
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于深度学习的去中心化应用流量识别方法和系统。该方法包括:采集去中心化应用使用过程中的网络流量数据;对采集的网络流量数据进行预处理,所述预处理包括流量过滤,并将过滤后的网络流量数据转化为图片形式;利用图片形式的网络流量数据训练神经网络模型;利用训练完成的神经网络模型对去中心化应用的实际网络流量进行分类识别。本发明将网络流量分类问题转化为图像分类问题,利用卷积神经网络在图像识别领域强大的学习能力训练出图流量分类器,能够显著提高分类器的测试准确率,有助于网络服务提供商与网络的管理者优化网络环境。
Description
技术领域
本发明涉及区块链智能合约安全技术领域,具体涉及一种基于深度学习的去中心化应用流量识别方法和系统。
背景技术
随着数字加密货币的快速发展,区块链技术逐渐被大众所熟悉,引起政界、商界、科技行业的普遍关注,区块链的相关研究与应用的数量与日俱增。越来越多的去中心化应用(Decentralized Applications,DApps)部署在区块链上,以实现匿名通信与数据共享。这些应用程序往往采用SSL/TLS(Secure Sockets Layer/Transport Layer Security)进行数据的加密传输保证流量载荷的安全性,且基于同一区块链平台的去中心化应用通常具有相似的SSL/TLS架构,以往传统的流量识别方式难以在新情景下得到较好的分类结果,需要探索更具针对性的分类方法。识别DApp流量可帮助互联网服务提供商分析DApp的用户数量、使用习惯,有助于DApp市场研究。网络管理员也可根据流量分类的结果优化网络环境。
针对流量识别问题学界与工业界提出了一系列的方法,这些方法主要可分为端口识别、深度包检测、行为模式识别、人工智能赋能识别,一般将前三种识别方式称为传统识别方式。端口识别根据数据包传输层中的端口号区分应用协议,进而识别具体应用。只需要在基础网络设备上配置规则即可,无需其他软硬件,且识别速度非常快,准确率高。但随着互联网规模的不断扩大,不少应用开始采用动态端口技术进行数据传输,端口识别技术的准确率大幅下降,已无法适应当前的网络环境。深度包检测识别技术深入数据包的载荷进行检测,提取数据包内容并进行模式匹配,不受五元组的变化限制且识别率相对较高,但无法对加密流量进行识别。此外,在深入数据包获取载荷进行匹配时需要消耗大量的计算资源,增加了网络设备的负担。行为模式识别技术不再根据单个数据包的具体内容信息进行分类,而是基于整个应用的行为进行分类。同一应用在面对不同主机目标传输数据流时会积累足够的信息(如周期性)用于消除主机间的差异,进而识别应用。人工智能赋能的识别技术是将人工智能技术引入流量的分类过程中,用机器学习算法学习网络流量中一些带有特征的信息,提高了分类的准确率与时效性。与传统分类方法相比,目前网络环境下人工智能流量分类的准确率与快速性都有较大提高。
发明内容
为了克服上述现有技术的不足,本发明提供一种基于深度学习的去中心化应用流量识别方法和系统,用于识别不同种类去中心化应用产生的流量,为网络优化提供参考。
为达到上述目的,本发明提供如下技术方案:
一种基于深度学习的去中心化应用流量识别方法,包括以下步骤:
采集去中心化应用使用过程中的网络流量数据;
对采集的网络流量数据进行预处理,所述预处理包括流量过滤,并将过滤后的网络流量数据转化为图片形式;
利用图片形式的网络流量数据训练神经网络模型;
利用训练完成的神经网络模型对去中心化应用的实际网络流量进行分类识别。
进一步地,所述流量过滤包括:域过滤、包过滤以及流过滤;所述域过滤的目的是过滤掉与目标应用无关的流量;所述包过滤的目的是滤除没有带来任何有助于描述流量特征的数据包;所述流过滤的目的是分割数据流,将目标应用的流量按五元组与时间间隔划分出流,其中流表示在单个TCP会话期间两个对等方之间交换的TCP数据包的时序序列。
进一步地,所述域过滤包括:基于上文背景流量分析的结果过滤掉局域网内的数据包以及本机产生的背景流量;利用会话统计信息,结合网络信息、会话时长、发包数量对IP地址进行二次过滤,目的是筛除无关流以及数据量较小的相关流,保留行为特征更为明显的数据量较大的相关流。
进一步地,所述流过滤中划分流的时间阈值选取为4.5秒。
进一步地,所述将过滤后的网络流量数据转化为图片形式,包括:每个流中用于构造图片的包数设置为25,每个包截取前40个字节的数据,包含网络层和传输层的报头信息并摒除加密后的负载信息;包数不足的流使用黑色像素点填充。
进一步地,所述神经网络模型为卷积神经网络模型;所述卷积神经网络模型包括:
输入层,用于读取经过预处理的图片数据,输入为1×25×320像素的单通道图像数据;
卷积层C1,使用大小为3的卷积核,滑动步长的取值设为1,输出5通道数据,图像经过卷积后输出张量尺寸变为5×23×318;一次卷积实现后,将输出张量通过ReLU激活函数引入非线性因素并提高学习速度;
池化层P1,选取2×2的池化核,滑动步长取值为2,采用最大池化方式压缩特征,输出张量尺寸为5×11×159。
卷积层C2,池化层P1的输出张量作为卷积层C2的输入张量,卷积层C2的下采样尺寸为3×3,滑动步长为1,包含10个卷积核,卷积后张量尺寸变为10×9×157,再次将卷积结果通过ReLU激活函数;
池化层P2,与池化层P1结构相同,池化核尺寸为2×2,步长设置为2,采用最大池化方式,输出张量尺寸为10×4×78;
全连接层Fc1,包含120个神经元,将池化层的输出张量中3120个元素映射到120维的特征空间中,再经过ReLU函数;
全连接层Fc2,包含84个神经元,将120维特征映射到84维,再接ReLU函数;
输出层Output,其目的是将隐层中的高维特征映射到标签空间中,该输出层包含9个神经元,得到9维的特征,利用Softmax函数得到对应样本映射到每个标签的概率。
进一步地,所述卷积神经网络模型的超参数包括Epoch、Batch Size、LearningRate、Optimizer和激活函数;在训练阶段分别改变每个超参数,通过估计超参数的梯度方向来决定增加或减少超参数的大小,完成这一过程后选择所有超参数的最佳的结果进行组合;使用准确度作为评估超参数梯度方向的性能指标,准确度定义为所有正确分类的样本占总样本数的比例。
一种基于深度学习的去中心化应用流量识别系统,其包括:
流量数据采集模块,用于采集去中心化应用使用过程中的网络流量数据;
流量数据预处理模块,用于对采集的网络流量数据进行预处理,所述预处理包括流量过滤,并将过滤后的网络流量数据转化为图片形式;
模型训练模块,用于利用图片形式的网络流量数据训练神经网络模型;
流量识别模块,用于利用训练完成的神经网络模型对去中心化应用的实际网络流量进行分类识别。
相对于现有技术,本发明的有益效果在于:
(1)本发明提出的将流量特征转化为图形式存储的方法能较为完整的表示网络流量的细节特征,可以实现更精细化的识别。
(2)本发明提出的去中心化应用识别方法可以识别不同区块链上的不同种类的去中心化应用。不同区块链的SSL/TLS协议细节有所不同,不同种类应用的数据交换过程存在差异。本发明的流量过滤过程专注于提取数据交换过程中的时序特性,能较好的表达协议实现过程的差异性,进而使得卷积神经网络更好的学习不同链上不同种应用的特征。
(3)本发明提出的去中心化应用识别方法可训练出有效的卷积神经网路模型,能在较短的时间内对大量去中心化应用流量进行较准确的区分。
(4)本发明将网络流量分类问题转化为图像分类问题,利用卷积神经网络在图像识别领域强大的学习能力,训练出一个图流量分类器。利用流量采集软件收集了9个运行在主流区块链平台上的去中心化应用的流量数据,共52797个数据包,864个流进行训练,分类器的测试准确率达到90%以上,有助于网络服务提供商与网络的管理者优化网络环境。
附图说明
图1是本发明实施例所述方法中网络流量采集过程示意图。
图2是本发明实施例所述方法中流分割算法流程图。
图3是本发明实施例所述方法中流图转化算法流程图。
图4是本发明实施例所述方法中流转图算法伪代码图。
图5是本发明实施例所述方法中卷积神经网络模型示意图。
图6是本发明实施例所述方法中卷积神经网络算法图。
图7是本发明实施例所述方法中wireshark流量数据示例图。
图8是本发明实施例所述方法中转化后的流图示例。
图9是本发明实施例所述方法中卷积神经网络模型超参数选取图。
图10是本发明的基于卷积神经网络的DApp流量分类器和其他分类器的准确率对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下通过附图及实施例对本发明作进一步详细说明。但是应该理解,此处所描述的具体实施例仅用以解释本发明,并不用于限制本发明的范围。
本发明公开了一种基于深度学习的去中心化应用流量识别方法,该方法由四部分组成:流量数据的采集、流量数据预处理、卷积神经网络模型的建立、卷积神经网络模型的训练。
1.流量数据的采集:
图1显示了去中心化应用使用过程网络流量数据的采集过程。正式采集应用流量之前需要首先采集计算机运行过程中产生的背景流量,本发明使用网络抓包工具在本机环境下采集流量数据,在每个去中心化应用正式采集之前收集了2分钟的系统背景流量。随后在PC上使用Chrome浏览器访问每个去中心化应用的页面,每个页面访问多次获取冗余流量,两次访问之间间隔一段时间以保证后一次会话开始时前一次会话已经结束,整个流程可由脚本自动控制。
2.流量数据预处理:
采集的网络流量会被抓包工具捕获并保存在本地,过滤掉系统运行环境产生的背景流量,以及其他没有带来任何有助于描述流量特征的附加信息的数据包,如重传数据包、确认标志数据包、TCP握手包等,每个数据包的显示信息包括:数据包的编号、数据包到达的时间、源地址的IP和端口号、目的地址的IP和端口号、传输所使用的协议、数据包长度以及数据包所包含的部分信息,过滤后的流量保存为pcap格式文件交给后续程序处理。
流量过滤主要包含三个步骤:域过滤、包过滤以及流过滤。本发明利用wireshark软件进行前两个步骤的处理,流过滤由Python脚本进行处理。
(1)域过滤
域过滤的主要目的是过滤掉与目标应用无关的流量。本发明借由wireshark的过滤功能,基于上文背景流量分析的结果过滤掉局域网内的数据包以及本机产生的背景流量。
为了进一步提高剩余数据包与应用的相关性,筛除掉浏览器运行过程中可能产生的新的无关流量,本发明利用会话统计信息,结合网络信息、会话时长、发包数量对IP地址进行了二次过滤,目的是筛除无关流以及数据量较小的相关流,保留行为特征更为明显的数据量较大的相关流。
这样的筛选方法可能会将浏览器运行过程中产生的数据量较大的无关流保存,经过横向对比多组应用流量采集的过滤规则,可保证并无相同IP的较大流存在。
(2)包过滤
包过滤的目的是滤除没有带来任何有助于描述流量特征的数据包,例如TCP的握手包、重传的数据包以及ACK数据包。由于国内网络环境限制,采集到的流量中充斥着大量重传和乱序数据包。
(3)流过滤
流过滤的目的是分割数据流,将目标应用的流量按五元组(源IP地址,源端口,目的IP地址,目的端口,传输协议)与时间间隔划分出流。本发明中的流表示在单个TCP会话期间两个对等方之间交换的TCP数据包的时序序列。具体流程如图2所示。
为方便后续卷积神经网络的处理,需要将筛选出来的目标应用流量处理成图片的形式并划分好测试集与训练集。首先使用Python中的scapy模块读取包含单个应用流量的pcap文件,为了获取基于网络流的特征,需要将整体流量依照五元组和时间阈值划分为流,95%的数据包都将在上一个数据包到达后的4.43秒内抵达,本发明划分流的时间阈值选取为4.5秒。每个流中用于构造图片的包数也将会影响分类器的性能,构造图的流程如图3所示。为了在适当的时间开销下获得较高的精度,本发明将每个流选取的包数设置为25,每个包截取前40个字节的数据,包含了网络层和传输层的报头信息并摒除加密后的负载信息。如包数不足的流将使用黑色像素点填充。最后将处理出来的数据按10折交叉验证的方式划分训练集与检验集。
图3中,“将流转化为图”的方法是:将应用流中的每个数据包以比特数组形式存储,使得每个流都可表征成多个比特数组形成的01矩阵,再将01矩阵中的0对应黑色像素点,1对应白色像素点转化为图,详细算法见图4。以此可将应用流转化为保留了大部分隐性特征的图片形式,同时便于后续卷积神经网络的处理。
3.卷积神经网络模型的建立:
将流量数据转为图片形式后,去中心化应用流量的分类问题就可转变为图片分类问题,卷积神经网络的引入给图像分类领域带来了很大的提升。LeNet-5是卷积神经网络的经典模型,采用七层的结构,在手写体字符图像识别方面取得了极高的正确率。本发明使用的模型以LeNet-5模型为基础,针对实际问题对模型进行了改进,具体实现的模型结构如图5所示。
(1)输入层,用于读取经过预处理的图片数据。本发明输入为1×25×320像素的单通道图像数据。
(2)卷积层C1,第一个卷积层使用大小为3的卷积核,滑动步长的取值设为1,输出5通道数据,图像经过卷积后输出张量尺寸变为5×23×318。一次卷积实现后,将输出张量通过ReLU激活函数引入非线性因素并提高学习速度。
(3)池化层P1,第一个池化层选取2×2的池化核,滑动步长取值为2,采用最大池化方式压缩特征。最大池化会选取池化核内最大的数值作为池化核的代表。池化操作后,图像尺寸减半,特征面个数不变,输出张量尺寸变为5×11×159。
(4)卷积层C2,池化层P1的输出张量作为第二个卷积层的输入张量,该层卷积下采样尺寸为3×3,滑动步长为1,包含10个卷积核,卷积后张量尺寸变为10×9×157。再次将卷积结果通过ReLU激活函数。
(5)池化层P2,第二个池化层与池化层P1结构相同,池化核尺寸为2×2,步长设置为2,采用最大池化法,输出张量尺寸为10×4×78。
(6)全连接层Fc1,第一个全连接层Fc1中包含120个神经元,将池化层的输出张量中3120个元素映射到120维的特征空间中,再经过ReLU函数。
(7)全连接层Fc2,第二个全连接层有84个神经元,将120维特征映射到84维,再接ReLU函数。增加全连接层的个数能显著提高模型对非线性特征的拟合能力。
(8)输出层Output,输出层的目的是将隐层中的高维特征映射到标签空间中。本模型中输出层包含9个神经元,得到9维的特征,利用Softmax函数得到对应样本映射到每个标签的概率。Softmax函数能把输入值映射到0-1之间并归一化保证和为1,可以方便的计算标注样本之间的差距。设有数组V,Vi为V中第i个元素,则Vi的Softmax值如式(1)所示。
在机器学习中通过损失函数定量的分析分类器的预测结果与实际样本标签之间的差距,以此衡量模型预测的好坏,常用于模型训练过程中调整梯度方向。本发明中选取交叉熵损失函数,利用Softmax函数得到的概率结果下,相较于均方误差(MSE)函数交叉熵函数往往具有更好的收敛性。
交叉熵函数的公式如式(2)所示。
Li代表该样本的损失值,log函数中是该样本的Softmax值。
4.卷积神经网络模型的训练:
训练过程需要将特征提取过程中的数据传入建立的模型之中,神经网络会根据训练与样本的实际值之间的偏差逐步调整权重矩阵,卷积神经网络的伪代码如图6所示。训练卷积神界网络的一个重要步骤是调整超参数,超参数的调整用于在方差、偏差和分类性能之间进行权衡。由于神经网络的超参数众多,寻找最优的超参数选择是一个十分具有挑战性的任务。超参数主要包括Epoch、Batch Size、Learning Rate、Optimizer和激活函数五个部分。
(1)Epoch:指代所有的数据送入网络中完成一次前向计算及反向传播的过程,一般来说增加Epoch的数量可使模型在训练集上的精度更大,但过大的Epoch也会导致模型过拟合。
(2)Batch Size:影响模型的收敛速度与随机梯度的噪声,经验显示训练误差较小情况下批数量太大模型的泛化性能会变小。
(3)Learning Rate:用于控制误差反向传播时的利用成度。深度学习网络的泛化能力与批大小与学习率的比值成负相关,在批处理大小固定的情况下学习率较大时模型的泛化能力会更好。
(4)Optimizer:用来更新和计算影响模型训练和模型输出的算法,使其逼近或达到最优值,从而最小化(或最大化)损失函数。
(5)激活函数:用于增加模型对非线性函数的拟合能力。
本发明可在训练阶段分别改变每个超参数,通过估计超参数的梯度方向来决定增加或减少超参数的大小。完成这一过程后选择所有超参数的最终最佳的结果进行组合。使用准确度作为评估超参数梯度方向的性能指标,准确度定义为所有正确分类的样本占总样本数的比例。
5.本发明的关键内容
综合前文内容可知,本发明的关键内容包括:
1)一种基于图的网络流量特征的提取方式,其步骤包括:
(1)网络流量数据采集,利用网络流量采集器(如wireshark等)收集去中心化应用使用过程中所产生的网络流量;
(2)滤除已采集流量中与应用无关的背景流量,并构造基于网络流的流量特征。目标应用流量的采集过程中也会采集到非目标应用的流量,目标应用流量占全体流量的比例越高训练出来的分类器准确率就越好,为此我们需要对采集到的流量进行清洗,剔除无关流量;
(3)将流量特征进一步转化为图的形式存储。
2)一种对分类流量特征的人工智能模型,其步骤包括:
(1)针对输入数据的特征构建表达能力合适的卷积神经网络模型;
(2)利用特征数据对卷积神经网络模型的参数进行训练;
(3)针对实际网络流量进行分类识别,并将结果汇总。
6.分析与评估:
测试环境:
为了对本发明方法的漏洞检测能力和检测开销进行测试,本发明模型所使用的脚本主要基于Python语言实现,采用的版本为3.9版本。所有的过程均在一台Win10家庭版(Intel(R)Core(TM)i5-8300H CPU@2.30GHz)的个人PC上进行,内存大小为16GB。
数据采集:
本次测试在DApp排名网站www.dapp.com上选取了9个活动用户数量较高的去中心化应用,其中大部分是基于以太坊主链网络的,少数部署于Binance BSC(Binance SmartChain)。Binance BSC是币安公司创建的一个允许节点、代币持有者、开发者和用户均能获益的生态系统,它原生支持跨链的通讯和交易,成为了除以太坊公链之外的第二个选择。
共收集到背景流量数据包6155个,通过调整过滤策略发现其中局域网内数据包共5564个,占比90.4%。本机产生的静态流量数据包591个,占比9.6%。经分析包含61个TCP流,14个UDP流共44个IP地址。
采集到的去中心化应用流量的突发(burst)的包数大多在25以内,且如图7所示突发形状存在一定的相似性,这也为通过流特征进行应用分类的可行性提供了一定的支撑。
所采集的数据集所用的访问都使用Chrome浏览器进行,共采集9个去中心化应用的流量52797个数据包,864个流。所采集的应用与对应数据量如表1所示。
以应用Cent为例,6258个数据包按照五元组和时间间隔可分为164个流,分析可得每个流包含数据包数量的平均数约为38.16,中位数为5,经转化后部分流图例如图8所示。
表1采集数据量
去中心化应用 | 区块链 | 包数 | 流数 |
Aave | ethernet | 6392 | 225 |
Bancor | ethernet | 9731 | 99 |
Cent | ethernet | 6258 | 164 |
Ethermon | ethernet | 10755 | 46 |
Harvest | ethernet | 4429 | 143 |
idex | ethernet | 3143 | 87 |
joyso | ethernet | 1276 | 53 |
mdex | binance BSC | 1999 | 69 |
pancakeswap | binance BSC | 8814 | 38 |
卷积神经网络模型构建:主要涉及Epoch、Batch Size两个方面的调整,同时针对本发明对构造图片数据包的数量也进行了调整测试。Optimizer选取Adam优化算法,是对RMSprop优化器与Momentum优化器两者的扩展,利用动量和自适应学习率来加快模型的收敛速度,占用较小的内存即可获得很好的效果;Learning rate使用Adam默认的0.01;激活函数选取Relu函数,其优点在于能有效避免梯度爆炸和梯度消失问题,同时能简化计算过程。最终超参数选取结果如图9所示。
(1)Epoch参数选取对比
表2显示模型在不同epoch设置下的训练时间、测试准确度,测试准确度与训练准确度之间的差值。分类器可在5个epoch内达到0.87的分类精度,一般来说,增加epoch的数量有助于提高分类的准确度,当epoch大于10后,随着epoch数量的增加准确度的增量逐渐变小,而分类器训练时间显著增加,因此本发明选取20个epoch来取得准确度与训练时间之间的平衡。
表2Epoch选取
Epoch | 1 | 5 | 10 | 15 | 20 |
训练时间 | 1.988 | 10.139 | 21.138 | 35.483 | 44.405 |
测试准确度 | 0.392 | 0.867 | 0.916 | 0.924 | 0.934 |
差值 | 0.0882 | 0.0353 | 0.0771 | 0.0964 | 0.0663 |
(2)Batch Size参数选取对比
如表3所示,随batch size的增大训练时间逐渐减小,测试准确度与差值在batchsize为9时达到最佳。
表3Batch Size选取
Batch Size | 5 | 7 | 9 | 10 | 15 |
训练时间 | 42.823 | 37.356 | 32.916 | 32.051 | 30.595 |
测试准确度 | 0.94 | 0.922 | 0.958 | 0.928 | 0.904 |
差值 | 0.0602 | 0.0783 | 0.0422 | 0.0723 | 0.0949 |
(3)数据包数量选取对比
每个流中用于构造图片数据的数据包数量也会影响分类器的性能,过少的包数无法提取出更具代表性的应用流量特征,而过多的数据包将降低分类器的泛化性能。本发明在6-40的范围内调整数据包数量,为了获得更高的精度将包数设置为25,精确度随数据包数量的改变而变化的情况如表4所示。
表4数据包数量
数据包数量 | 6 | 10 | 20 | 25 | 30 |
测试准确度 | 0.842 | 0.866 | 0.916 | 0.924 | 0.922 |
分类器性能评估:
多分类问题的评价指标有很多,本发明仅使用准确率来对模型的性能进行评估。准确率代表分类正确的样本占总样本数的比例,对于一个包含m个样本的多分类问题,分类f的准确率可表示为式(3)。
其中xi代表第i个样本,yi代表第i个样本对应的标签。
本次实验在封闭世界设定中进行测试,在封闭的世界环境设定中,目标是识别用户对某个受监控的去中心化应用集合的访问,这可以被视为一个多分类问题。
如图10所示,在相同的数据集下,对比浅层神经网络模型实现的分类器与传统基于报文长度的分类器,本发明的基于卷积神界网络的DApp流量分类器准确率明显高于前两类分类器。
由于去中心化应用流量的不可见性与混乱性,基于报文长度特征分类器的性能并不是很好,只有0.618的准确率,说明在去中心化应用流量中与报文长度相关的特征并不明显,这是因为基于区块链技术的去中心化应用在网络层进行数据传输时会将加密流量填充至一定长度,仅根据报文长度无法准确获取可供分类的信息。
浅层网络分类器对图像数据的学习能力低于卷积神经网络,且较浅的网络层次难以有效的学到高维的特征,分类准确度仍然没有超过本发明所构建的分类器。
本发明的另一实施例提供一种基于深度学习的去中心化应用流量识别系统,其包括:
流量数据采集模块,用于采集去中心化应用使用过程中的网络流量数据;
流量数据预处理模块,用于对采集的网络流量数据进行预处理,所述预处理包括流量过滤,并将过滤后的网络流量数据转化为图片形式;
模型训练模块,用于利用图片形式的网络流量数据训练神经网络模型;
流量识别模块,用于利用训练完成的神经网络模型对去中心化应用的实际网络流量进行分类识别。
其中各模块的具体实施过程参见前文对本发明方法的描述。
本发明的另一实施例提供一种计算机设备(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
本发明的另一实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (10)
1.一种基于深度学习的去中心化应用流量识别方法,其特征在于,包括以下步骤:
采集去中心化应用使用过程中的网络流量数据;
对采集的网络流量数据进行预处理,所述预处理包括流量过滤,并将过滤后的网络流量数据转化为图片形式;
利用图片形式的网络流量数据训练神经网络模型;
利用训练完成的神经网络模型对去中心化应用的实际网络流量进行分类识别。
2.根据权利要求1所述的方法,其特征在于,所述流量过滤包括:域过滤、包过滤以及流过滤;所述域过滤的目的是过滤掉与目标应用无关的流量;所述包过滤的目的是滤除没有带来任何有助于描述流量特征的数据包;所述流过滤的目的是分割数据流,将目标应用的流量按五元组与时间间隔划分出流,其中流表示在单个TCP会话期间两个对等方之间交换的TCP数据包的时序序列。
3.根据权利要求2所述的方法,其特征在于,所述域过滤包括:基于上文背景流量分析的结果过滤掉局域网内的数据包以及本机产生的背景流量;利用会话统计信息,结合网络信息、会话时长、发包数量对IP地址进行二次过滤,目的是筛除无关流以及数据量较小的相关流,保留行为特征更为明显的数据量较大的相关流。
4.根据权利要求2所述的方法,其特征在于,所述流过滤中划分流的时间阈值选取为4.5秒。
5.根据权利要求1所述的方法,其特征在于,所述将过滤后的网络流量数据转化为图片形式,包括:每个流中用于构造图片的包数设置为25,每个包截取前40个字节的数据,包含网络层和传输层的报头信息并摒除加密后的负载信息;包数不足的流使用黑色像素点填充。
6.根据权利要求1所述的方法,其特征在于,所述神经网络模型为卷积神经网络模型;所述卷积神经网络模型包括:
输入层,用于读取经过预处理的图片数据,输入为1×25×320像素的单通道图像数据;
卷积层C1,使用大小为3的卷积核,滑动步长的取值设为1,输出5通道数据,图像经过卷积后输出张量尺寸变为5×23×318;一次卷积实现后,将输出张量通过ReLU激活函数引入非线性因素并提高学习速度;
池化层P1,选取2×2的池化核,滑动步长取值为2,采用最大池化方式压缩特征,输出张量尺寸为5×11×159。
卷积层C2,池化层P1的输出张量作为卷积层C2的输入张量,卷积层C2的下采样尺寸为3×3,滑动步长为1,包含10个卷积核,卷积后张量尺寸变为10×9×157,再次将卷积结果通过ReLU激活函数;
池化层P2,与池化层P1结构相同,池化核尺寸为2×2,步长设置为2,采用最大池化方式,输出张量尺寸为10×4×78;
全连接层Fc1,包含120个神经元,将池化层的输出张量中3120个元素映射到120维的特征空间中,再经过ReLU函数;
全连接层Fc2,包含84个神经元,将120维特征映射到84维,再接ReLU函数;
输出层Output,其目的是将隐层中的高维特征映射到标签空间中,该输出层包含9个神经元,得到9维的特征,利用Softmax函数得到对应样本映射到每个标签的概率。
7.根据权利要求6所述的方法,其特征在于,所述卷积神经网络模型的超参数包括Epoch、Batch Size、Learning Rate、Optimizer和激活函数;在训练阶段分别改变每个超参数,通过估计超参数的梯度方向来决定增加或减少超参数的大小,完成这一过程后选择所有超参数的最佳的结果进行组合;使用准确度作为评估超参数梯度方向的性能指标,准确度定义为所有正确分类的样本占总样本数的比例。
8.一种基于深度学习的去中心化应用流量识别系统,其特征在于,包括:
流量数据采集模块,用于采集去中心化应用使用过程中的网络流量数据;
流量数据预处理模块,用于对采集的网络流量数据进行预处理,所述预处理包括流量过滤,并将过滤后的网络流量数据转化为图片形式;
模型训练模块,用于利用图片形式的网络流量数据训练神经网络模型;
流量识别模块,用于利用训练完成的神经网络模型对去中心化应用的实际网络流量进行分类识别。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一项所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140377.6A CN116260736A (zh) | 2023-02-08 | 2023-02-08 | 一种基于深度学习的去中心化应用流量识别方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140377.6A CN116260736A (zh) | 2023-02-08 | 2023-02-08 | 一种基于深度学习的去中心化应用流量识别方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116260736A true CN116260736A (zh) | 2023-06-13 |
Family
ID=86685905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310140377.6A Pending CN116260736A (zh) | 2023-02-08 | 2023-02-08 | 一种基于深度学习的去中心化应用流量识别方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116260736A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781634A (zh) * | 2023-06-21 | 2023-09-19 | 中国电子产业工程有限公司 | 一种基于流量波形的网络应用分类及管理方法 |
-
2023
- 2023-02-08 CN CN202310140377.6A patent/CN116260736A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781634A (zh) * | 2023-06-21 | 2023-09-19 | 中国电子产业工程有限公司 | 一种基于流量波形的网络应用分类及管理方法 |
CN116781634B (zh) * | 2023-06-21 | 2024-04-05 | 中国电子产业工程有限公司 | 一种基于流量波形的网络应用分类及管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108388927B (zh) | 基于深度卷积孪生网络的小样本极化sar地物分类方法 | |
CN112953924B (zh) | 网络异常流量检测方法、系统、存储介质、终端及应用 | |
CN109284606B (zh) | 基于经验特征与卷积神经网络的数据流异常检测系统 | |
CN111340191B (zh) | 基于集成学习的僵尸网络恶意流量分类方法及系统 | |
CN114172748A (zh) | 一种加密恶意流量检测方法 | |
CN113206860B (zh) | 一种基于机器学习和特征选择的DRDoS攻击检测方法 | |
CN112422531A (zh) | 基于CNN和XGBoost的网络流量异常行为检测方法 | |
CN110351291B (zh) | 基于多尺度卷积神经网络的DDoS攻击检测方法及装置 | |
CN113378899B (zh) | 非正常账号识别方法、装置、设备和存储介质 | |
CN110808971A (zh) | 一种基于深度嵌入的未知恶意流量主动检测系统及方法 | |
CN117614742B (zh) | 一种蜜点感知增强的恶意流量检测方法 | |
CN116260736A (zh) | 一种基于深度学习的去中心化应用流量识别方法和系统 | |
CN112884121A (zh) | 基于生成对抗深度卷积网络的流量识别方法 | |
CN116366313A (zh) | 一种小样本异常流量检测方法和系统 | |
CN114726802A (zh) | 一种基于不同数据维度的网络流量识别方法及装置 | |
CN107633527B (zh) | 基于全卷积神经网络的目标追踪方法及装置 | |
CN114362988B (zh) | 网络流量的识别方法及装置 | |
CN110995713A (zh) | 一种基于卷积神经网络的僵尸网络检测系统及方法 | |
CN114884704B (zh) | 一种基于对合和投票的网络流量异常行为检测方法和系统 | |
CN117375897A (zh) | 用于加密流量威胁检测的自监督模型训练方法和装置 | |
CN112383488A (zh) | 一种适用于加密与非加密数据流的内容识别方法 | |
CN116094971A (zh) | 一种工控协议识别方法、装置、电子设备及存储介质 | |
CN115002031A (zh) | 基于不平衡数据分布的联邦学习网络流量分类模型训练方法、模型及分类方法 | |
CN114021637A (zh) | 一种基于度量空间下去中心化应用加密流量分类方法及装置 | |
Zhang et al. | An interpretable intrusion detection method based on few-shot learning in cloud-ground interconnection |
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 |