代码缺陷分析方法及装置制造方法及图纸

技术编号:39662373 阅读:7 留言:0更新日期:2023-12-11 18:25
本发明专利技术实施例提供一种代码缺陷分析方法及装置,涉及安全技术领域,其中,方法包括获取待分析源代码;对所述待分析源代码进行缺陷分析,得到缺陷预测数据;将所述缺陷预测数据输入至预设检验模型中,对所述缺陷预测数据进行检验,得到所述预设检验模型输出的检验后的缺陷数据

【技术实现步骤摘要】
代码缺陷分析方法及装置


[0001]本专利技术涉及安全
,尤其涉及一种代码缺陷分析方法及装置


技术介绍

[0002]为了保障产品的质量与安全,对开发源代码进行静态分析是安全开发过程中必不可少的一个环节

[0003]相关技术中,通常通过静态程序分析技术对源代码进行缺陷分析,并将缺陷分析得到的数据作为缺陷数据直接输出

[0004]但上述相关技术中,由于静态程序分析技术本身技术路线的局限性,会存在将非缺陷数据确定为缺陷数据的情况,从而降低了缺陷数据分析的准确性


技术实现思路

[0005]针对现有技术中的问题,本专利技术实施例提供一种代码缺陷分析方法及装置

[0006]具体地,本专利技术实施例提供了以下技术方案:
[0007]第一方面,本专利技术实施例提供了一种代码缺陷分析方法,包括:
[0008]获取待分析源代码;
[0009]对所述待分析源代码进行缺陷分析,得到缺陷预测数据;
[0010]将所述缺陷预测数据输入至预设检验模型中,对所述缺陷预测数据进行检验,得到所述预设检验模型输出的检验后的缺陷数据

[0011]进一步地,所述将所述缺陷预测数据输入至预设检验模型中,对所述缺陷预测数据的缺陷信息进行检验,得到所述预设检验模型输出的检验后的缺陷数据,包括:
[0012]将所述缺陷预测数据输入至所述预设检验模型的误报去除子模型中,对所述缺陷预测数据的真伪进行检验,得到所述误报去除子模型输出的目标数据;所述目标数据包括去除所述缺陷预测数据中的伪缺陷数据后的数据;
[0013]将所述目标数据确定为所述检验后的缺陷数据

[0014]进一步地,所述方法还包括:
[0015]将所述目标数据输入至所述预设检验模型的缺陷审计子模型中,对所述目标数据是否对所述待分析源代码对应的功能产生影响进行检验,得到所述缺陷审计子模型输出的审计数据;所述审计数据包括所述目标数据的标识,所述标识用于表征所述目标数据是否为真实缺陷的缺陷数据;所述真实缺陷的缺陷数据为对所述待分析源代码对应的功能产生影响的缺陷数据;
[0016]将所述审计数据确定为所述检验后的缺陷数据

[0017]进一步地,所述方法还包括:
[0018]将所述目标数据中的真实缺陷的缺陷数据输入至修复模型中,得到所述修复模型输出的修复数据;所述修复数据包括对所述真实缺陷的缺陷数据进行修复后的数据

[0019]进一步地,所述对所述待分析源代码进行缺陷分析,得到缺陷预测数据,包括:
[0020]对所述待分析源代码进行切片,得到至少一个片段;
[0021]针对各所述片段,将所述片段输入源代码缺陷分析模型中,得到所述源代码缺陷分析模型输出的所述片段对应的缺陷预测数据;所述源代码缺陷分析模型是基于有缺陷数据的片段样本对初始大语言模型进行训练得到的

[0022]进一步地,所述对所述待分析源代码进行切片,得到至少一个片段,包括:
[0023]对所述待分析源代码进行静态分析,得到所述待分析源代码对应的抽象语法树;
[0024]对所述抽象语法树进行代码切片分析,得到源代码分析数据;
[0025]将所述源代码分析数据进行切片,得到至少一个所述片段

[0026]进一步地,所述对所述待分析源代码进行静态分析,得到所述待分析源代码对应的抽象语法树,包括:
[0027]在对所述待分析源代码进行编译的过程中,获取至少一个编译指令;
[0028]基于各所述编译指令对所述待分析源代码进行静态分析,得到所述抽象语法树

[0029]进一步地,所述方法还包括:
[0030]获取用户反馈信息,并基于所述用户反馈信息执行以下至少一项优化:
[0031]在所述用户反馈信息为所述目标数据中包括非缺陷数据的情况下,基于所述目标数据中包括的非缺陷数据对所述误报去除子模型进行优化;
[0032]在所述用户反馈信息为所述审计数据中包括审计错误数据的情况下,基于所述审计错误数据对所述缺陷审计子模型进行优化;所述审计错误数据包括将有真实缺陷的缺陷数据审计为无真实缺陷的缺陷数据,和
/
或,将无真实缺陷的缺陷数据审计为有真实缺陷的缺陷数据;
[0033]在所述用户反馈信息为所述修复数据为错误修复数据的情况下,基于所述错误修复数据对所述修复模型进行优化;
[0034]在所述用户反馈信息为所述待分析源代码中包括除所述缺陷预测数据之外的其他缺陷数据的情况下,基于所述其他缺陷数据对源代码缺陷分析模型进行优化

