基于无监督学习的软件定义网络异常流量检测技术

2024-08-22 00:00:00翁建勋
科技创新与应用 2024年24期

摘 要:软件定义网络中存在多种不同类型的异常流量,高维数的异常流量需要大量的数据进行训练和检测,异常流量难以被准确提取,导致软件定义网络异常流量难以精准检测。为此,该研究基于无监督学习的软件定义网络异常流量检测技术,提升软件定义网络的运行安全性。利用无监督学习方法中的自编码器方法,通过压缩网络和检测网络2部分检测软件定义网络异常流量。压缩网络部分采用收缩自编码技术,通过调节重构误差的损失函数,对软件定义网络流量特征实施降维处理;将降维处理后的软件定义网络流量特征,输入条件生成对抗网络-长短时记忆网络模型中,该模型利用生成器生成软件定义网络流量样本,作为判别器训练的依据,利用完成训练的判别器,输出软件定义网络异常流量检测结果。实验结果表明,该方法在迭代次数接近150次时,重构误差稳定至0.01左右,该方法能够有效检测软件定义网络受到不同类型的攻击造成的流量异常情况,及时发出告警,异常流量检测精度为98.98%。

关键词:无监督学习;软件定义网络;异常流量检测;压缩网络;收缩自编码;判别器

中图分类号:TP393 文献标志码:A 文章编号:2095-2945(2024)24-0032-07

Abstract: There are many different types of abnormal traffic in software-defined network, high-dimensional abnormal traffic needs a lot of data for training and detection, abnormal traffic is difficult to be extracted accurately, so it is difficult to accurately detect abnormal traffic in software-defined network. For this reason, the software-defined network abnormal traffic detection technology based on unsupervised learning is studied to improve the operational security of the software-defined network. By using the self-encoder method of unsupervised learning method, the abnormal network traffic defined by software is detected by compressing the network and detecting the network. The shrinking self-coding technology is adopted in the compressed network part, and the dimensionality reduction of the software-defined network traffic characteristics is implemented by adjusting the loss function of the reconstruction error. After the dimensionality reduction, the software defines the network traffic characteristics, and the input condition generates the countermeasure network-short-term memory network model. The model uses the generator to generate the software-defined network traffic sample as the basis for the discriminator training. The discriminator that completes the training is used to output the abnormal network traffic detection results of the software definition. The experimental results show that when the number of iterations is close to 150, the reconstruction error is stable to about 0.01. This method can effectively detect the traffic anomalies caused by different types of attacks on the software-defined network, and issue alarms in time, so that the accuracy of abnormal traffic detection is 98.98%.

Keywords: unsupervised learning; software-defined network; abnormal traffic detection; compressed network; shrinking self-coding; discriminator

随着信息技术的迅猛发展,网络安全事故频发,隐私保护与数据安全成为研究热点。软件定义网络(SDN)因其灵活性、可编程性和可扩展性,在提升网络性能的同时,也暴露了更多被攻击的风险。因此,SDN中的异常流量检测成为通信网络安全的重要研究课题。

传统有监督异常检测方法依赖于大量标记样本,难以应对未标记或新出现的异常流量。而无监督学习方法无需事先标记数据,能自动学习数据内在规律,有效弥补这一不足。常用的无监督学习算法包括聚类、自编码器和生成对抗网络(GAN),它们在异常流量检测中展现出巨大潜力。然而,单一无监督学习算法在SDN异常流量检测中往往忽视时间因素,影响检测效果。无监督学习算法的优势在于无需特征提取,能自动挖掘未标记数据中的异常模式,有效应对高维数据带来的挑战。特别地,自编码器因其强大的数据重构能力,在异常检测中表现突出。

现有研究如Mahfouz等利用机器学习算法检测网络异常流量,通过博弈论与网络安全数据集验证其有效性,提升了检测速度和准确性;Muhuri等结合长短时记忆网络与遗传算法,实现了异常流量的高效检测;Nakashima等则通过特征选择优化检测过程,减少特征数量同时提升检测性能。这些方法虽取得一定成果,但存在特征提取复杂、实时性不足等问题。

