一种基于学习模型可触发性的代码语义冗余度量验证方法技术

技术编号:37978105 阅读:11 留言:0更新日期:2023-06-30 09:53
本发明专利技术涉及一种基于学习模型可触发性的代码语义冗余度量验证方法,包括以下步骤:合成混合代码数据集,包含恶意代码和非恶意代码,将该混合代码数据集分为训练集和测试集;在训练集中插入触发器并作为第一训练集,对第一训练集进行代码语义表征,利用对抗扰动投毒,获取中毒的代码语义表征结果,并将中毒的代码语义表征结果处理为特征向量,将该特征向量输入良性神经网络模型进行训练,获取后门神经网络模型;在测试集中插入触发器,获取第一测试集,对第一测试集进行处理后,输入到后门神经网络模型中,根据后门神经网络模型的输出结果验证输入样本中是否包含语义冗余空间。与现有技术相比,该发明专利技术能够准确验证并度量代码数据的语义冗余空间。数据的语义冗余空间。数据的语义冗余空间。

【技术实现步骤摘要】
一种基于学习模型可触发性的代码语义冗余度量验证方法


[0001]本专利技术涉及软件分析
,尤其是涉及一种基于学习模型可触发性的代码语义冗余度量验证方法。

技术介绍

[0002]近年来,软件规模及其复杂度不断上升,使得基于人工手段进行代码审计、逆向分析以及漏洞挖掘的成本增大。深度学习技术凭借从海量数据中快速挖掘特征的能力而被应用于软件代码动静态分析和漏洞自动化检测等领域。基于深度神经网络(Deep Neural Network,DNN)的代码分析能够理解代码逻辑的复杂语义,突破了传统代码分析技术在高假阳性率/假阴性率上的瓶颈问题,因而比传统的代码分析方法具有更高的准确率。对于多语言、跨平台、逻辑嵌套的代码样本,基于深度学习的代码分析从大量代码样本中自动挖掘信息流特征,从而代替人工数据流与控制流的表示和解析。比如,利用循环神经网络处理具有上下文关系的序列化代码文本,理解代码文本的语义从而提升漏洞检测的精度和效率。
[0003]然而,在将源代码编译为可执行文件的过程中,源代码以及其复杂的中间表示会产生大量与代码逻辑无关的语义冗余。并且,代码逻辑和软件形态之间的一对多映射会误导深度学习模型捕捉软件样本的非共同特征,即在对代码语义进行表征和转化过程中产生的冗余空间很容易遭受因文本后门攻击而导致的安全威胁。
[0004]后门攻击是利用在输入样本上添加触发器而实现的,所添加的触发器如果处在语义冗余空间,其攻击成功率将具有更强的隐蔽性和更高的成功率。如果能够验证并度量代码数据的语义冗余空间,并相应对语义冗余空间进行压缩,就能降低代码数据因文本后门攻击导致的安全威胁。但现有技术,缺少一种能够验证并度量语义冗余空间的技术方法,使得现有技术的代码数据仍处于因文本后门攻击导致的安全威胁中。

技术实现思路

