基于GAN 的僵尸网络流量检测研究

2022-09-14 08:20薛昊天
电子设计工程 2022年17期
关键词:僵尸数据包流量

薛昊天,王 晨

(1.武汉邮电科学研究院,湖北武汉 430000;2.南京烽火天地通信科技有限公司,江苏 南京 210000)

随着网络攻击行为愈加多样复杂,对僵尸网络这一入侵攻击行为的检测也显得愈加重要。随着时代不断发展变化,僵尸网络有了全新的特点并急速壮大。举例来说,Linux 系统因为其开源特性,其系统几乎毫不设防,对僵尸网络攻击毫无防备。路由器设备作为家家户户互联互通的枢纽,亦是肉鸡的攻击目标。物联网产业产品种类多、范围广、标准不一、易于破解,成为僵尸网络感染的新爆发点。

1 僵尸网络及其检测方法

僵尸网络之所以成为僵尸网络,是在于这样的事实,即这种管理应允许对手安排进一步的攻击[1],例如通过向受感染的主机(BOT)发送新命令,延长攻击的发现时间,阻止执法机构发现它的真实身份。显然,受感染的设备之间存在直接通信通道,只要将特定IP 或域列入黑名单,就可以有效地检测和阻止服务器受到C&C 的影响[2]。为防止这种情况的发生,恶意软件作者尝试使用将流量伪装为良性且无法轻易阻止的通信渠道[3],例如社交网络或经常更改托管C&C 服务器的域名。

僵尸网络检测的最新趋势是基于流或基于图的功能。基于流的方法是将网络数据包数据重新整合为流[4]。源IP、目标IP、源端口、目标端口和网络协议称为五元组[5],以此来确定流。它们使用诸如监督分类[6]或聚类等机器学习[7]技术来分析标准的数据包级别或流量级别的统计数据。

传统上采用统计分析的方式,判断流量的各项指标的数值是在僵尸流量的范围内还是在正常流量的范围内,进入到机器学习时代后多使用机器学习中的聚类算法和分类算法。这一思路的缺点在于只针对训练过的僵尸网络流量种类有效,缺乏对未知流量的检测能力。

另一种比较新潮的检测方法是基于图的检测方法。这些方法忽略了数据的顺序性质,而是使用基于中心性的图形度量关注通信的图形结构[8]。但是,由于它们需要一次访问所有数据以建立图形模型,因此通常不适合当作真正有用的工具。

网络流量分析是指在流量中监察可能的C&C命令[9],以此来探测。考虑普通P2P 流量与僵尸P2P流量之间必然会存在某种差异[10],可以通过通信时长、数据包大小、数据长度等流量特性来进行区分。但对于一些高度隐藏的僵尸网络,检测率并不高,因为提取特性不可能十全十美,不能够代表流量的全部内容,可能提取到的特征代表性很强,也可能特征代表性很弱,检测效果很差,全在于特征能够代表多少有价值的信息[11]。

对于分析网络中的流行为特征这一思路,深度学习技术能够自动学习事物的本质特征,以模拟大脑学习的方式去学习。生成对抗网络能够增加样本的种类和数量,增加对分类模型的反馈,辅助提升分类模型的分类能力。因此该文考虑以深度学习中的这两种方法,应用于分析网络流行为特征。

该文提出一种基于GAN 的检测botnet 的新方案,该方法可以有效地提升现有方法的僵尸网络检测效率,具有相当的实际应用价值。

2 生成式对抗网络

GAN 的原理框图如图1 所示。GAN 的原理是将生成模型制造的假样本混入到真实样本中,为判别模型增加输入,提高其判别能力。生成样本不断地伪装成真实样本,提高了其伪装能力。

图1 生成对抗网络的原理

GAN 网络可以定义为式(1)所给出的极大优化问题[12],假设x代表数据样本,p(z)代表输入噪声,G(z)代表处理后的噪声,D(x)代表样本x是真正的样本,而非生成样品。因此,混入的生成样本的被识别率降到最低,判别模型的分辨能力最高,这两个点可视为GAN 的优化目标[13]。目标函数定义如式(1)所示:

由式(1)可知,要提高判断能力,目标函数要取最大值,即max(D(x))和min(D(G(z)));要提高伪装能力,目标函数取最小值,即min(D(x))和max(D(G(z)))[14]。实际操作中,保持两者之一不变,训练另一者,不断更新其参数达到阶段的预期,然后解放不变的模型,锁定变化的模型再训练。重复这个过程,使对方获得最大误差[15]。此时两个模型均取得最优解,即判断真假正确的概率是50%。此时,认为训练完成,生成样本和真实样基本一致,让判别模型D 无从辨认。

将半监督学习方法加入到GAN中[16],可以充分利用无标签样本数据来辅助有监督的学习训练分类。

损失函数可以作变形如式(2)-(5)所示,对于有标签样本数据,Lsupervised表示有监督学习的目标函数,即正确预测的能力。

对于无标签样本数据,Lunsupervised表示无监督学习的损失函数,pmodel(y=K+1|x)表示样本x是生成样本的概率。当将D(x)=1-pmodel(y=K+1|x)插入一个表达式Lunsupervised时,它等于GAN 的目标函数,如式(6)所示:

该节融入GAN 的理念,在分类模型的训练过程中混入生成样本,如图2 所示。分类模型也相应增加一类标签(Fake)。

图2 改造的生成式对抗网络

3 实验与结果分析

3.1 数据集和特征值选择

Iscx2014 被认为是种类丰富、样本量充足的优质数据集。提取传输层协议、TCP 协议标记、流持续时间、网络流第一个数据包的长度、交换小数据包数、交换小数据包百分比、重连接次数、总长度、有效载荷数据包平均数、有效载荷数据包的标准差、平均每秒比特数、平均数据包到达时间、每秒平均包数共13个特征,将非数值型特征值转化为一个数值型特征值,并对所有这些特征值问题进行归一化处理。将13 个特征处理为129 维特征值。

3.2 实验配置及方案

生成模型设为3 层LSTM 网络,为输入层配置120个节点,隐藏层配置60个节点,输出层配置129个节点。

在分类模型的选择上,神经网络4 层结构被普遍认为是一种比较好的模型选择,隐藏层可以设为两层。INPUT层节点为129个,HIDDEN1节点为80个,HIDDEN2 节点为20 个,OUTPUT 节点为3 个。

tensorflow作为深度学习框架。计算机为神舟Z7-CT7NA,CPU为IntelCorei7-9750HCPU@2.60GHz,内存为8 GB。

在训练集中,每个训练轮均混入100、500、1 000、2 000、5 000、8 000 个生成样本,迭代100 次以观察混入生成样本的训练效果。

为保证客观性,对比试验中的原型和GAN 的分类模型网络结构及参数配置是一致的。亦设置4 层神经网络,不同的是为输出层配置两个节点,即正常样本或僵尸网络样本,没有虚假样本标签。在同样配置下完成训练,分析两者在training group 上的accuracy、precision、F1 值及error rate。

3.3 实验结果及分析

实验设置从100 个到8 000 个假样本共六组对照组,折线代表增强模型,虚线表示原模型。横坐标是每轮混入的生成样本数,纵坐标是对应的检测指标。

如图3 所示,增强模型的性能整体上优于原模型,仅在混入样本超过5 000 个后,准确率下跌较为严重,但也仅仅是略低于原模型。这表明了生成器对判别器的加成作用,还要考虑到混入假样本的数量,并不是越多越好。原因在于随着生成样本数据量的增大,分类器在判断时过分关注样本是生成的还是真实的,即注意力迁移到了别的地方,偏离了样本是否是僵尸网络样本这一原本的目的。

图3 训练时是否混入生成样本的分类模型的准确率

由图3 可以看出,当混入样本超过100 个而小于1 000个时,对原模型的加成效果达成了一个较优解,虽然第二实验组在六组实验中准确率最高,但不能认为这就是最佳假样本数,这个数量可能大于500 个也可能小于500 个,还需要通过进一步的实验来细化。

如图4 所示,增强模型的性能整体上优于原模型,仅在混入样本超过5 000 个后,精确率下跌较为严重,还是略高于原模型。同样说明混入假样本太多反而对检测性能起反效果。显然,第三实验组在六组实验中精确率最高,但这并不是最佳假样本数,具体数量还需进一步的实验来细化。

图4 训练时是否混入生成样本的分类模型的精确率

如图5 所示,增强模型的性能整体上优于原模型,但是F1 值的折线不同于准确率折线和精确率折线,其起伏较为反复,并没有明显的涨跌,整体上是持平并高于原模型的。这表明了假样本对判别器在F1 值上的加成作用并不是十分有效。显然第二实验组在六组实验中准确率最高,但不能认为这就是最佳假样本数,若要确定最佳假样本数量,还需要进一步的细化。

图5 训练时是否混入生成样本的分类模型的F1值

如图6 所示,实验中,增强模型的性能整体上优于原模型,仅在混入样本超过5 000 个后,误报率上涨,但还是略低于原模型。显然第二实验组在六组实验中误报率最低,但不能认为这就是最佳假样本数,还需要进一步的实验来细化。

图6 训练时是否混入生成样本的分类模型的误报率

4 结束语

在训练集中混入生成样本这一行为,提高了分类模型的检测性能,模型准确率和精确率平均提高了2%和5%,误报率降低2%,实验结果符合预期。该文提出的研究成果还有值得改进的地方。检测技术和僵尸网络是同步在发展的,即使现在十分有效的方法,对以后的新类型、新模式的僵尸网络可能检测效果很差。持续地收集僵尸网络数据,持续地改进检测算法,是一项长期的工程。

猜你喜欢
僵尸数据包流量
冰墩墩背后的流量密码
二维隐蔽时间信道构建的研究*
张晓明:流量决定胜负!三大流量高地裂变无限可能!
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
寻找书业新流量
笔记本电脑“僵尸”
C#串口高效可靠的接收方案设计
基于ZigBee 通信的流量研究与改进
在舌尖上筑牢抵御“僵尸肉”的防火墙
僵尸来袭