针对上述问题,本文聚焦于基于无监督学习的SDN异常流量检测技术,特别是引入自编码器结合长短时记忆网络中的生成器与判别器。该方法利用生成器的重构误差和判别器的分类结果,综合判断SDN中的异常流量,不仅提升了检测精度,还增强了实时性。通过此技术,能够更有效地识别SDN中的未知和复杂攻击,保障网络的安全稳定运行。总之,本文提出的无监督学习方法在SDN异常流量检测中的应用,为解决当前网络安全挑战提供了新的思路与解决方案。

1 软件定义网络结构分析

软件定义网络是一种可编程的网络结构,软件定义网络主要包括分布式转发部分和集中式控制部分。软件定义网络将数据平面以及数据控制集中调控处理,为不同形式的编程提供接口。软件定义网络结构图如图1所示。

通过图1看出,软件定义网络主要包括数据层、控制层、应用层3部分组成。

软件定义网络的应用层,由2个以上的软件定义网络组成,利用软件定义网络控制设备和北向接口进行数据交换。交换过程中,利用编程方法将传输内容传送至网络的控制设备中。单个软件定义网络应用中,设置多个北向接口驱动,抽象与封装处理软件定义网络的自身功能,将封装后的功能,提供至北向代理接口。完成功能传送后,将北向接口由低等级转换至高等级。

软件定义网络的控制层即网络的控制设备。利用控制层,向软件定义网络的应用层发送邀请,将控制平面转换为供给应用层与数据层的网络抽象模型。利用2个以上的网元,组成软件定义网络的数据平面。软件定义网络的控制设备构成软件定义网络的网元,软件定义网络的控制设备均设置了独立逻辑的网络器材,仅具有数据转发以及网络数据处理功能,并不具备软件定义网络的调控功能。软件定义网络的控制设备,利用控制层端口完成软件定义网络的处理功能。软件定义网络的控制层,负责网络通信的静态工作。控制层主要包括网元配置、软件定义网络控制设备控制、软件定义网络应用范围控制等功能。将软件定义网络加入数据中心网络中,具有提升网络不同设备间的交换便捷性,降低通信网络运行成本的作用。

2 基于自编码器的无监督异常流量检测算法

将无监督学习方法引入软件定义网络的异常流量检测中,网络异常流量检测的总体结构图如图2所示。

通过图2可以看出,网络异常流量检测主要包括流量生成模块、控制模块及应用模块3部分。

利用流量生成模块和支持OpenFlow技术的交换机进行软件定义网络异常流量检测的数据转发。支持OpenFlow技术的交换机包括OpenFlow协议安全通道以及流表。对于软件定义网络中接收的通信数据包,利用交换机依据固定的匹配规则,匹配软件定义网络的流表项。利用流量生成模块生成正常流量与异常流量,将生成的流量传送至交换机内。

利用控制模块将传统交换设备中的控制部分,转换为网络操作部分。利用南向接口进行网络设备的集中维护与管控,将北向编程接口提供至上层的业务与应用部分,为软件定义网络提供更优质的服务水平。依据主机路径信息或固定的通信需求,利用流表更新模块,对网络设备流表进行更新操作。

利用应用模块分析软件定义网络流量,检测软件定义网络是否出现由于攻击造成的流量异常情况。应用模块利用流量分析模块分析流量。利用攻击检测模块分析软件定义网络的流量信息,利用无监督学习算法判定是否产生攻击。攻击检测模块检测到软件定义网络存在攻击情况时,利用主机标识模块确定主机位置,针对异常流量位置及时做出决策。

自编码器是无监督学习方法中的重要方法,对于海量的软件定义网络流量数据,具有较高的检测性能。对软件定义网络异常流量数据进行检测时,首先需要对软件定义网络的高维流量数据进行降维处理,将软件定义网络流量数据的高维特征映射至低维空间中,在低维空间中,进行流量样本的异常检测。

基于自编码器的软件定义网络异常流量检测的结构图如图3所示。

通过图3可以看出,软件定义网络异常流量检测,主要包括流量样本降维以及异常流量检测两部分。通过联合训练调优方法,处理数据降维及异常流量检测两部分,通过两部分的互相约束与训练,令经过降维处理后的软件定义网络流量特征,可以维持最优状态,为后续的异常流量检测提供高质量的训练数据,避免软件定义网络异常流量检测时,陷入局部最优解的情况。