[0035]第二方面,本专利技术实施例还提供了一种代码缺陷分析装置,包括:
[0036]第一获取单元,用于获取待分析源代码;
[0037]分析单元,用于对所述待分析源代码进行缺陷分析,得到缺陷预测数据;
[0038]检验单元,用于将所述缺陷预测数据输入至预设检验模型中,对所述缺陷预测数据进行检验,得到所述预设检验模型输出的检验后的缺陷数据

[0039]第三方面,本专利技术实施例还提供了一种电子设备,包括存储器

处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述代码缺陷分析方法的步骤

[0040]第四方面,本专利技术实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述代码缺陷分析方法的步骤

[0041]第五方面,本专利技术实施例还提供了一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面所述代码缺陷分析方法的步骤

[0042]本专利技术实施例提供的代码缺陷分析方法及装置,对获取到的待分析源代码进行缺陷分析,得到缺陷预测数据,并通过预设检验模型对缺陷预测数据进行检验,得到检验后的
缺陷数据

可知,本专利技术在分析得到缺陷预测数据时,还通过预设检验模型对缺陷预测数据进行检验,从而提高了缺陷分析的准确性

附图说明
[0043]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图

[0044]图1是本专利技术实施例提供的代码缺陷分析方法的流程示意图;
[0045]图2是本专利技术实施例提供的代码缺陷分析系统的结构示意图;
[0046]图3是本专利技术实施例提供的代码缺陷分析装置的结构示意图;
[0047]图4是本专利技术实施例提供的电子设备的实体结构示意图
...

【技术保护点】

【技术特征摘要】
1.
一种代码缺陷分析方法,其特征在于,包括:获取待分析源代码;对所述待分析源代码进行缺陷分析,得到缺陷预测数据;将所述缺陷预测数据输入至预设检验模型中,对所述缺陷预测数据进行检验,得到所述预设检验模型输出的检验后的缺陷数据
。2.
根据权利要求1所述的代码缺陷分析方法,其特征在于,所述将所述缺陷预测数据输入至预设检验模型中,对所述缺陷预测数据的缺陷信息进行检验,得到所述预设检验模型输出的检验后的缺陷数据,包括:将所述缺陷预测数据输入至所述预设检验模型的误报去除子模型中,对所述缺陷预测数据的真伪进行检验,得到所述误报去除子模型输出的目标数据;所述目标数据包括去除所述缺陷预测数据中的伪缺陷数据后的数据;将所述目标数据确定为所述检验后的缺陷数据
。3.
根据权利要求2所述的代码缺陷分析方法,其特征在于,所述方法还包括:将所述目标数据输入至所述预设检验模型的缺陷审计子模型中,对所述目标数据是否对所述待分析源代码对应的功能产生影响进行检验,得到所述缺陷审计子模型输出的审计数据;所述审计数据包括所述目标数据的标识,所述标识用于表征所述目标数据是否为真实缺陷的缺陷数据;所述真实缺陷的缺陷数据为对所述待分析源代码对应的功能产生影响的缺陷数据;将所述审计数据确定为所述检验后的缺陷数据
。4.
根据权利要求3所述的代码缺陷分析方法,其特征在于,所述方法还包括:将所述目标数据中的真实缺陷的缺陷数据输入至修复模型中,得到所述修复模型输出的修复数据;所述修复数据包括对所述真实缺陷的缺陷数据进行修复后的数据
。5.
根据权利要求1‑4任一项所述的代码缺陷分析方法,其特征在于,所述对所述待分析源代码进行缺陷分析,得到缺陷预测数据,包括:对所述待分析源代码进行切片,得到至少一个片段;针对各所述片段,将所述片段输入源代码缺陷分析模型中,得到所述源代码缺陷分析模型输出的所述片段对应的缺陷预测数据;所述源代码缺陷分析模型是基于有缺陷数据的片段样本对初始大语言模型进行训练得到的
。6.
根据权利要求5所述的代码缺陷分析方法,其特征在于,所述对所述待分析源代码进行切片,得到至少一个片段,包括:对所述待分析源代码进行静态分析,得到所述待分析源代码对应的抽象语法树;对所述抽象语法树进行代码切片分析,得到源代码分析数...

【专利技术属性】
技术研发人员:章磊付威黄永刚韩建柳本金魏玮
申请(专利权)人:奇安信科技集团股份有限公司
类型:发明
国别省市:

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

1