System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于大语言模型的软件漏洞复现方法技术_技高网

一种基于大语言模型的软件漏洞复现方法技术

技术编号:40934675 阅读:2 留言:0更新日期:2024-04-18 14:54
本发明专利技术涉及软件测试技术技术领域,本发明专利技术提供一种基于大语言模型的软件漏洞复现方法,该方法包括如下步骤:步骤S1、从漏洞测试报告中构造LLM提示语,并输入到LLM;步骤S2、LLM测试类依赖生成;步骤S3、LLM测试用例选择和排序;步骤S4、将排序好的测试用例输入到模糊测试工具中进行测试。现有的软件漏洞复现方法往往需要大量的时间和人力成本,且效果不尽如人意,难以得到准确的漏洞报告,影响了软件开发的进度和质量,本发明专利技术将漏洞测试报告和大语言模型进行结合,提高生成有效覆盖漏洞代码区域的测试用例概率,从而促进软件漏洞复现效率,帮助开发人员更好地诊断和修复漏洞,提高软件的安全性和稳定性。

【技术实现步骤摘要】

本专利技术涉及软件测试技术,尤其涉及为一种基于大语言模型的软件漏洞复现方法


技术介绍

1、目前,软件测试技术是保证软件满足需求规范的标准实践。但是,由于缺乏可靠的自动化测试方法,该技术需要大量人工分析,降低测试效率。当前,软件测试技术仍然面临以下问题:

2、1)缺少合适的测试用例:要成功地复现漏洞,需要输入特定的测试用例来模拟漏洞触发条件。但是,在许多情况下,这些测试用例并不容易得到或构建。此外,一些漏洞存在于复杂的系统中,并涉及多个组件和交互,使得构建合适的测试用例更加困难。

3、2)新漏洞的识别:随着软件技术的不断发展,新的漏洞形式也不断涌现。识别新的漏洞类型并找到合适的复现方法可以是一项具有挑战性的任务。

4、3)环境差异:由于软件配置、硬件和网络环境等因素的影响,可能会出现在确定漏洞复现之前需要准备多个测试环境的情况,这增加了复现漏洞的时间和资源成本。

5、4)异常行为分析:漏洞可能导致应用程序产生异常行为或意外崩溃。在进行漏洞复现时,需要进行详细的异常行为分析以了解漏洞的根本原因。这需要专业的技能和经验。

6、5)代码分析:在一些情况下,需要对软件源代码进行分析才能识别和复现漏洞。这需要深入理解编程语言和相关技术的知识,并具备相关的编程和调试技能。

7、6)误报率:当尝试复现漏洞时,可能会出现误报,即认为已成功复现某个漏洞,但实际上并非如此。这可能导致时间和资源的浪费,因此需要进行仔细的分析和确认。


技术实现思路>

1、针对现有技术存在的不足,本专利技术目的是提供一种基于大语言模型的软件漏洞复现方法,现有的软件漏洞复现方法往往需要大量的时间和人力成本,且效果不尽如人意,难以得到准确的漏洞报告,影响了软件开发的进度和质量。本专利技术将漏洞测试报告和大语言模型进行结合,提高生成有效覆盖漏洞代码区域的测试用例概率,从而促进软件漏洞复现效率,帮助开发人员更好地诊断和修复漏洞,提高软件的安全性和稳定性。

2、为了实现上述目的,本专利技术是通过如下的技术方案来实现:一种基于大语言模型的软件漏洞复现方法,该方法包括如下步骤:

3、步骤s1、从漏洞测试报告中构造llm(large language model,大语言模型)提示语,并输入到llm;

4、步骤s2、llm测试类依赖生成;

5、步骤s3、llm测试用例选择和排序;

6、步骤s4、将排序好的测试用例输入到模糊测试工具中进行测试。

7、进一步地,所述步骤s1中提示语包括当前漏洞名称、漏洞描述信息和漏洞堆栈信息。

8、进一步地,所述步骤s1中还包括将提示语输入到llm中,调整llm参数使其能通过相同的提示语生成不同的测试用例,根据提示语llm将生成一组或多组能够到达漏洞区域的函数。

9、进一步地,所述步骤s2中llm生成的程序输入有许多未导入的依赖,解析生成的测试方法并识别变量类型和引用的类名、构造函数和异常。

10、进一步地,所述步骤s2中还包括通过将名称与测试类中现有的导入语句进行词法匹配来过滤“已经导入”的类名,该步骤中还包括测试类中无法解析类型的方法。

11、进一步地,所述试类中无法解析类型的方法包括:尝试查找具有所识别类型名称的公共类;当有一个这样的文件时,则推导出到所识别类的类路径,并添加一个导入语句,当该文件不存在或者多个匹配的类时,会在项目中寻找以目标类名称结尾的导入语句(例如,在搜索maskutils时,会寻import.*maskutils)。

12、进一步地,所述试类中无法解析类型的方法还包括:选择跨所有项目源代码文件中最常见的导入语句,在处理依赖后,llm生成的测试类被编译。

