大模型辅助的静态代码扫描结果分析方法、装置、电子设备和计算机可读存储介质

文档序号:41397624发布日期:2025-03-25 18:54阅读:14来源:国知局
大模型辅助的静态代码扫描结果分析方法、装置、电子设备和计算机可读存储介质

本发明涉及计算机,特别涉及一种大模型辅助的静态代码扫描结果分析方法、装置、电子设备和计算机可读存储介质。


背景技术:

1、随着软件规模和复杂性的不断增长,代码中的潜在缺陷和安全漏洞成为威胁信息系统和应用程序安全稳定运行的主要隐患。静态代码扫描工具作为一种关键的代码质量保障工具,已广泛应用于软件开发生命周期的各个阶段,用于检测代码中的缺陷和潜在漏洞。通过扫描源代码或中间代码,这些工具能够在代码执行前识别潜在问题,从而为开发者提供预警和改进建议。

2、传统的静态代码扫描工具主要依赖于预定义的规则库、模型匹配和逻辑推理等方法,其检测过程具有高效性和覆盖范围广的特点。然而,由于规则库的不完善或对特定场景的适配性有限,再或者为了增强分析规则的泛化能力而降低分析精度,这些问题往往造成大量误报(即虚假的安全报警)。误报的泛滥不仅增加了开发人员甄别问题的负担,还可能导致真实漏洞被忽视,威胁系统安全性。此外,工具输出的检测结果往往缺乏足够的上下文信息,且对于普通开发人员来说可读性较低,导致对开发人员修复问题的支持较为有限,使得问题定位和修复建议的生成需要依赖人工介入。这种传统的人工审查和分析方式耗时费力,效率低下,同时对报警审查人员的经验水平和领域知识依赖较高,难以在大型复杂项目中推广。

3、随着人工智能技术,特别是大模型技术的快速发展,为静态代码分析领域的优化提供了新的可能性。基于大模型的分析方法能够利用机器学习和自然语言处理技术,从海量数据中学习代码模式。因此,引入基于大模型的技术以辅助分析和优化静态分析工具的结果,能够在提高开发分析效率、增强漏洞定位准确性、降低安全风险方面发挥重要作用。但如果直接将静态代码扫描工具生成的报警中所涉及的代码片段,以及对应的问题描述未经处理加工就直接输入大模型并请求结果,会遇到各类问题影响最终的大模型返回的分析结果。例如代码上下文语义缺失问题,对于c或者c++等包含类似宏定义结构的语言,在源代码编译时会在所有使用宏定义的位置对其进行动态展开,部分静态代码扫描工具正是基于展开后的源代码进行分析,这就使得根据静态代码扫描工具分析的代码片段和直接根据扫描结果中各问题描述从源代码中提取到的代码片段存在差异,从而让大模型无法感知到报警描述和代码片段的关系;同时,例如当报警中的代码涉及类(class)中的成员函数时,如只提取涉及到的代码或者函数片段也会导致缺失上下文语义,影响后续的分析结果的精度。

4、因此,需要一种新的静态代码扫描结果分析方法来解决上述问题。

5、需要说明的是,公开于该发明背景技术部分的信息仅仅旨在加深对本发明一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。


技术实现思路

1、本发明的目的在于提供一种大模型辅助的静态代码扫描结果分析方法、装置、电子设备和计算机可读存储介质,可以快速有效地实现对静态代码扫描工具生成的检测报告中的各个问题的自动化分析并给出修复建议,提高了静态分析结果判定的自动化程度,减少人工分析和修复问题的工作量,同时提升了结果判定的准确性。

2、为达到上述目的,本发明提供一种大模型辅助的静态代码扫描结果分析方法,包括:获取目标项目的项目编译记录和静态代码扫描工具输出的所述目标项目的代码检测报告,并提取所述项目编译记录中的项目编译参数和所述代码检测报告中各问题的基础信息;基于所述问题的基础信息识别所述问题涉及到的所有源代码,并对所述项目编译参数、所述源代码和所述基础信息进行处理,以生成关键信息集合;根据所述关键信息集合在大模型请求模版库中搜索符合特征的模版并生成对应的请求文件;根据所述请求文件触发大模型对所述问题进行分析,以生成对所述问题的分析结果,所述分析结果包括判定结论、问题分析描述以及修复建议。

3、可选的,所述基于所述问题的基础信息识别所述问题涉及到的所有源代码,并对所述项目编译参数、所述源代码和所述基础信息进行处理,以生成关键信息集合,包括:基于所述问题的基础信息识别问题描述、问题类型、问题触发路径和问题触发路径描述;识别出所述问题触发路径中包含的各个路径节点所属的源代码以及所述路径节点在源代码中的位置信息;基于所述项目编译参数将所述源代码解析为抽象语法树并识别抽象语法树节点;基于所述项目编译参数、所述抽象语法树节点、所述路径节点在源代码中的位置信息和所述问题触发路径描述,提取代码片段以及代码片段中隐含信息;将所述代码片段、所述代码片段中隐含信息、所述问题描述和所述问题类型组合成关键信息集合。

4、可选的,所述基于所述项目编译参数、所述抽象语法树节点、所述路径节点在源代码中的位置信息和所述问题触发路径描述,提取代码片段以及代码片段中隐含信息,包括:基于所述路径节点在源代码中的位置信息在所述抽象语法树节点中进行检索,以查找出对应的语句节点和所述语句节点所属的外层定义节点;对所述语句节点中所包含的所有符号进行提取,并识别出所述语句节点中包含的符号类型;基于所述符号类型和所述问题触发路径描述进行对应处理,以得到对应的代码片段中隐含信息;基于所述项目编译参数、所述代码片段中隐含信息和所述外层定义节点生成代码片段。

