1.本发明属于面向深度学习的缺陷定位领域,尤其涉及一种基于模型结构演化的缺陷代码块定位方法。
背景技术:2.智能计算在日常生活中的应用广泛,其安全性问题尤为关键。如美国的darpa发现,正常工作的智能语音识别系统,在高对抗不确定的复杂环境中,不仅性能下降严重,而且其安全性也极易受到对抗语音指令、中毒语音等污染数据的威胁,存在极大的安全隐患。根据服务对象的不同,智能计算由计算框架、模型算法、数据样本三方面组成。智能计算的安全性则是指用户使用安全的计算框架搭建可靠的模型算法,使用无污染的数据样本进行训练,得到鲁棒的智能模型,进行可信的决策。
3.因此,自底向上的智能计算安全包括:计算框架安全性、模型算法安全性、数据样本安全性。其中,模型算法和数据样本的安全性已经有较多研究,而作为人工智能构建基础的智能计算框架本身的安全性问题研究尚处于起步阶段,但是对智能计算的安全威胁却远甚于前两者。例如,数据样本的安全威胁可能是因为当前批次的数据被污染,换一批数据即可;模型算法安全可能源于结构设计的不合理或者超参数设置不合适,换一段代码即可;两者的威胁范围仅限于几个智能模型,风险范围有限。但是计算框架的安全,以最常见的库算子精度误差为例,凡是在该计算框架下,使用了该库算子的模型,都会留下安全隐患,风险范围极大且十分隐蔽。
4.具体地,按照错误缺陷的主体不同,智能计算框架的安全性问题可以分为框架库层面、框架代码层面、模型系统层面。首先是框架库层面,包括了执行不一致性,声明函数定义错误,拒绝服务等安全性问题;然后是框架代码层面,包括了模型参数和结构声明、维度不匹配的张量、api函数滥用等问题;最后是模型系统层面,包括了性能错误、精度错误、操作符计算错误等问题。已有的测试技术在不一致性、精度误差和性能错误方面对智能计算框架及其代码和api函数进行了系统性测试,并在常用的计算框架上进行效果验证,解决了部分安全威胁,但是,现有技术仍存在以下挑战:
5.(1)先验知识依赖性强:大多数测试方法依赖先验知识或模型信息来触发错误,或需要专业知识来指定可接受的错误判定阈值。这在一定程度上增加了计算成本,并妨碍了其在实际场景中的部署和应用。
6.(2)测试方法通用性差:测试方法依赖框架的某些特殊性,如封装属性、类属性、成员属性等,并不能应用于目前所有的智能计算框架,对于国产的技术平台mindspore和飞桨,仍然缺乏有效的通用测试方法。
7.(3)缺陷定位精度低:框架中的错误和不一致性可能是由输入样本、执行错误、细微的精度差异、完全不同的算法耦合引起的,后两种不被视为错误却会造成安全隐患。此外,在对框架的测试过程中难以排除真实类标和输入值对结果的影响,在定位错误时容易出现偏差。
8.现有计算框架缺陷测试技术仍无法对缺陷所在的代码进行定位,这直接导致了查找到的缺陷的真实性无法进行确定。
技术实现要素:9.针对现有技术不足,保证计算框架在智能计算中的确定性与安全性,本发明提出了一种基于模型结构演化的缺陷代码块定位方法。
10.为实现上述发明目的,本发明的技术方案为:
11.本发明实施例的第一方面提供了一种基于模型结构演化的缺陷代码块定位方法,包括以下步骤:
12.(1)基于若干深度学习计算框架库,总结其对象库和安全性问题,构建计算框架对象库;
13.(2)集成计算框架对象库中的目标计算框架的安全性问题,构成计算框架安全性缺陷库;集成计算框架对象库中的计算框架常见性代码错误,构成代码安全性缺陷库;
14.(3)构建一神经网络模型,并对其进行变异,得到变异模型集合,对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块;
15.(4)通过语句操作方法对神经网络模型的缺陷代码进行验证和溯源,并与计算框架安全性缺陷库和代码安全性缺陷库进行对比,实现缺陷代码块定位。
16.优选地,所述深度学习计算框架库包括mindspore、paddle、tensorflow、pytorch和keras。
17.优选地,所述步骤(2)具体包括以下子步骤:
18.(2.1)通过集成计算框架对象库目标计算框架的包括框架库前后输出差异,库算子精度误差和api函数的输出错误在内的安全性问题,构建计算框架安全性缺陷库;
19.(2.2)通过集成计算框架对象库中包括数值错误、模型参数声明错误和张量维度不一致错误在内的计算框架常见性代码错误,构建代码安全性缺陷库。
20.优选地,所述步骤(3)具体包括以下子步骤:
21.(3.1)初始化一神经网络模型;
22.(3.2)将步骤(3.1)构建的神经网络模型,基于沙普利值框架进行变异操作,以此来构建变异模型集合;
23.(3.3)对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块。
24.优选地,所述变异操作包括:恒等操作、投影操作、选择操作、连接操作或反连接操作。
25.优选地,所述语句操作方法包括语句删除、语句开关、语句复制或语句添加。
26.本发明实施例的第二方面提供了一种电子设备,包括存储器和处理器,其中,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的基于模型结构演化的缺陷代码块定位方法。
27.本发明实施例的第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现上述的基于模型结构演化的缺陷代码块定位方法。
28.本发明的有益效果为:本发明通过计算不同框架下模型的输出差异来检测不同框架下的缺陷代码检测,利用一系列的代码操作命令实现缺陷代码的定位。克服了先验知识依赖型强,降低计算成本,部署和应用场景更广。本发明方法通过多种深度学习计算框架库融合构建了计算框架对象库,使得本发明提出的测试定位方法通用更强更广泛,适用于更多的国产技术平台。本发明方法通过对目标模型的结构变异,以及缺陷库比较,提高代码块的缺陷定位精度,协助提高查找缺陷真实性的准确率。
附图说明
29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
30.图1是本发明的实施例中基于模型结构演化的缺陷代码块定位方法的流程图;
31.图2是本发明的实施例中基于模型结构演化的缺陷代码块定位装置的示意图。
具体实施方式
32.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
33.在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
34.下面结合附图,对本发明的基于模型结构演化的缺陷代码块定位方法进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
35.如图1所示,本发明首先建立面向计算框架的测试对象库和代码中存在缺陷库,然后引导模型结构模糊,最后通过输出差异来衡量潜在的计算框架缺陷,并通过语句替换来实现缺陷代码的检验和定位,以此来测试智能算法计算框架潜在缺陷。具体步骤如下:
36.(1)计算框架对象库构建:
37.本发明通过对mindspore、paddle、tensorflow、pytorch和keras等著名的深度学习计算框架库的对象库和安全性问题进行总结,并且对上述五种计算框架汇总,完成计算框架对象库构建。
38.其中,所述mindspore深度学习计算框架库是华为推出的新一代全场景ai计算框架。其框架架构具有开发态友好、运行态高效、部署态灵活等特性,可满足终端、边缘计算、云全场景需求,能更好保护数据隐私。
39.所述paddlepaddle(飞桨)深度学习计算框架库由百度公司提出的,是主流深度学习框架中一款完全国产化的产品。与其他深度学习框架相比,飞桨具有开发便捷的深度学习框架、超大规模深度学习模型训练技术、多端多平台部署的高性能推理引擎、产业级开源
模型库等优势。
40.所述tensorflow深度学习计算框架库由谷歌大脑开发和维护,拥有包括tensorflow hub、tensorflow lite、tensorflow research cloud在内的多个项目以及各类应用程序接口。
41.tensorflow深度学习计算框架库是一个基于数据流编程的符号数学系统,具有计算便捷、易操作、代码库丰富的特点。
42.所述keras深度学习计算框架库是基于theano的一个深度学习框架,也是一个用python编写的高级神经网络api,它能够以tensorflow、cntk或者theano作为后端运行。keras具有以下重要特性:相同的代码可以在cpu或gpu上无缝切换运行;具有用户友好的api,便于快速开发深度学习模型的原型;内置支持卷积网络(用于计算机视觉)、循环网络(用于序列处理)以及二者的任意组合;支持任意网络架构:多输入或多输出模型、层共享、模型共享等优势。
43.所述pytorch由facebook人工智能研究院(fair)推出,是一个开源的python机器学习库,基于torch,具有强大的gpu加速的张量计算(如numpy),包含自动求导系统的深度神经网络。pytorch通过混合前端,分布式训练以及工具和库生态系统实现快速,灵活的实验和高效生产。与tensorflow的静态计算图(预定义后再使用)不同,pytorch采用动态图机制(运行时动态定义)。
44.本发明实施例研究上述涵盖国内外共计5个计算框架。国产框架具有良好的用户维护管理系统,本发明试图挖掘潜在计算框架缺陷,对于计算平台未来的生态搭建具有良好的指导意义;国外框架是目前智能算法主流应用的计算框架,对于图像、语音、文本等任务具有良好的适用性,已经被应用于多个诸如自动驾驶等安全性攸关领域的应用,其计算框架的安全性测试至关重要。
45.(2)集成计算框架对象库中的目标计算框架的安全性问题,构成计算框架安全性缺陷库;集成计算框架对象库中的计算框架常见性代码错误,构成代码安全性缺陷库;具体包括以下子步骤:
46.(2.1)计算框架库安全性缺陷库:计算框架库包括了库算子和api函数(application programming interface,应用程序接口),其安全性问题也可以分为框架库前后输出差异、库算子精度误差和api函数的输出错误。通过集成1)所创建的计算框架对象库目标计算框架的安全性问题,完成安全性缺陷库构建。
47.所述框架库前后输出差异往往揭示了隐藏错误。由于模型、深度学习任务和数据集的多样性,很难知道有多大的差异表明存在代表错误的不一致性。输出差异由以下两个指标d_class和d_mad来衡量,其中d_class表示的基于类的距离,计算不同框架之间的分类得分σ
c,y
的差的绝对值;d_mad则是两个输出向量和真实向量之间差异δ
o,g
的平均绝对距离,其具体描述如下所示:
[0048][0049]
d_class
c,y,y'
=|σ
c,y-σ
c,y'
|
[0050][0051][0052]
其中,c表示真实标签,y表示分类模型的输出向量,y
′
表示另一种框架下的分类模型的输出向量,rank
c,y
表示在分类模型y中真实标签c的排名,k表示分类排名阈值,σ
c,y
表示不同框架之间分类得分。oi,gi表示第i个输入变异前的原模型和变异后变异模型,m表示变异模型的个数,δ
o,g
表示m个变异模型和原模型差异的平均值,
[0053]
d_class通过检查预测结果中真实类标的排名,计算每个预测结果的分数,然后计算两个分数之间的差值。它认为超过前k名的排名无意义,即将分数设为0。d_mad考虑每个输出向量中的所有元素,以计算其与真实类标的距离。给定地面真值向量表示为g=(g1,g2,
……
,gm),预测输出向量oi和ok。当d_class或d_mad值大于预定阈值时,检测到不一致,d_class或d_mad的值表示了标记的不一致程度。
[0054]
dl算子(库算子)是由各种dl算法及其接口组成的基本构建块。dl框架库在dl算子的基础上构建而成,因此,dl算子的错误会直接影响框架库的稳定和安全性。dl算子的安全性问题主要是存在精度错误,它表示了产生的输出与期望值之间的差异。精度误差衡量了对于特定的输入,算法输出中的干扰是否在可接受的范围内,即误差可以有界。精度误差定义如下:
[0055]
|p(i)-oi|<ε
[0056]
其中p表示算法,i表示输入,oi表示对于输入i期望的输出,ε表示可接受的区间。
[0057]
所述api函数的输出错误是指api函数崩溃或输出无效。这往往由错误的api文档、文档和代码之间不一致或边界值外的无效输入导致。
[0058]
(2.2)代码安全性缺陷库构建:代码层面的错误主要包括了数值错误、模型参数声明错误和张量维度不一致错误。通过集成1)中的计算框架对象库中的计算框架常见性代码错误,完成代码安全性缺陷库构建。
[0059]
所述数值错误是深度学习算法中最突出的缺陷之一。数值错误会导致异常值,如nan(not-a-number)和inf(infinite)。具体而言,数值错误包括division(y,x)(x=0)分母为零,exp(x)(x》88)超出计算上限,log(x)(x≤0),sqrt(x)(x《0)。它们通常是由违反数学属性或浮点数表示错误引起的。一旦计算中触发了一个数字错误,它将继续传播并最终导致无效的输出。
[0060]
代码中模型参数或结构不正确会导致执行阶段的异常行为。这些错误通常来自不适当的模型参数(如学习率)或不正确的模型结构(如缺失节点或层)。这往往会导致模型运行效率低下,例如低准确度和巨大的损失。
[0061]
所述张量维度不一致即未对齐的张量,该情况会导致代码运行报错。当输入张量的形状与预期不匹配时,在计算图构建阶段发现的错误称为未对齐张量错误。因为tensorflow中的张量允许具有动态形状,可以从一次迭代到另一次迭代,诸如数组大小不匹配等传统错误,检查输入张量的api函数会执行出错。
[0062]
(3)缺陷代码定位,构建一神经网络模型,并进行变异,得到变异模型集合;具体包
括以下子步骤:
[0063]
(3.1)初始化一神经网络模型,该神经网络模型由多个层组成,至少包括一卷积层和一特征提取层,每个层包含大量的神经元。
[0064]
(3.2)将步骤(3.1)构建的神经网络模型,基于沙普利值框架进行变异操作,以此来构建变异模型集合。所述变异操作分为:恒等操作、投影操作、选择操作、连接操作、反连接操作。
[0065]
所述恒等操作具体为:恒等运算符表示基本解释它生成给定输入x相对于dnn f和一个基线输入(例如,全零向量)的解释。从概念上讲,恒等运算符计算x的每个特征对预测f(x)的预期贡献。在沙普利值框架内,x作为d维向量(x∈rd)和ik作为i={1,2,.....,d}的k大小的子集,定义一个d维向量其第i维定义为:
[0066][0067]
直观地来说,沿ik的维度用x替换那么显著图则计算如下:
[0068][0069]
所述投影操作具体为:直观上,全局重要性近似于高维空间中的决策边界,而局部重要性着眼于低维空间,从而能够更精确地描述局部边界。对于输入x以及选定的一个窗口w,πw(x)生成x的局部重要性解释。利用沙普利值框架实现,可以将x在窗口w以外的区域全部掩盖掉。那么投影操作可以被表示为:
[0070][0071]
所述选择操作具体为:选择操作选择需要解释的目标网络层。直观地上来说,这种动态的重要性解释捕捉到了dnn在不同阶段的“注意力”的转移,这有助于用户对推理过程进行深入分析。假定神经网络有n层网络f
[1:n]
,那么选择算子可以对选定的第i层进行解释。这可以通过将第i层与输出层相连接,然后重训练最后一层全连接层即可。我们将重训练后的网络记为f
l
,那么选择算子被定义为:
[0072][0073]
所述连接操作具体为:连接操作比较两个同类别样本最有用的共同特征,记为x1><x2。连接操作在沙普利值的框架下可以如下实现:
[0074][0075]
所述反连接操作具体为:与连接操作相反,反连接操作比较两个不同类别的样本最优区别性的共同特征,记为x1<>x2。反连接操作在沙普利值框架下可以如下实现:
[0076][0077]
(3.3)对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,
并以此判定神经网络模型是否存在缺陷代码块,具体为:
[0078]
假定共构建c个变异模型,其输出层是softmax层。定义{g1,g2,...,gc}为步骤(3.1)中构建的变异模型的输出,其中gi(x)表示样本x被分类为i的置信度。定义{z1,z2,...,zc}为变异模型倒数集合第二层即logits层的输出。那么提取特征差异向量可以表示为:
[0079]
d_class=|z
i-zj|,i≠j,i,j∈c
[0080]
通过预测差异化输出获得n个差异值。假设m个差异输出具有由变异模型和原模型预测的相同标签。定义m/n为预测匹配率。如果匹配率大于或等于阈值δ,则定义该初始构建的神经网络模型存在缺陷,从而实现缺陷的挖掘和追溯。
[0081]
(4)通过语句操作方法对神经网络模型的缺陷代码进行验证和溯源,并与计算框架安全性缺陷库和代码安全性缺陷库进行对比,实现缺陷代码块定位。具体为:
[0082]
对于所发现的缺陷代码,本发明实施例中试图通过语句删除、语句开关、语句复制、语句添加等语句操作方法实现缺陷验证和溯源。
[0083]
所述语句删除具体为:从模型构建代码中删除一个输入形状和输出形状一致的语句。
[0084]
所述语句开关具体为:开关段构建语句代码,两者都具有相同的输入形状和输出形状。
[0085]
所述语句复制具体为:复制一个输入形状和输出形状一致的模型构建代码,然后插入复制的构建代码以连接原始代码。
[0086]
所述语句添加具体为:从通用构建语句集中选择输入形状和输出形状一致的构建语句,然后将其插入到模型构建代码中的兼容位置。
[0087]
最终通过删除、开关、复制、添加等上述的语句操作,实现对变异模型寻找导的缺陷位置进行验证,并且与步骤(2.1)和步骤(2.2)所建立的计算框架安全性缺陷库和代码安全性缺陷库进行综合对比,消除不确定性影响带来的误判率,从而实现缺陷代码的修复。
[0088]
与前述基于模型结构演化的缺陷代码块定位装置方法的实施例相对应,本发明还提供了基于模型结构演化的缺陷代码块定位装置装置的实施例。
[0089]
参见图2,本发明实施例提供的一种基于模型结构演化的缺陷代码块定位装置装置,包括一个或多个处理器,用于实现上述实施例中的基于模型结构演化的缺陷代码块定位装置方法。
[0090]
本发明基于模型结构演化的缺陷代码块定位装置装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本发明基于模型结构演化的缺陷代码块定位装置装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0091]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的
实现过程,在此不再赘述。
[0092]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0093]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于模型结构演化的缺陷代码块定位装置方法。
[0094]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0095]
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
技术特征:1.一种基于模型结构演化的缺陷代码块定位方法,其特征在于,包括以下步骤:(1)基于若干深度学习计算框架库,总结其对象库和安全性问题,构建计算框架对象库;(2)集成计算框架对象库中的目标计算框架的安全性问题,构成计算框架安全性缺陷库;集成计算框架对象库中的计算框架常见性代码错误,构成代码安全性缺陷库;(3)构建一神经网络模型,并对其进行变异,得到变异模型集合,对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块;(4)通过语句操作方法对神经网络模型的缺陷代码进行验证和溯源,并与计算框架安全性缺陷库和代码安全性缺陷库进行对比,实现缺陷代码块定位。2.根据权利要求1所述的基于模型结构演化的缺陷代码块定位方法,其特征在于,所述深度学习计算框架库包括mindspore、paddle、tensorflow、pytorch和keras。3.根据权利要求1所述的基于模型结构演化的缺陷代码块定位方法,其特征在于,所述步骤(2)具体包括以下子步骤:(2.1)通过集成计算框架对象库目标计算框架的包括框架库前后输出差异,库算子精度误差和api函数的输出错误在内的安全性问题,构建计算框架安全性缺陷库;(2.2)通过集成计算框架对象库中包括数值错误、模型参数声明错误和张量维度不一致错误在内的计算框架常见性代码错误,构建代码安全性缺陷库。4.根据权利要求1所述的基于模型结构演化的缺陷代码块定位方法,其特征在于,所述步骤(3)具体包括以下子步骤:(3.1)初始化一神经网络模型;(3.2)将步骤(3.1)构建的神经网络模型,基于沙普利值框架进行变异操作,以此来构建变异模型集合;(3.3)对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块。5.根据权利要求1所述的基于模型结构演化的缺陷代码块定位方法,其特征在于,所述变异操作包括:恒等操作、投影操作、选择操作、连接操作或反连接操作。6.根据权利要求1所述的基于模型结构演化的缺陷代码块定位方法,其特征在于,所述语句操作方法包括语句删除、语句开关、语句复制或语句添加。7.一种电子设备,包括存储器和处理器,其中,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述权利要求1-6任一项所述的基于模型结构演化的缺陷代码块定位方法。8.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-6中任一所述的基于模型结构演化的缺陷代码块定位方法。
技术总结本发明公开了一种基于模型结构演化的缺陷代码块定位方法,首先基于若干深度学习计算框架库,总结其对象库和安全性问题,构建计算框架对象库;再构成计算框架安全性缺陷库和代码安全性缺陷库;然后构建一神经网络模型,并对其进行变异,得到变异模型集合,对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块;最后通过语句操作方法对神经网络模型的缺陷代码进行验证和溯源,并与计算框架安全性缺陷库和代码安全性缺陷库进行对比,实现缺陷代码块定位。本发明方法降低计算成本,部署和应用场景更广,提高代码块的缺陷定位精度。位精度。位精度。
技术研发人员:陈晋音 李晓豪 金海波 郑海斌 倪洪杰
受保护的技术使用者:浙江工业大学
技术研发日:2022.03.21
技术公布日:2022/7/5