一种源代码分类模型鲁棒性增强方法、系统及处理器技术方案

技术编号:39041006 阅读:8 留言:0更新日期:2023-10-10 11:53
本发明专利技术涉及一种基于不变特征的源代码分类模型鲁棒性增强方法、系统及处理器,该方法包括:将非鲁棒性特征进行组合,以生成多种风格模板,使用代码变换程序将输入代码训练集中的代码变换成不同风格的新代码,以得到新代码组成的变换代码训练集,将输入代码训练集与变换代码训练集合并为扩充训练集,将扩充训练集中的代码文本转换为代码图片;通过数据预处理将代码图片转化为模型训练所需向量,在扩充训练集中随机抽取同类别的样本进行配对并输入到特征提取器,使用对比学习的方法迭代更新特征提取器和样本匹配对并提取出目标特征,将提取的不变特征输入分类器进行训练,以输出模型该系统包括:定向训练集扩充模块和强鲁棒性分类模型训练模块。类模型训练模块。类模型训练模块。

【技术实现步骤摘要】
一种源代码分类模型鲁棒性增强方法、系统及处理器


[0001]本专利技术涉及深度学习模型鲁棒性研究中增强源代码分类模型鲁棒性领域,尤其涉及一种基于不变特征的源代码分类模型鲁棒性增强方法、系统及处理器。

技术介绍

[0002]随着计算机技术的发展和普及,软件已广泛应用于各个领域。然而,这些软件也带来了安全性问题。为了解决这些问题,源代码分类技术成为了安全研究的一个重要方向,其中包括漏洞检测、代码作者识别和克隆检测等技术。相较于传统方法,深度学习模型能够学习到各种不同类型的漏洞模式、编码风格、习惯、语法、结构和风格等特征,从而实现了自动化发现漏洞、自动识别代码作者以及检测出相似的代码克隆。深度学习模型具有更高的准确性和扩展性,可以更准确地识别代码中的结构和模式。
[0003]目前模型鲁棒性增强的方法广泛应用于深度学习模型的训练,主要包括以下几种:
[0004]1.数据增强:在训练数据上进行变换增加数据多样性,减少模型对特定数据分布的过拟合;
[0005]2.正则化:在损失函数中添加正则项,以限制权重参数的大小,防止模型过拟合;
[0006]3.对抗训练:通过让模型预测对抗样本的正确性来提高模型的鲁棒性;
[0007]4.分类网络结构设计:使用更具鲁棒性的网络结构,如卷积神经网络,来提高模型的泛化能力。
[0008]CN114503108A公开了一种方法和系统,用于通过计算系统中的一个或多个处理器来保护经过训练的机器学习模型。通过向一个或多个经过训练的机器学习模型添加对抗性保护,一个或多个强化的机器学习模型可以抵御对抗性攻击。
[0009]CN108108184A公开了一种基于深度学习网络的源代码作者识别方法,属于Web挖掘和信息抽取领域。该专利技术包括如下步骤:构建源代码数据集,对源代码数据进行预处理;基于连续n

gram代码段模型提取源代码特征;基于训练源代码文件样本训练深度学习网络模型;利用经过训练的深度学习网络模型进行源代码文件的作者识别,输出源代码文件的作者识别结果。
[0010]CN113760358A公开了一种面向源代码分类模型的对抗样本生成方法,包括数据预处理、代码转换方式的提取、候选转换方式的选择、执行转换、攻击测试和奖励机制。该专利技术针对源代码的结构信息,提取出可执行的对抗操作,并引入了马尔可夫决策过程和时序差分算法的思想,在执行对抗操作的同时,加入操作的影响系数来引导操作的选择执行,通过决策学习来不断完善对抗生成方法。
[0011]但是深度学习模型的鲁棒性增强方法在源代码分类模型中并不完全适用。增强源代码分类模型的鲁棒性还存在以下几方面的困难:
[0012]数据量不足,深度学习模型需要大量的数据进行训练,而在源代码领域中,数据量往往相对较小。因此,如何有效地利用有限的数据进行模型训练,提高模型的鲁棒性,这是
一个难点;
[0013]特征提取问题,在源代码领域中,代码的特征表达方式比较复杂,如何提取有效的代码特征是一个挑战。一方面,不同类型的代码可能需要不同的特征提取方法,另一方面,代码的特征提取可能受到代码风格、命名规范等因素的影响,因此如何抵抗这些干扰因素也是一个需要解决的问题;
[0014]对抗攻击问题,深度学习模型的鲁棒性增强方法往往需要考虑对抗攻击的问题,即攻击者有意地对模型进行干扰,以达到欺骗模型的目的。在源代码领域中,对抗攻击可能会针对代码的不同特征进行,如何增强模型的鲁棒性,避免被对抗攻击干扰,也是一个需要解决的问题。
[0015]此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于申请人做出本专利技术时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本专利技术不具备这些现有技术的特征,相反本专利技术已经具备现有技术的所有特征,而且申请人保留在
技术介绍
中增加相关现有技术之权利。

技术实现思路