5、可选的,所述基于所述符号类型和所述问题触发路径描述进行对应处理,以得到对应的代码片段中隐含信息,包括:若所述符号类型为需要在编译时展开的替换类型,则提取替换类型的定义语句并循环处理所述替换类型的定义语句中嵌套的替换类型变量;若所述符号类型为函数直接调用,则将所述函数调用生成对应的控制流跳转描述语句;若所述符号类型为函数间接调用,则基于所述问题触发路径描述提取对应节点的描述并生成对应的控制流跳转描述语句;若所述符号类型为变量,则提取变量的类型和占用的内存空间的大小以得到变量信息,若所述变量的类型为用户自定义类型,则提取并记录所述用户自定义类型的类型定义语句,并嵌套提取所述用户自定义类型中包含的用户自定义类型的类型定义语句;若所述符号类型为操作符,则基于所述问题触发路径描述中与操作符相关的描述生成操作信息;将所述替换类型的定义语句、所述控制流跳转描述语句、所述类型定义语句、所述变量信息和所述操作信息组合成对应的代码片段中隐含信息。

6、可选的,所述基于所述项目编译参数、所述代码片段中隐含信息和所述外层定义节点生成代码片段,包括:基于所述代码片段中隐含信息中的所述类型定义语句和所述外层定义节点生成所需的代码片段;基于所述代码片段中隐含信息中的所述替换类型的定义语句对所述源代码进行展开操作得到完整的源代码片段;基于所述项目编译参数对所述源代码片段中的各条件编译语句及内部包含语句进行处理,以得到有效的代码片段。

7、可选的,所述基于所述代码片段中隐含信息中的所述类型定义语句和所述外层定义节点生成所需的代码片段,包括:基于所述外层定义节点提取其在对应的源代码中的代码片段;若所述外层定义节点的类型为用户定义类型中的局部定义类型,则对所述代码片段外层补充所述外层定义节点所属的上层用户定义类型的定义语句;若所述外层定义节点属于任意一个命名空间内,则对所述代码片段外层补充命名空间定义语句;基于所述代码片段中隐含信息中的所述类型定义语句和所述代码片段生成所需的代码片段。

8、可选的,所述根据所述关键信息集合在大模型请求模版库中搜索符合特征的模版并生成对应的请求文件,包括;基于所述关键信息集合中的所述问题类型在大模型请求模版库中检索对应问题类型的模版;基于所述模版以及所述关键信息集合中的所述代码片段、所述问题描述与所述代码片段中隐含信息生成对应的请求文件。

9、为达到上述目的,本发明还提供一种大模型辅助的静态代码扫描结果分析装置,包括:获取模块,配置为获取目标项目的项目编译记录和静态代码扫描工具输出的所述目标项目的代码检测报告,并提取所述项目编译记录中的项目编译参数和所述代码检测报告中各问题的基础信息;提取模块,配置为基于所述问题的基础信息识别所述问题涉及到的所有源代码,并对所述项目编译参数、所述源代码和所述基础信息进行处理,以生成关键信息集合;生成模块,配置为根据所述关键信息集合在大模型请求模版库中搜索符合特征的模版并生成对应的请求文件;以及分析模块,配置为根据所述请求文件触发大模型对所述问题进行分析,以生成对所述问题的分析结果,所述分析结果包括判定结论、问题分析描述以及修复建议。

10、为达到上述目的,本发明还提供一种电子设备,包括至少一个处理器和至少一个存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上文任一项所述的大模型辅助的静态代码扫描结果分析方法。

11、为达到上述目的,本发明还提供一种计算机可读存储介质,其上存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上文任一项所述的大模型辅助的静态代码扫描结果分析方法。

12、与现有技术相比,本发明提供的大模型辅助的静态代码扫描结果分析方法、装置、电子设备和计算机可读存储介质具有以下有益效果:本发明通过先获取目标项目的项目编译记录和静态代码扫描工具输出的所述目标项目的代码检测报告,并提取所述项目编译记录中的项目编译参数和所述代码检测报告中各问题的基础信息;再基于所述问题的基础信息识别所述问题涉及到的所有源代码,并对所述项目编译参数、所述源代码和所述基础信息进行处理,以生成关键信息集合;然后根据所述关键信息集合在大模型请求模版库中搜索符合特征的模版并生成对应的请求文件;最后根据所述请求文件触发大模型对所述问题进行分析,以生成对所述问题的分析结果,由此可以快速有效地实现对静态代码扫描工具生成的检测报告中的各个问题的自动化分析并给出修复建议,提高了静态分析结果判定的自动化程度,减少人工分析和修复问题的工作量,同时提升了结果判定的准确性。

13、由于本发明提供的大模型辅助的静态代码扫描结果分析装置、电子设备和计算机可读存储介质与本发明提供的大模型辅助的静态代码扫描结果分析方法属于同一发明构思,因此本发明提供的大模型辅助的静态代码扫描结果分析装置、电子设备和计算机可读存储介质至少具有本发明提供的大模型辅助的静态代码扫描结果分析方法的所有有益效果,具体可以参考上文中的相关描述,故在此不再对本发明提供的大模型辅助的静态代码扫描结果分析装置、电子设备和计算机可读存储介质所具有的有益效果一一进行赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1