自编码器的异常流量检测技术,结合收缩自编码技术和条件生成对抗网络-长短时记忆网络(Conditional Generative Adversarial Net-works-Long Short Term Memory,CGAN-LSTM)模型2种无监督学习方法,通过收缩自编码网络,将软件定义网络流量特征进行降维处理,与CGAN-LSTM模型的异常检测部分,通过端到端的联合训练,获取最终软件定义网络异常流量检测结果。收缩自编码网络,对软件定义网络流量特征进行降维处理的同时,有效去除噪音对流量样本降维的干扰,与深度自编码网络相比,可以改善过拟合情况,提升无监督学习算法的泛化能力。

基于自编码器的软件定义网络异常流量检测,主要包括压缩网络部分和检测网络部分。对于输入的软件定义网络流量样本x,利用收缩自编码器进行降维处理后,结合重构误差zr和低维的潜在表示zc,构建最终的软件定义网络低维流量特征z,将低维流量特征z反馈至后续的检测网络中。检测网络利用CGAN-LSTM方法,对反馈数据进行处理,输出异常流量检测结果。

2.1 收缩自编码的软件定义网络流量特征压缩方法

采用收缩自编码方法,进行软件定义网络的流量特征压缩。收缩自编码的编码输出h(x),是所提取的最终软件定义网络流量特征。收缩自编码利用雅克比矩阵范数各元素的和,提升流量特征提取的健壮性。

利用收缩自编码方法构建压缩网络,收缩自编码方法属于正则自编码器。为了对编码器的导数进行最小化处理,将正则项添加至收缩自编码器的编码上。软件定义网络异常流量特征压缩的收缩自编码损失函数表达式如下

式中:与分别表示输入的软件定义网络流量样本x的重构表示,以及编码器与解码器偏置值和权重值的参数结合;?啄表示正则系数;Jf(x)表示与权重相关的隐含层输出的雅克比矩阵; 表示雅克比矩阵元素平方的和,其计算公式如下

式中:W与hi分别表示权重矩阵以及流量样本特征压缩后的第i个低维表示,计算重构误差与计算惩罚函数的时间成本相似。

软件定义网络异常流量样本数据x,利用收缩自编码器降维处理后,获取低维表示的软件定义网络异常流量数据zc,利用收缩自编码器的解码器重构zc,获取重构后的样本数据。收缩自编码器的编码器和解码器利用全连接神经网络构建,选取tanh函数作为收缩自编码器的激活函数,tanh激活函数的表达式如下

用z表示收缩自编码器的输出值,该输出值包含利用收缩自编码器学习的低维表示zc,以及通过重构误差形成的特征zr两部分。各部分的计算公式如下

式中:?渍e与?渍d分别表示收缩自编码网络中编码器与解码器参数,zc与f(x)分别表示通过降维处理获取的低维表示以及编码函数,与g(x)分别表示自编码器生成的x的重构及解码函数,L(x,)表示计算重构误差特征的函数。将收缩自编码网络的输出值z,传送至后续的异常流量检测网络中。

对于收缩自编码器中重构误差的损失函数,选取余弦相似度和欧式距离2个指标作为度量指标,计算公式如下

, (9)

式中与N分别表示输入的软件定义网络流量样本的重构表示及样本数量。

利用以上过程获取的zr=L1(x,),L2(x,)为软件定义网络流量样本的二维特征。设原始软件定义网络流量样本数据,利用收缩自编码器压缩至B维,最终的软件定义网络流量样本特征维数为B+2维。

2.2 CGAN-LSTM的异常流量检测方法

利用CGAN-LSTM模型,作为无监督学习的模型估计部分,检测软件定义网络的异常流量。该模型主要包括训练部分和测试部分。利用时间周期信息指导生成器,在训练和测试部分,生成软件定义网络的流量样本。CGAN-LSTM模型检测软件定义网络流量异常的总体结构图如图4所示。

CGAN-LSTM模型的训练阶段,选择正常的软件定义网络流量样本作为训练样本,从随机空间获取降维后的样本z,将所获取的样本与时间信息t结合后,传送至生成器G中。利用生成器生成软件定义网络的流量样本,将生成的样本数据与真实的样本数据传送至判别器D内,利用判别器划分真实样本数据以及生成的样本数据。依据判别器的输出结果,反向更新模型参数。

CGAN-LSTM模型的测试阶段,利用训练阶段获取生成器和判别器的参数。输入软件定义网络流量样本数据,将软件定义网络流量测试样本与时间信息连接后,传送至判别器内,利用判别器输出软件定义网络流量异常判别结果。