[0016]针对现有技术之不足,本专利技术旨在提供一种源代码分类模型鲁棒性增强方法、系统及处理器,尤其是一种基于不变特征的源代码分类模型鲁棒性增强方法、系统及处理器,以至少克服现有源代码鲁棒性提升困难的问题。本专利技术针对源代码的特点与现有模型鲁棒性增强的方法总结,变换代码风格扩充训练集,以提高源代码分类模型的鲁棒性,同时能防御针对源代码模型的攻击。
[0017]本专利技术公开了一种基于不变特征的源代码分类模型鲁棒性增强方法,其特征在于,所述方法至少包括如下步骤:
[0018]将非鲁棒性特征进行组合,以生成多种风格模板,使用代码变换程序将输入代码训练集中的代码变换成不同风格的新代码,以得到新代码组成的变换代码训练集,将输入代码训练集与变换代码训练集合并为扩充训练集,将扩充训练集中的代码文本转换为代码图片;
[0019]通过数据预处理将代码图片转化为模型训练所需向量,在扩充训练集中随机抽取同类别的样本进行配对并输入到特征提取器,使用对比学习的方法迭代更新特征提取器和样本匹配对并提取出目标特征,将提取的不变特征输入分类器进行训练,以输出模型。
[0020]根据一种优选实施方式,“将非鲁棒性特征进行组合,以生成多种风格模板”包括:对现有源代码分类模型和针对该源代码分类模型的攻击方法进行分析,总结出攻击方法生成攻击代码样本的变换目标特征和变换模式,其中,将受到攻击的目标特征作为非鲁棒性特征进行归类分组,抽取不同组合的非鲁棒性特征形成多种相互区别的风格模板。
[0021]根据一种优选实施方式,“使用代码变换程序将输入代码训练集中的代码变换成不同风格的新代码,以得到新代码组成的变换代码训练集,将输入代码训练集与变换代码训练集合并为扩充训练集”包括:对输入代码训练集使用代码变换程序,依据代码风格模板对输入代码训练集中的代码进行定向的风格模板变换,生成语义相同、风格不同的新代码,其中,一个风格模板生成一组变换代码训练集,输入代码训练集与变换代码训练集合并为扩充训练集。
[0022]根据一种优选实施方式,“将扩充训练集中的代码文本转换为代码图片”包括:对扩充训练集的代码文本使用文本转图片工具,基于输入的代码文本生成被特殊处理的代码图片。
[0023]根据一种优选实施方式,“数据预处理”包括:将预处理后的图片转换为能够用于模型训练的向量,其中,预处理包括但不限于缩放、裁剪和/或归一化。
[0024]根据一种优选实施方式,“在扩充训练集中随机抽取同类别的样本进行配对并输入到特征提取器”包括:从由输入代码训练集和变换代码训练集组成的扩充训练集中随机抽取同类别、不同训练集的样本进行配对。
[0025]根据一种优选实施方式,“使用对比学习的方法迭代更新特征提取器和样本匹配对并提取出目标特征”包括:将模型分为特征提取器和分类器两个部分,输入随机抽取的同类别的样本对到特征提取器,通过对比学习损失函数计算样本差别,迭代更新特征提取器和样本匹配对,使用新样本匹配对替换随机样本匹配对,迭代训练直到特征提取器训练收敛。
[0026]根据一种优选实施方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于不变特征的源代码分类模型鲁棒性增强方法,其特征在于,所述方法至少包括如下步骤:将非鲁棒性特征进行组合,以生成多种风格模板,使用代码变换程序将输入代码训练集中的代码变换成不同风格的新代码,以得到新代码组成的变换代码训练集,将输入代码训练集与变换代码训练集合并为扩充训练集,将扩充训练集中的代码文本转换为代码图片;通过数据预处理将代码图片转化为模型训练所需向量,在扩充训练集中随机抽取同类别的样本进行配对并输入到特征提取器,使用对比学习的方法迭代更新特征提取器和样本匹配对并提取出目标特征,将提取的不变特征输入分类器进行训练,以输出模型。2.根据权利要求1所述的方法,其特征在于,“将非鲁棒性特征进行组合,以生成多种风格模板”包括:对现有源代码分类模型和针对该源代码分类模型的攻击方法进行分析,总结出攻击方法生成攻击代码样本的变换目标特征和变换模式,其中,将受到攻击的目标特征作为非鲁棒性特征进行归类分组,抽取不同组合的非鲁棒性特征形成多种相互区别的风格模板。3.根据权利要求1或2所述的方法,其特征在于,“使用代码变换程序将输入代码训练集中的代码变换成不同风格的新代码,以得到新代码组成的变换代码训练集,将输入代码训练集与变换代码训练集合并为扩充训练集”包括:对输入代码训练集使用代码变换程序,依据代码风格模板对输入代码训练集中的代码进行定向的风格模板变换,生成语义相同、风格不同的新代码,其中,一个风格模板生成一组变换代码训练集,输入代码训练集与变换代码训练集合并为扩充训练集。4.根据权利要求1~3任一项所述的方法,其特征在于,“将扩充训练集中的代码文本转换为代码图片”包括:对扩充训练集的代码文本使用文本转图片工具,基于输入的代码文本生成被特殊处理的代码图片。5.根据权利要求1~4任一项所述的方法,其特征在于,“数据预处理”包括:将预处理后的图片转换为能够用于模...

【专利技术属性】
技术研发人员:李珍叶君尧邹德清金海曾祥洪
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1