基于生成对抗网络的入侵检测类别不平衡问题数据增强方法
2022-07-23孙佳佳李承礼常德显高立伟
孙佳佳, 李承礼, 常德显, 高立伟
(战略支援部队信息工程大学, 郑州 450001)
信息技术的迅猛发展使得网络已经深度渗透进社会生活的方方面面,互联网与各行各业的高度融合在给人们带来巨大便利的同时,随之而来的日益频发的网络安全问题正给整个社会带来前所未有的挑战,各种以能源、医疗、交通和金融等关键信息基础设施为目标的高级可持续性威胁(advanced persistent threat,APT)攻击更是威胁到了国家安全。例如,2019年3月,委内瑞拉电力系统遭网络攻击陷入瘫痪,全境大面积断电断水,国民生产生活陷入瘫痪,国家接近崩溃边缘;2020年4月,海莲花组织针对中国医疗卫生行业和机构发起以COVID-19为主题的攻击,以期窃取中国医疗卫生行业相关机密,地域涉及中国29个省。因此,及时发现并阻断攻击从而保护系统安全具有十分重要的意义。
入侵检测技术作为传统防火墙技术的补充,能够主动检测网络中存在的恶意行为并提供实时保护,是安全防护的重要手段之一[1]。但近年来,随着入侵手段的日益复杂多样,传统依赖简单的模式识别和特征选择的入侵检测系统已经无法适应如今的网络环境,从而致使其检测的准确率较低且误警率较高。而作为机器学习新的研究方向的深度学习,能够自动从人类筛选和准备的训练样本中通过对其低层次特征的学习而组合成能够表征样本数据的更加高层次的潜在特征[2],其强大的学习和分类能力使其在计算机图像与视觉、自然语言处理以及网络安全等领域得到了广泛的研究与应用。
充足且类别分布均衡的训练样本是各种深度学习算法在以上诸领域成功应用的重要前提,而入侵检测系统的主要功能是区分正常事件和异常事件,基于异常的网络入侵检测本质上是数据不平衡情况下的分类问题。所谓数据不平衡是指数据集中各个类别的样本数量有很大的差别,即数据类别的分布存在很大的差异。数据不平衡问题在机器学习中并不少见,除网络入侵检测外,其他如癌症患者诊断[3]、工业设备故障检测[4]、信用卡反欺诈和破产预测等[5]亦是如此。在真实网络环境中,正常用户行为产生的流量要远大于异常行为产生的流量,正常流量和异常流量表达方式差异较大且不同攻击类型所产生的异常样本数量也有很大的差异,因此当运用机器学习方法处理此类不平衡数据集时,不仅训练难度很大,而且以最小化经验风险作为训练目标会使分类模型倾向于多数类而对少数类的检测率降低[6],从而影响对分类方法的评价。而且对于入侵检测系统来说,漏报所造成的危害要远大于虚警所造成的危害,因此,如何在类别分布不均衡的数据基础上有效提高其对少数攻击样本类型乃至未知攻击类型的检测率具有十分重要的意义。
针对数据不平衡问题,目前主流的解决方法是从数据角度通过重新调整训练集的样本分布来降低或消除不平衡性[7],常用的方法有过采样、降采样以及两者综合的混合采样,但这些方法容易导致过拟合问题[8]或丢失潜在的有用信息且对模型分类性能的提升较为有限[9]。而基于数据生成的方法来解决数据类别不平衡问题则可以避免上述缺点,更好地扩充少数类样本数据。
生成对抗网络(generative adversarial network, GAN) 由Goodfellow[10]于2014年提出,是生成模型的一个子类,其作为最大似然方法的一种替代可以对现有数据样本的潜在分布进行估计并构建出能够符合数据分布的模型,进而生成新的数据样本。其生成的数据类型非常广泛且模型具有一定的自学习能力,因而可以应用于半监督学习[11]和无监督学习中。近年来,GAN已经在计算机视觉[12]、文本[13]、音频[14]以及与强化学习相结合的领域[15]等取得了一些令人瞩目的进展,但将GAN与深度神经网络(deep neural network,DNN)相结合以生成入侵检测样本数据的研究还较少。
Douzas等[16]提出利用条件生成对抗网络( conditional generative adversarial network,cGAN)来近似真实数据分布和以生成器作为过采样算法来生成少数类数据,并在加州大学欧文分校(University of California Irvine, UCI)的12个不平衡机器学习数据集上验证了算法的有效性。袁辰[17]在利用ASCAII码变量方式定义域名编解码器的基础上提出一种域名字符生成模型DGA-GAN来预测生成DGA变体样本,并从能否作为域名、域名的字符频率和多分类器分类检测效果三个方面验证了生成数据的有效性。Hu等[18]提出的MalGAN以噪声和原始恶意软件样本作为生成器输入,能够生成不被黑盒判别器识别的恶意软件样本。卢逸君等[19]利用改进的深度卷积生成对抗网络构造更多的异常样本,并在主机异常检测评测数据集ADFA-LD上实现了高检测率和低误报率。
上述针对数据不平衡情况下分类问题的研究虽然取得了一定成果,但仍有各种不足,特别是针对少数类攻击和未知类型攻击的检测还不够准确且其扩充的不是入侵检测数据集。为了解决入侵检测领域由于数据隐私性导致的样本收集困难以及数据类别不平衡的问题从而实现更好的检测效果,并且解决GAN训练过程中生成的入侵数据不便观察生成质量的问题,现结合cGAN和DNN提出一种解决入侵检测类别不平衡问题的数据增强方法。该方法在针对入侵数据特点进行预处理的基础上,一方面利用不同攻击的类别标签引导入侵数据的生成过程;另一方面将DNN入侵检测模型引入cGAN的训练过程以直接观察入侵数据生成情况并监督优化生成数据;然后用生成好的数据增强原始数据集以改善原始数据集的类别不平衡问题;最后在NSL-KDD数据集上对本文所提方法的有效性进行验证。
1 入侵检测训练数据增强模型
1.1 GAN理论基础和cGAN模型
GAN的核心思想来源于博弈论中的二人零和博弈[20],其包含的一对相互对抗的模型生成器(G)和判别器(D)本质都是函数,通常用深层神经网络来实现[21]。生成器G的目的是学习真实的数据分布并生成相似度逼近真实样本的生成样本,而判别器D的目的则是判断输入数据是来自真实数据还是生成器生成的数据。判别器的输出是一个概率值或标量值,用来表示D认定输入是真实分布的概率。理想情况下,D无法判断输入数据来自真实数据还是生成器生成的数据,即D的输出为1/2,可以认为此时生成器G已经学到了真实数据样本的分布,博弈达到了纳什均衡状态。GAN的博弈目标函数为
Ez~pz(z)(lg{1-D[G(z)]})
(1)
式(1)中:V(D,G)为价值函数;z和x分别为噪声和真实数据;pz(z)和pdata(x)分别为噪声和真实数据的分布;Ex~pdata(x)为分布为pdata(x)的真实数据通过判别器后的熵,对于判别器来说其优化的目标是使D(x)最大化为1;Ez~pz(z)表示分布为pz(z)的随机噪声数据通过判别器后的熵,对于判别器来说其优化的目标是使D(G(z))最小化为0,即令整个第二项最大化为0。而对于生成器来说,其优化目标是使D(G(z))最大化为1,从而令整体趋向负无穷。因此D和G的训练过程是关于V(D,G)的极小极大双方博弈问题。
GAN的训练是一个交替迭代优化的过程,即通常先固定生成器G,训练优化判别器D,更新D的参数,最大化D的判断准确率,求得最优判别器D*;然后固定D,更新迭代G的参数,最小化D的判断准确率,从而求得最优生成器G*。为了同时优化D和G,可在迭代过程中更新多次D后更新一次G,从而确保D优先G一步达到当前最优,如此迭代循环直至两者共同达到最优[22]。
原始GAN生成器输入的是低维度完全随机的噪声,生成过程过于自由而导致训练过程和结果都不可控,因而容易出现梯度消失和模式崩溃的问题。为了提高GAN的稳定性, Mirza等[23]将条件概率应用于GAN中,提出了条件生成对抗网络Conditional GAN(cGAN)。cGAN通过将原始分布重新建模为条件概率分布从而使得生成模型可以在一定程度上附加多个条件,在输入噪声的同时改变这些条件便可以得到和预期相符的多个结果,其网络结构如图1所示。条件变量y可以是类别标签,也可以是不同模态的数据,例如一段描述句子或是对应的目标图片。当y为类别标签时,cGAN就把无监督的GAN变成了一种有监督模型,其博弈目标函数
如式(2)所示:
Ez~pz(z)(lg{1-D[G(z/y)]})
(2)
图1 cGAN模型结构图Fig.1 Model of cGAN
1.2 cGAN-DNN入侵数据增强模型
基于cGAN与DNN相结合的入侵检测数据增强模型如图2所示。模型以cGAN为基础,包括数据预处理、样本生成和攻击检测三部分。cGAN-DNN将攻击样本的类别标签作为条件以生成指定类型的新的攻击样本。为了直接观察数据生成情况并提高生成样本的质量,在生成过程中将生成数据输入经预处理后的训练集训练好的DNN分类器并观察输出值,根据输出参数的变化对cGAN的超参数进行调节。生成好的样本便可用以扩充原始训练集,并基于增强后的训练集对DNN分类器重新进行训练。最后利用该训练好的DNN分类器对测试集进行攻击检测,并基于准确率等相关评价指标对数据增强前后模型的分类效果进行对比分析。
1.3 网络结构
cGAN-DNN模型中的生成器和判别器均采用经典的全连接网络结构,DNN分类器采用卷积神经网络结构。其中,生成器由6层神经网络构成,包括输层、4个隐含层和输出层,每一个隐含层还包括正则归一化处理。生成器输入层共105个节点(100维的随机噪声和5维的类别标签),4个隐含层分别入包含128、256、512和1 024个节点,输出层122个节点;判别器由4层神经网络构成,节点数分别为127、512、512和1;DNN分类器由7层神经网络构成,包括输入层、两个卷积层、池化层(池化后进行一次平铺处理)、两个线性层和输出层。其中,两个卷积层的步长均为(1,1)且第一次卷积后进行(1,1)的零填充,具体参数如表1和表2所示。
图2 基于cGAN-DNN的入侵数据增强模型Fig.2 Intrusion data augmentation model based on cGAN-DNN
表1 DNN分类器网络模型参数Table 1 Model parameters of DNN classifier
表2 生成器和判别器网络模型参数Table 2 Model parameters of generator and discriminator
2 结果与分析
2.1 数据集与实验环境
KDD-99数据集是入侵检测领域应用广泛的一个基准数据集,但其包含的冗余记录和重复记录使得分类器会偏向出现更频繁的样本从而降低分类准确率,因此,选择删除了KDD-99数据集中重复和冗余记录的NSL-KDD数据集来评估数据增强效果。NSL-KDD数据集包括Normal、DoS、Probe、R2L和U2R 5种类型数据,但不同类型数据之间的数量差异很大,属于类别不平衡数据集,选择NSL-KDD数据集中的KDDTrain+作为训练集、KDDTest+作为测试集,其数据分布如图3所示。从图3可知,R2L和U2R这两种类型数据数量非常少,如直接训练分类器进行分类那么效果必然不佳,因此需要生成少数类数据以平衡原数据集数据类别从而从根本上解决训练不充分的问题,进而提高入侵检测效果。实验环境详细信息如表3所示。
图3 实验数据集分布Fig.3 Distribution of experimental data sets
表3 实验环境配置表Table 3 Configuration table of experimental environment
2.2 实验参数和性能评估指标
NSL-KDD数据集既包括数值型数据也包括字符型数据,因此在选定训练集和测试集后,需要利用one-hot编码将字符型数据进行数值化处理然后再进行归一化处理,处理后的数据特征共122项,样例处理结果对比如表4所示。
表4 样例处理结果对比Table 4 Comparison of sample processing results
在对分类结果进行评价时,选用常用的检测率、准确率、误报率以及调和平均数作为实验结果的评价指标,各指标计算公式如表5所示,其中TP、TN、FP和FN分别代表正确记录的攻击样本、正确记录的正常样本,被错误记录成攻击样本的正常样本,被错误记录为正常样本的攻击样本。
表5 各指标计算方式Table 5 Calculation formula of each parameter
2.3 生成样本质量分析
为了验证生成入侵样本的有效性,分别以原始训练集和经生成对抗网络生成数据增强后的训练集为基础,对CNN入侵检测分类器进行训练,并在测试集中验证该数据增强方法对于入侵检测分类器综合分类性能的提升作用。同时,为了进一步说明本文模型的性能优越性,又选取传统经典数据生成方法随机过采样(ROS)和合成少数类过采样技术(SMOTE)进行对比分析。各生成方法生成的样本数目保持一致,使训练集中不同类别的数据分布达到均衡,具体生成样本数目如表6所示。表7为部分真实数据样本和生成数据样本。
表6 训练集生成样本数量Table 6 Number of samples generated through the training set
从表7可以看出,生成数据无论是数值类型还是数据取值范围都和真实数据有很大不同,而且后续的验证实验也证明了生成数据的有效性。因此,利用生成对抗网络可以拟合出与原始数据集特征分布类似但数据又不相同的生成数据集,从而在一定程度上解决网络安全领域相关数据集因机密性等原因而不便公开研究的问题。
表8是利用测试集KDDTest+分别对经原始训练集、ROS增强后的训练集、SMOTE增强后的训练集以及cGAN增强后的训练集训练好的入侵检测CNN分类器进行测试后的结果。从表8可以看出,cGAN-CNN不仅具有更高的准确率和调和平均数、更低的误报率,而且在两个少数类攻击类型R2L和U2R中具有更高的检测率,说明本文所提数据增强方法能够根据真实入侵样本的实际分布特征对原始数据集进行有效扩充,从而在一定程度上改善入侵检测类别不平衡问题,进而提升入侵检测模型的整体分类性能,最终在提高对少数攻击和未知攻击检测能力的同时降低误报率。
3 结论
针对入侵检测领域存在的数据类别不平衡问题,利用在图像处理领域大放异彩的生成对抗网络的强大生成能力,提出一种基于cGAN和CNN相结合的入侵样本增强方法,并通过实验验证了方法的有效性。实验结果表明,相较于ROS和SMOTE等传统数据生成方法,基于cGAN-CNN模型的数据增强方法在各项评价指标上都有一定的提升,其能够通过对原始数据集潜在分布特征的学习而生成与原始数据大相径庭的指定类型样本,从而在一定程度上解决入侵检测样本集中的类别不平衡问题,进而改善入侵检测分类器对于多数类样本的分类偏好问题,提高对少数类攻击和未知攻击的检测率。深度学习应用于入侵检测领域还处于起步阶段,今后将继续优化网络结构,进一步提高生成样本数量和质量。
表7 生成数据示例Table 7 Sample of generated data
续表
表8 多分类结果对比Table 8 Comparison of Multiple classification results