13、进一步地,所述步骤s3中包括多个测试展示类似的失败情况,则认为成功复制错误的可能性高,当输出之间存在显著一致性时,使用启发式方法,按照区分能力的递增顺序,来排列生成的测试用例。

14、进一步地,所述执行失败信息中,包含漏洞报告中提到的行为,所述行为包括异常信息或输出值,则测试是对漏洞进行复现。

15、进一步地,所述测试用例被划分为包含和不包含两种组,通过测试用例集合大小,来判断生成测试用例之间的“一致性”,集合越大一致性越低,对于一致性不同的分组,一致性较高的集合优先排序,集合内部使用测试用例的长度进行优先排序。

16、本专利技术的有益效果:

17、本专利技术将漏洞测试报告和大语言模型进行结合,提高生成有效覆盖漏洞代码区域的测试用例概率,从而促进软件漏洞复现效率,帮助开发人员更好地诊断和修复漏洞,提高软件的安全性和稳定性。

18、本专利技术使用大语言模型结合漏洞报告,生成较为准确的测试用例,辅助模糊测试的种子生成,能够有效提高漏洞复现效率。

19、启发式算法生成依赖。先解析生成的测试方法并识别变量类型和引用的类名、构造函数、异常,然后,通过将名称与测试类中现有的导入语句进行词法匹配来过滤“已经导入”的类名,针对测试类中无法解析的类型,会在项目中寻找以目标类名称结尾的导入语句,并选择跨所有项目源代码文件中最常见的导入语句。

20、依据启发式方法,选择和排序llm生成的测试用例,如果多个测试展示了类似的失败情况,则认为成功复制错误的可能性较高,使用启发式方法,将测试用例按照区分能力的递增顺序排列,优先选择具有更高一致性的测试用例,同时优先选择长度较短的测试用例作为首选。

本文档来自技高网...

【技术保护点】

1.一种基于大语言模型的软件漏洞复现方法,其特征在于:该方法包括如下步骤:

2.根据权利要求1所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤S1中提示语包括当前漏洞名称、漏洞描述信息和漏洞堆栈信息。

3.根据权利要求2所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤S1中还包括将提示语输入到LLM中,调整LLM参数使其能通过相同的提示语生成不同的测试用例,根据提示语LLM将生成一组或多组能够到达漏洞区域的函数。

4.根据权利要求3所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤S2中LLM生成的程序输入有许多未导入的依赖,解析生成的测试方法并识别变量类型和引用的类名、构造函数和异常。

5.根据权利要求4所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤S2中还包括通过将名称与测试类中现有的导入语句进行词法匹配来过滤“已经导入”的类名,该步骤中还包括测试类中无法解析类型的方法。

6.根据权利要求5所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述试类中无法解析类型的方法包括:尝试查找具有所识别类型名称的公共类;当有一个这样的文件时,则推导出到所识别类的类路径,并添加一个导入语句,当该文件不存在或者多个匹配的类时,会在项目中寻找以目标类名称结尾的导入语句。

7.根据权利要求6所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述试类中无法解析类型的方法还包括:选择跨所有项目源代码文件中最常见的导入语句,在处理依赖后,LLM生成的测试类被编译。

8.根据权利要求7所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤S3中包括多个测试展示类似的失败情况,则认为成功复制错误的可能性高,当输出之间存在显著一致性时,使用启发式方法,按照区分能力的递增顺序,来排列生成的测试用例。

9.根据权利要求8所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述执行失败信息中,包含漏洞报告中提到的行为,所述行为包括异常信息或输出值,则测试是对漏洞进行复现。

10.根据权利要求9所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述测试用例被划分为包含和不包含两种组,通过测试用例集合大小,来判断生成测试用例之间的“一致性”,集合越大一致性越低,对于一致性不同的分组,一致性较高的集合优先排序,集合内部使用测试用例的长度进行优先排序。

...

【技术特征摘要】

1.一种基于大语言模型的软件漏洞复现方法,其特征在于:该方法包括如下步骤:

2.根据权利要求1所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤s1中提示语包括当前漏洞名称、漏洞描述信息和漏洞堆栈信息。

3.根据权利要求2所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤s1中还包括将提示语输入到llm中,调整llm参数使其能通过相同的提示语生成不同的测试用例,根据提示语llm将生成一组或多组能够到达漏洞区域的函数。

4.根据权利要求3所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤s2中llm生成的程序输入有许多未导入的依赖,解析生成的测试方法并识别变量类型和引用的类名、构造函数和异常。

5.根据权利要求4所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述步骤s2中还包括通过将名称与测试类中现有的导入语句进行词法匹配来过滤“已经导入”的类名,该步骤中还包括测试类中无法解析类型的方法。

6.根据权利要求5所述的一种基于大语言模型的软件漏洞复现方法,其特征在于:所述试类中无法解析类型的方法包括:尝试查找具有所识别类型名称的公共类;当有一个这样的文件...

【专利技术属性】
技术研发人员:范永陈陈坚利邓凯
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1