System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件测试,具体而言,涉及一种基于llm的sast漏洞检测方法、装置及电子设备。
技术介绍
1、静态应用程序安全测试(static application security testing,sast)也称白盒测试,是一种软件测试方法,主要用于检测待检测程序中的潜在安全漏洞。
2、在使用现有的sast工具检测待检测程序中的潜在安全漏洞的过程中,现有的sast工具主要是扫描待检测程序,根据大量规则集和静态分析策略来检测是否有安全校验函数,只要检出安全校验函数就直接认定安全校验函数可成功解决漏洞而不报出漏洞,出现漏报问题,且会在扫描到待检测程序中的危险函数后直接报出漏洞,无法感知出安全校验函数与漏洞进行关联,出现漏报、误报问题,导致提高sast漏洞检测准确性较低。
技术实现思路
1、本申请实施例的目的在于提供一种基于llm的sast漏洞检测方法、装置及电子设备,用以实现提高sast漏洞检测准确性的技术效果。
2、第一方面,本申请实施例提供了一种基于大语言模型llm的静态应用程序安全测试sast漏洞检测方法,包括:
3、采用sast工具对待检测程序进行漏洞检测,得到漏洞的漏洞信息;其中,所述漏洞的漏洞信息包括漏洞上下文;
4、采用预先训练的llm模型判断所述漏洞上下文中是否有所述漏洞对应的安全校验函数;
5、在所述漏洞上下文中有所述漏洞对应的安全校验函数的情况下,采用所述sast工具验证所述漏洞对应的安全校验函数是否能防护
6、在所述漏洞上下文中没有所述漏洞对应的安全校验函数或所述漏洞对应的安全校验函数不能防护所述漏洞的情况下,输出所述漏洞的漏洞信息。
7、在上述实现过程中,通过在采用sast工具对待检测程序进行漏洞检测得到漏洞的漏洞信息后,采用预先训练的llm模型判断漏洞上下文中是否有漏洞对应的安全校验函数,在漏洞上下文中有漏洞对应的安全校验函数的情况下继续采用sast工具验证漏洞对应的安全校验函数是否能防护漏洞,在漏洞上下文中没有漏洞对应的安全校验函数或漏洞对应的安全校验函数不能防护漏洞的情况下才输出漏洞的漏洞信息,能够有效避免出现漏报误报问题,提高sast漏洞检测准确性。
8、进一步地,在所述采用预先训练的llm模型判断所述漏洞上下文中是否有所述漏洞对应的安全校验函数之前,还包括:
9、基于安全校验函数知识图谱训练llm模型,得到所述预先训练的llm模型。
10、在上述实现过程中,通过基于安全校验函数知识图谱训练llm模型来得到预先训练的llm模型,能够保证预先训练的llm模型准确判断漏洞上下文中是否有漏洞对应的安全校验函数。
11、进一步地,在所述基于安全校验函数知识图谱训练llm模型,得到所述预先训练的llm模型之前,还包括:
12、对收集的多个目标程序进行解析,得到多个抽象语法树;
13、从所述多个抽象语法树中提取安全校验函数的元数据和所述安全校验函数的关联关系;
14、以所述安全校验函数为节点,将所述安全校验函数的元数据作为所述节点的属性信息,将所述安全校验函数的关联关系作为所述节点的边,构建所述安全校验函数知识图谱。
15、在上述实现过程中,通过对多个目标程序进行解析得到多个抽象语法树,从多个抽象语法树中提取安全校验函数的元数据和安全校验函数的关联关系,以安全校验函数为节点,将安全校验函数的元数据作为节点的属性信息,将安全校验函数的关联关系作为节点的边,构建安全校验函数知识图谱,能够保证完整准确地构建安全校验函数知识图谱。
16、进一步地,所述基于安全校验函数知识图谱训练llm模型,得到所述预先训练的llm模型,包括:
17、将所述安全校验函数知识图谱中的元素转换为三元组;
18、对所述三元组进行向量化,根据得到的向量构造训练样本;
19、采用所述训练样本训练所述llm模型,得到所述预先训练的llm模型。
20、在上述实现过程中,通过将安全校验函数知识图谱中的元素转换为三元组并对三元组进行向量化,根据得到的向量构造训练样本,采用训练样本训练llm模型来得到预先训练的llm模型,能够快速准确地从安全校验知识图谱中获取训练样本来训练llm模型。
21、进一步地,所述采用预先训练的llm模型判断所述漏洞上下文中是否有所述漏洞对应的安全校验函数,包括:
22、将所述漏洞的漏洞信息输入所述预先训练的llm模型,确定所述漏洞上下文中是否有所述漏洞对应的安全校验函数。
23、在上述实现过程中,通过将漏洞的漏洞信息输入预先训练的llm模型来确定漏洞上下文中是否有漏洞对应的安全校验函数,能够快速确定漏洞上下文中是否有漏洞对应的安全校验函数。
24、进一步地,所述方法,还包括:
25、在所述漏洞对应的安全校验函数不能防护所述漏洞的情况下,根据所述漏洞的漏洞信息优化所述预先训练的llm模型。
26、在上述实现过程中,通过在漏洞对应的安全校验函数不能防护漏洞的情况下,根据漏洞的漏洞信息优化预先训练的llm模型,能够保证后续预先训练的llm模型更加准确地判断漏洞上下文中是否有漏洞对应的安全校验函数。
27、进一步地,所述方法,还包括:
28、在所述漏洞对应的安全校验函数能防护所述漏洞的情况下,根据所述漏洞的漏洞信息和所述漏洞对应的安全校验函数更新安全校验函数知识图谱,得到新的安全校验函数知识图谱;
29、基于所述新的安全校验函数知识图谱优化所述预先训练的llm模型。
30、在上述实现过程中,通过在漏洞对应的安全校验函数能防护漏洞的情况下,根据漏洞的漏洞信息和漏洞对应的安全校验函数更新安全校验函数知识图谱,基于新的安全校验函数知识图谱优化预先训练的llm模型,能够保证后续预先训练的llm模型更加准确地判断漏洞上下文中是否有漏洞对应的安全校验函数。
31、第二方面,本申请实施例提供了一种基于llm的sast漏洞检测装置,包括:
32、一次检测模块,用于采用sast工具对待检测程序进行漏洞检测,得到漏洞的漏洞信息;其中,所述漏洞的漏洞信息包括漏洞上下文;
33、函数识别模块,用于采用预先训练的llm模型判断所述漏洞上下文中是否有所述漏洞对应的安全校验函数;
34、二次验证模块,用于在所述漏洞上下文中有所述漏洞对应的安全校验函数的情况下,采用所述sast工具验证所述漏洞对应的安全校验函数是否能防护所述漏洞;
35、结果输出模块,用于在所述漏洞上下文中没有所述漏洞对应的安全校验函数或所述漏洞对应的安全校验函数不能防护所述漏洞的情况下,输出所述漏洞的漏洞信息。
36、第三方面,本申请实施例提供了一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序;所述存储器本文档来自技高网...
【技术保护点】
1.一种基于大语言模型LLM的静态应用程序安全测试SAST漏洞检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述采用预先训练的LLM模型判断所述漏洞上下文中是否有所述漏洞对应的安全校验函数之前,还包括:
3.根据权利要求2所述的方法,其特征在于,在所述基于安全校验函数知识图谱训练LLM模型,得到所述预先训练的LLM模型之前,还包括:
4.根据权利要求2所述的方法,其特征在于,所述基于安全校验函数知识图谱训练LLM模型,得到所述预先训练的LLM模型,包括:
5.根据权利要求1所述的方法,其特征在于,所述采用预先训练的LLM模型判断所述漏洞上下文中是否有所述漏洞对应的安全校验函数,包括:
6.根据权利要求1至5任一项所述的方法,其特征在于,还包括:
7.根据权利要求1至5任一项所述的方法,其特征在于,还包括:
8.一种基于LLM的SAST漏洞检测装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括指令,所述指令在由计算机执行时,使得所述计算机实施根据权利要求1至7任一项所述的方法。
...【技术特征摘要】
1.一种基于大语言模型llm的静态应用程序安全测试sast漏洞检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述采用预先训练的llm模型判断所述漏洞上下文中是否有所述漏洞对应的安全校验函数之前,还包括:
3.根据权利要求2所述的方法,其特征在于,在所述基于安全校验函数知识图谱训练llm模型,得到所述预先训练的llm模型之前,还包括:
4.根据权利要求2所述的方法,其特征在于,所述基于安全校验函数知识图谱训练llm模型,得到所述预先训练的llm模型,包括:
5.根据权利要求1所述的方法,其特征在于,所述采用预先训练的llm模型判断所述漏洞上下文中是否有所述...
【专利技术属性】
技术研发人员:张涛,宁戈,蔡智强,李浩,杜玉洁,
申请(专利权)人:北京安普诺信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。