[0005]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于学习模型可触发性的代码语义冗余度量验证方法,该专利技术能够准确验证并度量代码数据的语义冗余空间。
[0006]本专利技术的目的可以通过以下技术方案来实现:
[0007]本专利技术提供一种基于学习模型可触发性的代码语义冗余度量验证方法,用于对从目标代码数据转化到特征向量的过程中所产生的语义冗余空间进行验证和度量,包括以下步骤:
[0008]S1:生成混合代码数据集,该混合代码数据集包括非恶意代码数据集和恶意代码数据集,将该混合代码数据集分为训练集和测试集;
[0009]S2:在训练集中插入触发器并作为第一训练集,对第一训练集进行代码语义表征,在代码语义表征过程中进行投毒,获取中毒的代码语义表征结果,并将中毒的代码语义表征结果处理为特征向量,将该特征向量输入良性神经网络模型进行训练,获取后门神经网
络模型;
[0010]S3:在测试集中插入触发器,获取第一测试集,对第一测试集依次进行代码语义表征和处理操作后,输入后门神经网络模型,根据后门神经网络模型的输出结果判断从目标代码数据转化到特征向量的过程中是否产生语义冗余空间。
[0011]优选地,所述S2包括以下步骤:
[0012]S2.1:遍历训练集中所有的代码数据,确定插入触发器的代码数据,并将触发器插入该代码数据的语义冗余空间,获取第一训练集;
[0013]S2.2:对第一训练集进行代码语义表征,在代码语义表征过程中进行投毒,获取中毒的代码语义表征结果;
[0014]S2.3:将S2.2获取的代码语义表征结果转化为特征向量,将该特征向量输入良性神经网络模型进行训练,获取后门神经网络模型。
[0015]优选地,S2.1中描述触发器插入过程的公式具体为:
[0016][0017]其中,为表示对于位于代码处理周期中阶段M的代码数据i的触发器插入后的投毒结果,Insert()函数为表示将触发器T
i
插入到代码数据i中的函数,为插入触发器至位于代码处理周期中阶段M的代码数据i的语义冗余空间,为插入触发器至代码数据i时需要避开的与代码数据i的代码功能相关的语义空间。
[0018]优选地,S2.3中,将对良性神经网络模型训练为后门神经网络模型的过程视为有约束的优化问题,描述该优化问题的公式具体为:
[0019][0020][0021]其中,F为良性神经网络模型,为表示与含有触发器代码数据对应的定向标签,k为代码数据的个数,为损失函数,Φ
*
为优化模型参数,为恶意代码数据集,为插入触发器至代码数据i时需要避开的与代码数据i的代码功能相关的语义空间。
[0022]优选地,在执行S3之后,验证从目标代码数据转化到特征向量的过程中产生语义冗余空间,则执行S4,S4具体为:
[0023]构建语义冗余来源分析模型,并根据语义冗余来源分析模型获取目标代码数据的真实语义冗余空间;根据目标代码数据的真实语义冗余空间,以及S2.1中插入触发器的代码数据的语义冗余空间,对S3验证产生的语义冗余空间进行压缩。
[0024]优选地,所述S4包括如下步骤:
[0025]S4.1:确定并根据代码处理周期中不同的代码编译阶段的语义冗余信息,构建语义冗余来源分析模型;
[0026]S4.2:将目标代码数据涉及的代码编译阶段与语义冗余来源分析模型的分析结果进行比对,并根据语义信息的产生和继承确定目标代码数据的语义冗余来源,进而获取目
标代码数据的真实语义冗余空间;
[0027]S4.3:根据S4.2获取的真实语义冗余空间,以及S2.1中插入触发器的语义冗余空间,对S3中验证的语义冗余空间进行压缩。
[0028]优选地,所述S4.2中目标代码数据涉及的代码编译阶段,即目标阶段的语义冗余来源分析规则为:
[0029]将目标阶段在后续阶段被丢弃和转换的信息归类为二进制代码的最终功能所不需要的语义冗余信息;
[0030]将目标阶段从先前阶段中继承的语义冗余信息归类为二进制代码的最终功能所不需要的语义冗余信息;
[0031]将目标阶段在当前阶段的处理过程中产生的语义信息归类为二进制代码的最终功能所不需要的语义冗余信息;
[0032]将目标阶段表征时保留的二进制代码最终功能所不需要的语义冗余信息归类为表征过程继承的语义冗余;
[0033]将目标阶段表征时产生的语义信息归类为表征过程生成的语义冗余。
[0034]优选地,所述S3中,根据后门神经网络模型的输出结果判断从目标代码数据转化到特征向量的过程中是否产生语义冗余空间的过程具体为:
[0035]若后门神经网络模型的中毒准确率高于设定阈值,则从目标代码数据转化到特征向量的过程中产生有威胁的语义冗余空间;
[0036]若后门神经网络模型的中毒准确率低于设定阈值,则从目标代码数据转化到特征向量的过程中不产生有威胁的语义冗余空间。
[0037]优选地,所述后门神经网络模型的中毒准确率为后门神经网络模型对恶意代码数据集的分类准确率。
[0038]优选地,所述良性神经本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于学习模型可触发性的代码语义冗余度量验证方法,其特征在于,用于对从目标代码数据转化到特征向量的过程中所产生的语义冗余空间进行验证和度量,包括以下步骤:S1:生成混合代码数据集,该混合代码数据集包括非恶意代码数据集和恶意代码数据集,将该混合代码数据集分为训练集和测试集;S2:在训练集中插入触发器并作为第一训练集,对第一训练集进行代码语义表征,在代码语义表征过程中进行投毒,获取中毒的代码语义表征结果,并将中毒的代码语义表征结果处理为特征向量,将该特征向量输入良性神经网络模型进行训练,获取后门神经网络模型;S3:在测试集中插入触发器,获取第一测试集,对第一测试集依次进行代码语义表征和处理操作后,输入后门神经网络模型,根据后门神经网络模型的输出结果判断从目标代码数据转化到特征向量的过程中是否产生语义冗余空间。2.根据权利要求1所述的一种基于学习模型可触发性的代码语义冗余度量验证方法,其特征在于,所述S2包括以下步骤:S2.1:遍历训练集中所有的代码数据,确定插入触发器的代码数据,并将触发器插入该代码数据的语义冗余空间,获取第一训练集;S2.2:对第一训练集进行代码语义表征,在代码语义表征过程中进行投毒,获取中毒的代码语义表征结果;S2.3:将S2.2获取的代码语义表征结果转化为特征向量,将该特征向量输入良性神经网络模型进行训练,获取后门神经网络模型。3.根据权利要求2所述的一种基于学习模型可触发性的代码语义冗余度量验证方法,其特征在于,S2.1中描述触发器插入过程的公式具体为:其中,为表示对于位于代码处理周期中阶段M的代码数据i的触发器插入后的投毒结果,Insert()函数为表示将触发器T
i
插入到代码数据i中的函数,为插入触发器至位于代码处理周期中阶段M的代码数据i的语义冗余空间,为插入触发器至代码数据i时需要避开的与代码数据i的代码功能相关的语义空间。4.根据权利要求3所述的一种基于学习模型可触发性的代码语义冗余度量验证方法,其特征在于,S2.3中,将对良性神经网络模型训练为后门神经网络模型的过程视为有约束的优化问题,描述该优化问题的公式具体为:其中,F为良性神经网络模型,为表示与含有触发器代码数据对应的定向标签,k为代码数据的个数,为损失函数,Φ
*
为优化模型参数,为恶意代码数据集,为插入触
发器至代码数据i时需要避开的与代码数据i的代码功能相关的语义空间。5.根据权利要求2所述的一种基于学习模型可触发性的代码语义冗余度量验证方法,其特征在于,在执行S3之后,验证从目标代码数据转化到特征向量的过程中产生语义冗余空间,则...

【专利技术属性】
技术研发人员:伍军邵长捷裴蓓李高磊林夕
申请(专利权)人:公安部第三研究所
类型:发明
国别省市:

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

1