一种基于生成对抗网络数据增强的工业控制恶意代码识别方法与流程
未命名
08-22
阅读:100
评论:0
一种基于生成对抗网络数据增强的工业控制恶意代码识别方法
一、技术领域
1.本发明涉及工业控制恶意代码分类识别领域,具体是一种基于生成对抗网络数据增强的工业控制恶意代码识别方法。
二、
背景技术:
2.随着互联网的发展以及工控系统中信息技术和运营技术的集成与融合,ics受到的恶意代码威胁数量急剧增加。在对恶意代码的不断研究中,恶意代码的分类识别技术也日新月异,基于静态分析的分类识别技术、基于动态分析的分类识别技术以及基于机器学习的分类识别技术(混合分析法)层出不穷。基于静态分析的识别适用于未经混淆的恶意代码,但是在混淆的恶意代码和大规模的恶意代码两个方面上效果不佳;基于动态分析的识别相比更加适用于混淆的恶意代码,但是同样在大规模的恶意代码分类识别上效果有限;在恶意代码样本大批量生成、数目剧增的时代背景之下,静态分析法和动态分析法在面对大规模的恶意代码样本分类时候已经力不从心了,因此出现了融合机器学习算法的混合分析法,并在恶意代码分类识别上取得了较好的效果。基于机器学习的恶意代码识别是通过在大批量的恶意代码样本集上进行特征提取,然后结合分类聚类的机器学习方法,用数据集充分训练分类器,这有效地提高了大规模恶意代码的识别性能与速度。
3.即便如此,现在的基于机器学习的的各种恶意代码识别技术虽然理论上都可以用于工业控制系统,但是直接用于工业控制领域不会有很好的效果,需要进行改进。首先,现在基于机器学习的恶意代码分类识别技术主要集中在windows、ios、android等平台,需要大量的恶意代码数据样本进行训练才能有很好的效果,而工业控制领采集恶意代码样本数量较少,直接照搬已有方法会由于模型训练不充分很难有满意的识别准确率。
4.其次,已有的研究大多集中在提高模型的恶意代码分类效果,在提升模型的抗攻击能力上有所欠缺。基于机器学习的恶意代码分类识别模型在实际应用中容易被恶意代码发布者故意生成的对抗样本操纵。恶意代码发布者只需要对样本进行例如间接寻址、无用代码插入、代码重排序这样的细微改变,就能让样本躲过分类器的识别,使其产生不正常的判断结果。这些可能的对抗攻击给恶意代码分类模型带来了潜在的安全威胁,对于工业控制这类对安全要求很高的系统而言,不具有对抗性的分类模型是行不通的。综上所述,虽然基于机器学习的恶意代码识别技术已经取得较好的效果,但是存在抗攻击能力不强和需要大量真实样本的问题,导致无法直接用于工业控制系统。
5.本文为了解决上述两个问题,提出了一种基于生成对抗网络数据增强的工控系统恶意代码识别方法de4mci(data enhancement for malicious code identification)。该方法受到生成对抗网络的启发,结合vae网络和gan网络,直接生成虚拟恶意代码样本,通过增强数据集和分类器的鲁棒性来提高分类器的性能,提高对恶意代码发布者对抗手段的抵抗能力。生成器用于生成恶意代码样本,判别器用于判断样本真实与否,分类器用于恶意代码的分类。生成器网络以生成能骗过判别器让其误判为真实样本的假样本为目的,判别器
网络则以能准确判断样本真假为目的,两者形成对抗,在博弈的过程中达到均衡,则模型训练完成。此时模型生成器网络可以生成接近真实样本的假样本,判别器无法判断真假样本,输入概率为0.5。这样即便原始数据样本数量不多,也能通过生成器生成样本,使后期模型训练更加充分,达到更好效果。用原始数据集和生成样本数据集一起训练分类器,增强了分类器的鲁棒性,提高了分类器的性能以及抗攻击能力。
三、
技术实现要素:
6.本发明的目的在于提出一种基于生成对抗网络数据增强的工控系统恶意代码识别方法解决现有恶意代码分类的少样本训练问题和抗攻击水平弱的问题,提高分类器的性能以及抗攻击能力。
7.本发明的目的是这样达到的:
8.通过结合vae和gan的方式,根据已有真实样本直接生成相似的对抗样本,以增强数据集,改善了现有模型在样本数量不足的情况下分类识别效果差的问题。和经典的cnn卷积神经网络结合,将真实样本和生成样本一起作为训练数据集来训练分类器网络,增强分类器对攻击者对抗样本的抵抗能力。
9.具体方式如下:
10.一种基于生成对抗网络数据增强的工控系统恶意代码识别方法,包括如下步骤:
11.步骤1、恶意代码特征提取阶段,利用word2vec将指令转换为词向量并拼接为向量矩阵,作为恶意代码样本的特征向量矩阵;
12.步骤2、恶意代码样本生成,利用vae和gan之间互补的关系,将两者结合起来用于生成恶意代码对抗样本,恶意代码样本生成阶段模型包含vae网络、gan网络和分类器网络三个部分;vae模型不容易找到一个能衡量生成恶意代码样本接近真实恶意代码样本的合理标准,只能用mse之类方法进行粗略误差估计,会导致生成的图像模糊甚至偏离真实图像;但是vae通过编码器enc获取了真实样本到预设潜空间z的映射,建立了真实样本x和潜向量z之间的映射关系,即获取了每个类型样本的噪声分布。利用这个分布,就不会“随便”生成样本,通过噪声选择生成不同的样本,保证生成样本有意义,是研究所需要的。
13.gan网络将判别器网络的判断结果作为衡量生成恶意代码样本接近真实恶意代码样本的标准,生成的样本图像清晰且无偏离,但由于生成器会“不择手段”骗过判别器从而导致生成的样本缺少意义,例如gan可能存在模式坍塌的问题,即生成器gen找到判别器dis的“判别漏洞”,对不同的潜向量输出相同的样本以成功逃过判别器的判断。
14.本发明利用vae和gan之间互补的关系,将两者结合起来用于生成恶意代码对抗样本。与此同时,本文要做的恶意代码样本分类识别,不是简单地判断样本是否是恶意代码,而是要判断每一个恶意代码样本属于哪一个恶意代码家族。也就是说,本文的恶意代码样本是有类别标签的。为了让生成的恶意代码样本更加的细粒度,在结合vae和gan的基础上,还加入了一个分类器cl,对生成样本的类别进行判断,以保证生成样本是想要的类别。
15.步骤3、恶意代码分类识别,卷积神经网络cnn作为分类器,将真实样本和生成样本一起作为训练数据集来训练分类器网络。将恶意代码样本数据集按照8:2的比例进行分割,每一个恶意代码家族的样本也是按照8:2的比例进行分割,以保证每一份样本中均匀的包含所有恶意代码家族,其中80%的部分为训练集用于训练分类器、20%的部分为测试集用
于验证分类器效果;
16.本发明的积极效果是:
17.本发明针对现有恶意代码分类的少样本训练问题和抗攻击水平弱的问题,通过结合vae和gan的方式,根据已有真实样本直接生成相似的对抗样本,以增强数据集,改善了现有模型在样本数量不足的情况下分类识别效果差的问题。和经典的cnn卷积神经网络结合,将真实样本和生成样本一起作为训练数据集来训练分类器网络,通过结合vae和gan的方式,根据已有真实样本直接生成相似的对抗样本,以增强数据集,改善了现有模型在样本数量不足的情况下分类识别效果差的问题。和经典的cnn卷积神经网络结合,将真实样本和生成样本一起作为训练数据集来训练分类器网络,增强了分类器的鲁棒性,增强分类器对攻击者对抗样本的抵抗能力。
四、附图说明
18.图1是对抗样本生成流程。
五、具体实施方式
19.下面结合附图对本发明的具体实施方式做进一步的详细说明。
20.如图1所示,enc是vae网络的编码器(encoder),可以根据输入的恶意代码样本x,将其编码为隐变量z;gen既是vae网络的解码器(decoder)也是gan网络的生成器(generator),可以将隐变量z解码为x',即生成恶意代码样本,该样本属于类别c;dis是gan网络的判别器(discriminator),判断输入样本真实与否;cl是分类器(classifier),对输入的恶意代码样本进行分类,输出样本x对应的类别;c是给定恶意代码样本x对应的类别,即属于哪个恶意代码家族;是vae部分的kl损失函数,表示隐向量分布p(z)和预设分布之间的差距;是gan网络的生成器(generator)gen部分的损失函数,包含了,两个损失函数在内;是gan网络的判别器(discriminator)dis部分的损失函数;是gan网络的生成器(generator)gen部分的损失函数组成部分之一;是分类器(classifier)cl部分的损失函数;是gan网络的生成器(generator)gen部分的损失函数组成部分之一;对抗样本生成实现步骤如下:
21.步骤1、定义潜变量,变分自编码器vae首先假设恶意代码样本服从某些常见的分布,然后通过训练编码器enc和生成器gen得到从真实样本x到生成样本x'的映射,期望同时达到生成图片和真实图片相似,潜变量分布接近预设的分布这两个目的。本文只用vae的encoder部分的设计,使预设的样本服从分布接近于潜向量分布n(0,1),以便后续的gan生成器可以通过潜向量分布采样得到输入样本;
22.步骤2、生成恶意代码样本,流程图中每一个损失函数定义如下:
23.fd特征为判别器网络dis上最后一个全连通层的输入;
24.特征为分类器网络cl上最后一个全连通层的输入;
[0025][0026]
ld=-(logd(x)+log(1-d(x
′
)))
[0027]
lc=-logp(c|x),p(c|x)为每个样本经过分类器的输出,表示每一个类别的可能概率;
[0028]
l=ld+lc+λ1l
kl
+λ2lg+λ3l
gd
+λ4l
gc
[0029]
在训练过程中,根据损失函数的结果,采用梯度下降的方式不断更新参数θ,更新顺序如下:
[0030][0031][0032][0033][0034]
其中,表示分类器cl的参数;表示判别器dis的参数;表示生成器gen的参数;表示编码器enc的参数:重复上述过程,当收敛,生成器gen达到最优的时候,恶意代码对抗样本生成阶段的模型训练到此结束。
技术特征:
1.一种基于生成对抗网络数据增强的工业控制恶意代码识别方法,其特征在于,所述方法包括以下步骤:步骤1、恶意代码特征提取阶段,利用word2vec将指令转换为词向量并拼接为向量矩阵,作为恶意代码样本的特征向量矩阵;步骤2、恶意代码样本生成,利用vae和gan之间互补的关系,将两者结合起来用于生成恶意代码对抗样本,恶意代码样本生成阶段模型包含vae网络、gan网络和分类器网络三个部分,其中,enc是vae网络的编码器(encoder),可以根据输入的恶意代码样本x,将其编码为隐变量z;gen既是vae网络的解码器(decoder)也是gan网络的生成器(generator),可以将隐变量z解码为x’,即生成恶意代码样本,该样本属于类别c;dis是gan网络的判别器(discriminator),判断输入样本真实与否;cl是分类器(classifier),对输入的恶意代码样本进行分类,输出样本x对应的类别;c是给定恶意代码样本x对应的类别,即属于哪个恶意代码家族;l
kl
是vae部分的kl损失函数,表示隐向量分布p(z)和预设分布之间的差距;l
g
是gan网络的生成器(generator)gen部分的损失函数,包含了l
gd
,l
gc
两个损失函数在内;l
d
是gan网络的判别器(discriminator)dis部分的损失函数;l
gd
是gan网络的生成器(generator)gen部分的损失函数组成部分之一;l
c
是分类器(classifier)cl部分的损失函数;l
gc
是gan网络的生成器(generator)gen部分的损失函数组成部分之一;每一部分步骤如下:2.1)定义潜变量,变分自编码器vae首先假设恶意代码样本服从某些常见的分布,然后通过训练编码器enc和生成器gen得到从真实样本x到生成样本x’的映射,期望同时达到生成图片和真实图片相似,潜变量分布接近预设的分布这两个目的。本文只用vae的encoder部分的设计,使预设的样本服从分布接近于潜向量分布n(0,1),以便后续的gan生成器可以通过潜向量分布采样得到输入样本。2.2)生成恶意代码样本,流程图中每一个损失函数定义如下:f
d
特征为判别器网络dis上最后一个全连通层的输入;特征为分类器网络cl上最后一个全连通层的输入;l
d
=-(logd(x)+log(1-d(x
′
)))l
c
=-logp(c|x),p(c|x)为每个样本经过分类器的输出,表示每一个类别的可能概率;l=l
d
+l
c
+λ1l
kl
+λ2l
g
+λ3l
gd
+λ4l
gc
在训练过程中,根据损失函数的结果,采用梯度下降的方式不断更新参数θ,更新顺序如下:如下:如下:
其中,表示分类器cl的参数;表示判别器dis的参数;表示生成器gen的参数;表示编码器enc的参数:重复上述过程,当收敛,生成器gen达到最优的时候,恶意代码对抗样本生成阶段的模型训练到此结束;步骤3、恶意代码分类识别,卷积神经网络cnn作为分类器,将恶意代码样本数据集按照8:2的比例进行分割,每一个恶意代码家族的样本也是按照8:2的比例进行分割,以保证每一份样本中均匀的包含所有恶意代码家族,其中80%的部分为训练集用于训练分类器、20%的部分为测试集用于验证分类器效果。
技术总结
本发明的目的在于提出一种基于生成对抗网络数据增强的工控系统恶意代码识别方法解决现有恶意代码分类的少样本训练问题和抗攻击水平弱的问题。通过结合VAE和GAN的方式,根据已有真实样本直接生成相似的对抗样本,以增强数据集,改善了现有模型在样本数量不足的情况下分类识别效果差的问题。和经典的CNN卷积神经网络结合,将真实样本和生成样本一起作为训练数据集来训练分类器网络,增强分类器对攻击者对抗样本的抵抗能力。击者对抗样本的抵抗能力。
技术研发人员:黄鑫茂 何正洪 罗宇奎 黄长海 王诗雨
受保护的技术使用者:四川长城计算机系统有限公司
技术研发日:2023.03.16
技术公布日:2023/8/21
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
