文章基本信息
作者:Yuqi Qing et al. (清华大学李琦团队)
代码
文章
摘要
- 存在问题:收集包含足够数量的带有正确标签的加密恶意数据的训练数据集是具有挑战性的,当使用低质量的训练数据训练机器学习模型时,它们的性能会下降。
- 研究目标:解决现实世界中的低质量训练数据集问题,即检测由不断演变的恶意软件生成的加密恶意流量。
- 核心思想:利用正常和恶意流量数据之间的分布差异来估计每种类型数据的可能位置。
方法概述
三个组件:
- 特征提取模块:将原始加密流量转换为(表示细粒度行为的)特征向量。基于改进的 AE 架构,以无监督的方式工作,以防止错误的标签污染特征向量。
- 标签噪声校正模块:通过自回归生成模型估计训练数据的分布,重新标记表现出最明显分布特征的训练数据,并通过集成学习(7 个机器学习方法)推断剩余数据的标签(首先确定一部分高置信度的数据样本标签,然后将其余的所有样本重新打上标签)。
- 数据增强模块:利用经过标签校正的训练数据,选择要生成的恶意数据可能分布的区域,使用了一个改进的 GAN 模型来生成位于这个目标区域的新恶意数据,将生成新数据和校正过标签的数据混合进行训练。
整体流程:特征提取>分布估计>数据生成>(数据应用)
特征提取模块
一个改进的自动编码器,它分为嵌入层、堆叠的双向GRU(分别是encoder和decoder,分别都为两个Bi-GRU,decoder中的第一层和encoder不同,剩下都一样)和重建层。作用是从流量数据的包长序列中提取特征向量。
(代码分析后面有空了补上)
标签纠正模块
这一部分主要目的是为了利用现有的数据,进行分布的估计,然后根据估计出来的分布来纠正标签。这一部分根据论文所写的是随机从三个数据集中抽取500个良性流量和500个恶意流量,使用特征提取模块提取每个流的特征向量。
使用TSNE算法将特征向量降维到1维,再使用核密度估计来估计两种流量的分布情况。下图是文中可视化后的结果。
从图中可以看出良性流量和恶意流量确实存在分布差异(这里也是我们需要验证的,需要在其他数据集上进行复现)
因此,我们可以估计低质量训练数据的分布,然后识别位于分布最密集和最稀疏区域的训练样本,如下图所示。
可以看到,右图横坐标代表了样本密度,其中密度高的样本就认为是正常流量,密度低的样本认为是恶意流量。并据此重新打标签。
但是存在的问题是,核密度估计等传统统计方法无法准确估计高维数据的分布。其次,正常数据分布和恶意数据分布之间的差异可能并不显着,特别是对于不太频繁的正常操作。
所以,本文采用了MADE进行分布估计,也就是说,最后本文并没有直接使用核密度估计和TSNE算法来进行分布估计,而是使用了先前的工作MADE(实际上,本文的代码中也集成了大量MADE中的代码,这实际上在图1中并没有标明,标签纠正模块也基本是MADE的工作)。最后根据预测的分布来纠正低质量训练数据的标签。
数据增强模块
通过上述特征提取和标签纠正,最后得到了目标数据集的分布情况,核心思想就是根据预测的分布来生成数据达到数据增强的效果。作者提出的现有的research gap是普通GAN模型只能生成遵循原始训练数据分布的新数据。而本文的创新是预测新的流量可能出现的分布,文中给了下图中的三个情况。
- 第一种情况是新的恶意流量可能会更接近正常流量,因为恶意流量为了绕过检查,所以会尽力装为正常流量。
- 第二种情况是新的恶意流量可能是从未出现过的0 Day攻击,所以会与现存的所有流量都有差距。
- 第三种情况实际上是生成正常流量的边界,如果单纯在上述两个边界的情况下生成数据,会加剧类别不平衡,使决策边界向正常流量转移,导致误报增多。因此文章使用原始训练数据中正常流量的分布作为边界,生成新的正常流量。
为了使生成的数据符合上述三种情况,本文提出了一种改进的GAN,结构如下图所示。
它根据每一种情况单独设计一个生成器,利用定制的损失函数来学习目标数据分布。最终的结构就是三个生成器网络和一个判别器网络。并且,为了避免模型崩溃问题,并进一步增加合成数据的多样性,数据增强模块实际上训练了三个独立的GAN,并将所有合成的数据组合起来作为新的训练数据。
下图是代码运行后生成的三个GAN模型。
文章主要贡献
文章核心是数据增强,考虑在缺乏训练数据以及训练数据质量过低时,使用什么方法可以提高数据集质量。
文章的思路大致如下:首先我们发现了流量数据集质量往往很差,这是无法避免的,因为流量数据的异构性。并且,我们发现了在大部分的数据集中,恶意流量和正常流量的分布是不同的,那么我们就可以根据这个不同来界定两者的边界。进一步,根据这个边界,对现有的数据进行划分(标签噪声纠正)以及对未来的数据进行划分(考虑的两种恶意流量的边界和一种正常流量的边界),从而指导数据生成,达到数据增强的目的。
文章比较好的地方是将数据的质量、正常流量和恶意流量的特征转换为特征空间中的分布情况,从而利用数学方法来进行分析,得到了最终的结论。