基于GAN的网络安全数据增强研究综述与展望
2022-12-03朱晓慧钱丽萍
朱晓慧 钱丽萍 傅 伟
(北京建筑大学电气与信息工程学院 北京 100044)(建筑大数据智能处理方法研究北京市重点实验室 北京 100044)
0 引 言
基于深度学习的人工智能技术蓬勃发展,在分类、识别、检测等领域都已取得显著进展。但多数研究均从网络结构、训练策略进行,忽视了数据本身的重要性。现存众多数据集都存在以下3个突出问题:
(1) 数据集规模小且数据相似度高,用于深度学习训练模型过程中易出现过拟合现象。
(2) 数据分布不均衡,正数据样本数量远大于负数据样本数量,不利于深度学习模型学习数据特征。
(3) 数据再采集和人工标注过程耗费大量人力、物力和财力。
针对数据集存在问题,国内外研究者加强对数据增强技术的关注。文献[1]对基于深度神经网络的少样本学习方法进行全面总结,将其分为数据增强、迁移学习[2]、度量学习、元学习[3]四类,通过对各类方法进行比较分析,阐明各方法对少样本学习的优劣之处和特点,但文中只将数据增强作为解决少样本学习困难问题的方法之一,没有详细阐释其对小样本数据集扩充的具体应用及意义。文献[4]对基于生成对抗网络的数据增强方法进行介绍,针对网络攻击检测数据综述其具体应用,只涉及部分网络攻击样本扩增实例介绍。本文将立足于生成对抗网络数据增强技术,对其在网络安全小样本数据增强上的应用全面调研分析,探究其可提升之处。
1 数据增强方法及生成对抗网络概述
深度学习是一种基于大数据的方法,数据规模越大、质量越高,训练所得模型性能和泛化能力越好。然而在实际采集数据过程中往往很难覆盖全部场景,且数据获取需要大量成本。若能够自动化生成各种训练数据,就能更好地开源节流。所以对多数小样本数据集而言,数据增强是不可缺少的部分。
1.1 数据增强
数据增强(Data Augmentation)也称数据扩增,是一种扩充数据规模的有效方法[5]。按照对数据集处理的不同阶段可分为离线增强和在线增强,离线增强直接对数据集进行处理,适用于较小数据集;在线增强先获取批量数据,然后再进行增强,适用于较大数据集。按照增强方式不同又可分为有监督增强和无监督增强,其中有监督增强指按照早已设定好的数据变换规则,在原数据基础上进行变换,有单样本数据增强和多样本数据增强;无监督增强可分为生成新数据和学习增强策略两个方向,前者通过模型学习原数据的数据分布,生成分布一致的新数据,以GAN[6]为代表,后者通过模型学习出适当的数据增强方法,以AutoAugment[7]为代表。分类架构如图1所示。
图1 数据增强分类
传统数据增强方法大多采用有监督形式,常用的包括旋转、裁剪、噪声、颜色变换、填充等操作。这些方法都是由使用者完全定义,并不适用于所有任务。因此为处理更多类型小规模数据集,使扩增数据更具多样性、合理性,许多研究者转向运用无监督的方式,提出多种生成式模型。近几年较主流的生成式模型有自动编码器、自回归模型、生成对抗网络,其中基于生成对抗网络的数据增强方法表现尤为突出。
1.2 生成对抗网络
生成对抗网络(GAN)由Goodfellow等[6]提出,是一种无监督学习的生成式模型。GAN思想的诞生启发于博弈论中二人零和博弈,由两个参与者对抗互相提升,所以相较于自动编码器[8]和变分自编码器[9]等传统生成模型,GAN中有两个模型:生成模型G和判别模型D。
这两个模型都可以被看作为黑匣子,是一种输入输出映射。原始GAN表示G和D只要是能够拟合相应生成和判别的函数即可,而在实际应用中二者多采用神经网络。其中G是一个样本生成器,用来拟合数据分布,目的是生成与真实数据极相似的数据以欺骗判别模型D。而D相当于一个二分类器,用来判别输入数据是否真实,目的是尽可能区分真实样本和生成样本。在训练过程中G和D单独交替迭代训练,在相互对抗中不断提高自身性能,构成动态的博弈过程。具体模型结构如图2所示,其中:x表示真实数据集中数据;z表示随机噪声。
图2 GAN模型
1.3 用于数据增强的生成对抗网络架构发展
自GAN问世以来,用于数据增强的生成对抗网络架构在继承原始GAN优点的同时不断克服其在理论与实践中的问题,相继出现CGAN[10]、DCGAN[11]、WGAN[12]、CycleGAN[13]等模型架构,为GAN更好用于小样本数据增强提供坚实的理论基础。
1.3.1CGAN
GAN的优势在于不需要预先假设数据分布而可以直接对数据分布进行采样,在理论上能够完全拟合真实数据,但在实践中发现该方式因没有任何限制而过于自由,对于较大图片和复杂数据,基础GAN将变得难以控制,于是Mirza等[10]提出条件生成式对抗网络理论(CGAN)。该模型对原始GAN附加约束,在生成模型和判别模型中引入条件变量y,理论上条件变量y可以采用各种有意义的信息,将无监督学习的GAN转变为弱监督或有监督的方式。条件生成对抗网络(CGAN)的提出一定程度上解决原始GAN因输入为没有限制的随机噪声而导致在训练过程中容易造成模型崩溃的问题,目前CGAN在MNIST和MIR Flickr25000数据集都取得不错的效果。
1.3.2DCGAN
深度卷积生成对抗网络(DCGAN)由Radford等[11]提出。通过对GAN网络结构的改进,首次将卷积神经网络运用到GAN中。在DCGAN中完全使用卷积层替代全连接层,整个网络结构中没有pooling层和上采样层,生成器和判别器总体呈对称分布,在实际运用中采用带步长的卷积层替代上采样过程,通过引入架构变化来解决训练不稳定、模式崩溃和内部协变量转换等问题,DCGAN的出现是GAN研究史上一个重要里程碑。Radford使用DCGAN在LSUN数据集上进行无监督学习,获得较高质量的生成样本。此后,在DCGAN结构基础上引入了大量GAN衍生结构。
1.3.3WGAN
然而DCGAN没有从根本上解决问题,且训练时仍需要小心平衡G、D的训练进程,往往采用交替迭代的方式训练。与DCGAN不同,WGAN主要从损失函数角度对GAN改进,研究者通过研究分析得出交叉熵不适合用来衡量不相交数据之间分布距离是造成原始GAN训练不稳定的主要原因,提出使用wassertein距离来衡量生成数据与真实数据分布之间的距离[12]。此模型架构不仅提高训练稳定性,还为类别数据的处理提供有效方法。在Kaggle竞赛中的Sberbank Russian Housing Market数据集上运用WGAN成功生成数据样本,扩展了包含连续数据和类别数据的数据集,获得了稳定且收敛的损失函数曲线。
1.3.4CycleGAN
利用原始GAN和已有衍生GAN模型直接生成风格相同的数据扩充数据集已经得到很好应用,然而由不成对数据集通过风格迁移来增强数据却没有较好的实现方法。基于此,CycleGAN[13]模型架构应运而生,其创新点在于能够通过没有成对的训练数据将图片内容从源域迁移到目标域。CycleGAN有别于传统的单向GAN,由两个生成网络和两个判别网络组成,整个网络是一个对偶的环形结构,可以将某一类图片转化成另一类图片,提高图片数据增强的多样性。
2 GAN在网络安全数据增强中的应用
鉴于网络数据的特殊性,现存数据集规模普遍较小。为发挥深度学习优势,自动生成符合真实数据分布的可用攻击数据,研究者加强对GAN用于数据增强的探究。本节将先对网络安全常用数据集进行介绍,然后选取部分已采用GAN进行增强的数据集展开阐述。
2.1 网络安全数据集
目前网络安全数据集已有很多,常见的有:AWID[14]、Booters[15]、CIC DoS[16]、CICIDS 2017[17]、CIDDS-001[18]、CIDDS-002[19]、CTU-13[20]、DARPA[21-22]、DDoS 2016[23]、IRSC[24]、ISCX 2012[25]、ISOT[26]、KDD CUP99[27]、PUF[28]、UNSW-NB15[29]、Botnet(僵尸网络)[30]、Malicious-URLs等。本节将对这些数据集进行介绍、分析与比较,具体如表1所示。
表1 网络安全常用数据集
续表1
通过表1发现:(1) 现存常用的网络安全数据集规模普遍较小;(2) 数据采集大多通过模拟网络环境获得;(3) 部分在真实环境中创建的数据集因其隐私性而不能公开使用。
2.2 GAN增强网络攻击数据
2.2.1恶意软件生成
恶意软件检测是网络入侵检测的重要部分之一,近年来深度学习技术已被用于检测新的恶意软件。为获得大量合乎要求的恶意软件数据用于训练,提高检测率,许多研究者投入到对生成模型的探究中。文献[31]提出一种基于生成对抗网络的算法-MalGAN,用来生成对抗恶意软件示例。该模型由神经网络结构的生成器和替代判别器构成,先将噪声和原始恶意软件样本作为输入放进生成器;然后将生成的恶意样本与原始良性样本一起送入黑盒进行分类识别并打上标签;最后将分类结果作为替代判别器的输入,用来训练判别器。以此迭代训练,调整参数直至整个过程结束。由此生成的恶意软件能够躲避检测器检测,甚至可以使检测率降低至零,丰富了现有恶意软件数据集。
Hu等[32]针对基于机器学习的恶意软件检测算法在对抗性示例攻击下很脆弱问题提出一种新颖的生成算法,生成顺序对抗性示例。该算法采用循环神经网络(RNN)结构的生成器和判别器,将恶意软件的API序列作为输入,经过生成器生成对抗性API序列,再用良性序列和生成序列训练判别器,最终生成的示例无法被基于RNN的恶意软件检测算法检测出来。该对抗性样本生成算法既可以应用在现有恶意软件,也可以用在看不见的恶意软件。
文献[33]实施一种新颖的端到端黑盒方法,针对许多先进机器学习恶意软件分类生成对抗性示例样本。文献[34]为可靠地检测包括零日时差攻击在内的恶意软件,提出一种转移深度卷积生成对抗网络方法-tDCGAN。该方法生成伪造恶意软件,并将其与真实数据分开。其架构包括生成器、判别器和深度自编码器,在训练GAN之前运用深度自编码器学习恶意软件特征,然后更加稳定地训练生成器和判别器。实验结果证明将tDCGAN生成数据用于训练分类器,能够有效提高平均分类精度,增加学习稳定性。文献[35]采用文献[34]所用数据集,提出一种转移生成的对抗网络方法-tGAN,基于转移学习对GAN生成器进行预训练,并通过GAN鉴别器对恶意软件检测器进行预训练,包括预训练模块、生成模块和检测模块。实验结果表明该模型具有很好的检测性能,但其恶意软件生成性能的优劣还有待测试。
文献[36]为检测带有混淆的恶意软件,提出一种潜在语义控制生成对抗网络(LSC-GAN)方法。该方法先由可变自动编码器投影数据提取特征,再将带有i特征的特定高斯分布经生成器学习生成具有i特征的恶意软件,生成数据带有经过修改的特征。实验结果显示,LSC-GAN模型生成数据与真实数据相似,且经由此训练的检测器平均检测精度高于其他常规模型。
文献[37]以MalGAN研究为基石,深入研究提出一种双目标GAN方法(E-MalGAN)。该方法能够生成信息不完整的对抗性示例,采用两个目标不同的判别器来扩展传统GAN,由其生成的恶意软件样本具备攻击性,能够突破配备防火墙的检测系统,有效增强恶意软件数据量。同样针对MalGAN存在的现实问题,文献[38]对其生成器模型和替代检测器模型进行改进,从多个正常和恶意软件中创建API列表。实验结果显示改进MalGAN可以生成特征量,获得更好性能。
文献[39]是一项比较研究,将目前两种最受欢迎且最有前途的生成模型-生成对抗网络(GAN)和变异自动编码器(VAE)进行比较,阐述二者对恶意软件数据的生成,讨论其优劣之处。在分析性能和结果后可知使用GAN模型生成恶意软件数据比VAE更加有效,更有利于提高检测准确性。为生成携带PE文件的恶意软件,更有效地进行对抗学习,文献[40]设计使用GAN通过注入字节级扰动来生成恶意软件对抗性示例的方法。该方法能够扩展先前检测到的PE恶意软件攻击向量,生成的对抗性示例能够成功绕过静态恶意软件分类器。文献[41]针对真实网络攻击数据不平衡问题,提出一种使用GAN创建相似攻击流量的方法,通过增强数据集来提高攻击流量数据检测的准确率。运用该方法对入侵检测学习常用数据集如NSL-KDD、ISCX 2012和USTC_TFC 2016数据集进行扩增,实验结果表明每个数据集中的不平衡问题都得以缓解,分类准确率提高10~12%。
与其他GAN变体不同,文献[42]将视角放在鉴别器上,提出一种基于GAN的僵尸网络检测增强框架,该网络通过生成器连续生成“假”样本,并扩展标记的数量,帮助原始模型进行僵尸网络检测和分类。
2.2.2恶意域名生成
目前针对网络恶意攻击的主流检测方法包括基于人工规则的检测算法和基于机器学习的检测算法,然而它们分别存在无法及时识别检测快速更新的DGA域名和缺乏训练数据的问题。为解决这些问题,研究者尝试采用GAN对域名数据进行增强,但由于朴素GAN在处理如序列这种离散数据时,存在生成器难以传递梯度更新和判别器难以评估完整序列问题,所以利用GAN生成具有序列性域名数据的研究较少。文献[43]提出一种基于GAN的域名生成算法,构建一个基于字符的生成器,模仿Alexa域名分布。其框架包含自编码器、生成器和判别器,自编码器是一个数据压缩算法,用于对放入训练的数据进行预先处理和转换,生成器和判别器进行迭代训练达到平衡,最终生成符合字符分布、无法被分类器识别的域名。
在文献[43]基础上,袁辰等[44]改进域名编解码器构造和复杂的数据处理变换,更有针对性地提出一种结合编、解码器和GAN的方法,用于生成符合真实恶意域名分布的域名变体样本。文献[44]对离散数据进行处理,加入编、解码器设计,将数据放入GAN中训练之前先通过设置的编码器对样本数据进行分析变换。具体模型结构如图3所示。
图3 基于GAN的DGA域名字符生成网络模型
该恶意域名生成模型主要由域名编码器、生成网络、判别网络、域名解码器组成。其中:编码器是基于字符的ASCII码规则进行编码;生成网络和判别网络均采用四层神经网络结构,在Alexa数据集和100万条DGA恶意域名样本上进行实验,从能否作为域名、域名字符频率和由生成域名训练分类器的分类结果三方面做出分析。结果表明,生成的恶意域名从外形结构到各字符分布都与真实样本差别不大,分类各指标与基准值保持同一性能状态,生成数据具备有效性。
文献[45]利用GAN生成域名对抗样本,由实验验证生成的对抗样本在充当恶意域名数据和预测未知DGA时均有良好表现。由于GAN在处理离散序列数据上的局限性,文献[46]提出SeqGAN进行改进,对未来基于GAN生成更高质量的域名对抗样本拓展思路。
2.2.3恶意网络流生成
在网络安全防护中除对恶意域名的检测外,恶意网络流的检测也是不可忽视的一部分。相较于域名,网络流中所包含的信息量更多,各属性之间的关联度更密切,因此想要通过算法自主学习特征并生成恶意网络流数据面临着巨大的考验,并且网络流数据不同于图像样本,新生成的样本数据不仅需要满足视觉角度上整体结构的相似性,还需要保证样本具备有效的可执行性和攻击性,这一特殊性无疑也成为恶意网络流样本增强的严苛条件。基于对上述问题的考虑,潘一鸣等[47]提出一种基于GAN的新模型MNF-GAN,首次将恶意网络流作为原始样本进行扩展生成。文献[47]采用UNSW-NB15数据集,先对网络流样本通过预处理转化为合理的特征向量形式,然后放入由生成网络、判别网络和验证网络组成的对抗模型结构中,生成符合原恶意网络流分布的数据。
文献[47]中还提出弱相关位的概念,其目的是保证生成样本在形式上满足网络流的基础上,依然能够具有有效的可执行性和攻击性。通过直接修改恶意网络流样本弱相关位的方法生成对抗样本,在实际应用中更有意义。由对生成样本检出率和攻击性的验证实验表明,恶意网络流可以直接作为深度学习模型的初始样本,用于增强数据。
2.2.4恶意代码生成
恶意用户通过浏览器端脚本语言JavaScript攻击其他用户客户端浏览器,实施破坏盗取信息。为提供更加安全的网络环境,在恶意代码执行之前高效地将其检测出来,研究者在传统的静态检测和动态检测方法基础上将机器学习技术运用于恶意代码识别。然而恶意JavaScript代码难以收集且难以进行人工标记,所以使用现有小规模恶意代码库进行机器学习的训练无法发挥其优势。为对恶意代码数据进行增强,曹启云等[48]提出基于GAN的恶意代码生成方法。该方法将有监督学习和无监督学习相结合,通过最小化损失使GAN生成的样本既能拟合有标签数据,又能由无标签数据学习特征。
模型框架包含生成模型和判别模型,二者均采用有多个隐含层的神经网络,具体如图4-图5所示,其中W表示各层各输入分量对应的权重参数。
图4 生成网络模型
图5 判别网络模型
按照上述模型框架,文献[48]设计方法选择API作为特征,先将收集的JavaScript代码以选取的225个API进行数据预处理,处理为225维的二进制向量;然后将一个满足高斯正态分布的随机噪声放入生成器,经过多层隐含层后生成225维的样本数据;再将真实样本和生成样本输入判别器,经多层隐藏层后给出真假样本以及真实样本良恶性的判断。通过两个模型的交叉训练,达到纳什平衡。最后由在RF、LR、DT、SVM、KNN五种分类器上的分类效果来验证生成样本的有效性,实验结果表明,文献[48]所提方法有效生成大量接近真实样本且无须人工标记的数据,对于传统分类器提升近5%的识别效果。
2.2.5小 结
本节对上述网络恶意数据样本生成方法进行总结,表2从模型结构、创新之处、数据集、生成样本效果、实际应用价值等方面展示。
表2 网络数据增强模型总结
续表2
本节介绍目前GAN在网络安全小样本数据增强上的发展与应用。通过探究发现,运用GAN对网络安全数据集主要从两方面进行增强,(1) 转化为图像,先将网络安全数据进行简单图像转换再学习特征,生成样本数据;(2) 从文本角度,分析找寻网络安全数据本身内容和结构形式存在的联系和特点,生成具有序列关系或分布特点的样本数据。
3 展 望
基于GAN的数据增强技术在图像数据增强方面应用已经相当成熟,通过其扩增的数据不仅达到数量上的需求,还具备较高的质量,部分研究者将GAN对网络安全数据增强与图像处理相结合,推动网络安全领域理论和应用的发展。也有部分研究者坚持从文本角度深入研究,探究更好处理离散数据的GAN衍生模型。
从图像角度,经研究发现图像数据和网络恶意代码指令二者形式虽不同但存有相通之处,可以将恶意代码先转化为图像图再处理。此想法在恶意代码分类方向已经得到初步应用,在Kaggle平台上发起的恶意代码分类竞赛中,冠军参赛者通过将恶意代码转换为图像并将其选作特征进行学习,获得了理想分类效果;同样文献[49]训练恶意代码分类检测系统也将该思想运用其中。由此看出将恶意代码作为图像处理能够有效学习到特征。基于该思想提出两个未来研究方向:
1) 与GAN结合应用于数据增强方向。此前将网络安全数据转换为图像处理多用于检测或分类,目前还没有系统将其应用于数据增强且具备较好通用性的研究。如何将基于GAN的图像数据增强方法应用于恶意网络代码数据集的增强,促进网络安全领域的发展值得探讨。
2) 优化或寻找合适的转化方法。通过二进制值-灰度值映射能够实现图像转换,但由于其简洁的过程会导致有效信息丢失且转换效率不高,因此亟须从多方面探究能够保全信息、表现内部特征、突出不同家族恶意代码差异并且提高效率的转换方法。
从文本角度,由研究发现在改良原始GAN模型基础上,能够避开生成器离散数据采样的问题,生成离散文本数据。但目前运用GAN生成网络安全数据方法只是选取某个具体特征,如字符特征或API序列等,涉及范围和包含信息较少。鉴于此后续可以从以下两个方向加强研究:
1) 探究覆盖信息更多的文本数据编码方式,使处理后放入GAN中训练的数据包含更多网络记录信息,并能够处理长文本数据。
2) 寻找能够挖掘网络安全数据之间深层关联的方法,与GAN结合,使生成数据在满足基础字符或数据特征基础上,能够体现如上下文关系之类的深层特征,更好地具备真实数据特点。
4 结 语
本文综述生成对抗网络对网络安全小样本数据集进行数据增强的方法,首先介绍数据增强技术研究的必要性以及GAN思想应用于数据增强上的充分性;然后具体探究GAN对恶意网络数据集的增强应用,展现其在网络安全领域极大的潜在价值和可能;最后在现有研究基础上从两方面提出展望,将GAN对图像数据成熟的增强技术运用于网络安全数据的扩展,另外加强从文本处理角度生成网络安全数据方法的探究。GAN作为一种无监督的深度生成式模型,其强大的生成能力还有待人们研究挖掘,融会贯通增强各种形式小样本数据集,推动多领域发展。