详细介绍CGAN-LSTM模型的训练阶段以及测试阶段如下。

2.2.1 训练阶段

1)生成器。所构建的生成器由2层LSTM和一层的Attention组成。Attention机制的运行过程如下:将包含64个单元及128个单元的2层LSTM,应用于随机空间中,最后通过一层的Attention机制,获取软件定义网络流量数据的重点。选取交叉熵函数作为循环神经网络的损失函数。选取梯度下降方法,求解模型的最优参数。

2)判别器。判别器输出结果为0~1之间,判别器判别软件定义网络流量样本为真实样本时,输出值与1接近,否则输出值与0接近。选取Sigmoid函数作为损失函数,选取梯度下降方法,确定模型最优参数。

2.2.2 测试阶段

利用判别器判别结果及生成器的重构误差,综合检测软件定义网络流量样本是否属于异常流量样本。CGAN-LSTM模型的训练阶段,生成器需要学习如何将样本映射至随机空间内。为了检测软件定义网络的异常流量,将测试样本映射至随机空间内,观测利用随机空间生成的样本与测试样本间的距离,二者之间的距离越近时,表示训练生成器生成的数据样本与正常样本越接近。

为了在随机空间内搜寻一个最优的映射空间,令该映射空间利用生成器G,生成与测试样本最接近的数据,定义随机生成映射空间?椎的损失函数表达式如下

。(10)

利用梯度下降方法,更新映射空间?椎,获取最优的k维映射空间?椎k。计算生成新样本与测试样本之间的重构损失表达式如下

利用已训练的判别器,区分软件定义网络正常流量样本与异常流量样本。判别器判别的表达式如下

。 (12)

公式(12)的计算结果与1极为接近时,表示该软件定义网络流量样本属于正常样本;公式(12)的计算结果与0接近时,表示该软件定义网络的流量样本属于异常样本。

将判别器判别结果与生成器的重构误差综合处理,设置软件定义网络异常流量检测的正常样本与异常样本分别与1接近,以及与0接近,生成器的重构误差越大,表示样本异常程度越高。为了良好地综合重构误差与判别器判别结果,将1-Dis(x′)结果,带入以下计算公式中

, (13)

式中:?孜与w分别表示异常流量判定结果及权重参数。

公式(13)计算结果数值越大时,表示测试流量样本异常程度越高,否则表示流量样本为正常状态。依据软件定义网络异常流量检测实验结果,确定软件定义网络异常流量检测阈值。公式(13)的计算结果高于所设置阈值时,判定该样本为异常流量样本,完成软件定义网络异常流量检测。

3 实验分析

为了验证所研究的基于无监督学习的软件定义网络异常流量检测技术、检测软件定义网络异常流量的有效性,选取网络中常应用于异常流量检测的KDD99数据集作为测试对象。本文方法采用无监督学习方法作为异常流量检测技术,样本训练过程中,无需标签信息。通过对原始数据集进行特征分析及数据预处理,构建完整的KDD99数据集。KDD99数据集定义了网络连接方式,固定时间段内,从软件定义网络源IP地址至目的IP地址在固定的TCP、UDP协议的流量数据收集统计信息中,统计信息内包含流量信息,以及软件定义网络从运行初始至结束的TCP数据包序列,在固定时间内从源IP地址传送至目的IP地址的数据。

利用异常攻击样本,制作软件定义网络中的流量异常情况。异常攻击样本设置见表1。

从测试集的数据中,随机选取其中20%的样本作为实验样本。数据集中样本数量为15 834个,避免由于样本数量过高,影响异常流量检测性能。针对软件定义网络异常流量检测,设置的实验样本见表2。

实验测试前,对数据集内的流量样本特征进行归一化操作,避免取值范围较小的特征,受到取值范围较大的特征影响。对完成归一化处理后的数据,进行随机抽样,获取共10个数据子集,同时测试抽取的10个数据子集,令实验数据具有更高的可信性。

采用本文方法对软件定义网络的异常流量进行检测,伴随无监督学习方法的不断迭代,无监督学习方法的损失函数值变化如图5所示。

伴随无监督学习方法的不断变化,软件定义网络异常流量检测的重构误差变化结果如图6所示。

分析图5、图6实验结果,伴随无监督学习方法迭代次数的不断增加,无监督学习方法的损失函数值存在明显的波动后趋于稳定,直至迭代次数接近100次时,本文方法的损失函数值接近0,此时本文方法具有最佳的训练效果。本文方法在迭代次数为100次左右时,即可以保持最佳的训练效果,可靠性较高。伴随迭代次数的增加,无监督学习方法中压缩网络的重构误差逐渐降低,而后趋于稳定。迭代次数接近150次时,重构误差稳定至0.01左右。以上实验结果可以看出,利用无监督学习方法,通过损失函数和重构误差设定,提升异常流量检测的可靠性。

向软件定义网络的主机192.168.184.123发送10次不同类型的攻击,令软件定义网络流量出现异常情况,检测软件定义网络异常流量变化情况。通过是否发出告警,测试检测是否成功。以文献[6]提出的基于机器学习算法的网络异常流量检测方法、文献[7]提出的基于长短时记忆递归神经网络的异常流量检测方法为实验对比方法,对软件定义网络异常流量的检测结果见表3。

通过表3实验结果可以看出,采用本文方法能够有效检测软件定义网络受到不同类型的攻击造成的流量异常情况,及时发出告警,具有较高的软件定义网络异常流量检测有效性。而采用文献[6]、文献[7]方法无法准确全面检测到软件定义网络受到不同类型攻击造成的流量异常情况。本文方法不仅可以检测软件定义网络的异常流量,同时可以快速确定软件定义网络的攻击端口,为快速解决流量异常情况,提供有效依据,具有较高的应用性。

统计采用本文方法检测软件定义网络异常流量的检测性能见表4。

通过表4实验结果可以看出,采用本文方法有效检测软件定义网络的异常流量,异常流量检测精度平均值为98.98%,文献[6]方法的异常流量检测精度平均值为87.61%,文献[7]方法的异常流量检测精度平均值为83.34%,验证本文方法具有良好的异常流量检测表现性能。本文方法对于不同类型的攻击,仍具有较高的监测准确率。本文方法首先对软件定义网络异常流量的高维数据进行降维处理,提升异常流量检测可靠性。降维处理后的损失函数可以快速收敛,对软件定义网络的实时流量检测,提供了可靠的保证。

4 结论

软件定义网络具有可以自由编程的特点,应用较为广泛。软件定义网络用户较多,具有网络响应灵敏性高,便于实时调整工作负载的优势,满足当今的网络应用需求。软件定义网络受到不同类型攻击时,容易造成网络流量出现异常情况,影响网络可靠运行,基于此本文提出基于无监督学习的软件定义网络异常流量检测技术。将无监督学习方法应用于软件定义网络异常流量检测中,利用无监督学习方法具有的无需特征提取的优势,提升异常流量检测可靠性。通过实验验证,该方法对于由于不同类型攻击造成的异常流量,均可以有效检测,异常流量检测精度较高,适用于软件定义网络异常流量检测实际应用中。

参考文献:

[1] GUO A P, YUAN C H. Network Intelligent Control and Traffic Optimization Based on SDN and Artificial Intelligence[J].Electronics,2021,10(6):700-708.

[2] ALMALAWI A, FAHAD A, TARI Z, et al. Add-on anomaly threshold technique for improving unsupervised intrusion detection on SCADA data[J].Electronics,2020,9(6):1017-1023.

[3] MADHUKRISHNA P, PADMALOCHAN B. Software defined networking architecture, traffic management, security, and placement: A survey[J].Computer Networks,2021,192(19):1-15.

[4] PAPADOGIANNAKI E, IOANNIDIS S. Acceleration of Intrusion Detection in Encrypted Network Traffic Using Heterogeneous Hardware[J].Sensors, 2021,21(4):1140.

[5] LIN K, XU X, XIAO F. MFFusion: A multi-level features fusion model for malicious traffic detection based on deep learning[J].Computer networks, 2022,202(15):202.

[6] MAHFOUZ A, ABUHUSSEIN A, VENUGOPAL D ,et al. Ensemble classifiers for network intrusion detection using a novel network attack dataset[J]. Future Internet, 2020,12(11):180-188.

[7] MUHURI P S, CHATTERJEE P, YUAN X, et al. Using a long short-term memory recurrent neural network (lstm-rnn) to classify network attacks[J]. Information (Switzerland), 2020,11(5):243-246.