一种大模型自动化漏洞补丁代码生成方法、系统、设备及存储介质与流程

摘要: 本发明涉及软件漏洞修复的,尤其涉及一种大模型自动化漏洞补丁代码生成方法、系统、设备及存储介质。背景技术:1、软件漏洞是指软件系统中存在的缺陷或弱点,这些漏洞可能...
一种大模型自动化漏洞补丁代码生成方法、系统、设备及存储介质与流程

本发明涉及软件漏洞修复的,尤其涉及一种大模型自动化漏洞补丁代码生成方法、系统、设备及存储介质。

背景技术:

1、软件漏洞是指软件系统中存在的缺陷或弱点,这些漏洞可能被恶意利用,从而导致数据泄露、系统崩溃、服务中断等严重后果,给个人、企业和国家带来巨大的经济损失和安全风险。传统的软件漏洞修复主要依赖于人工方式。开发人员需要花费大量时间来分析漏洞代码,理解漏洞产生的原因,然后手动编写补丁代码来修复漏洞。这种方法不仅效率低下,而且容易受到开发人员经验、技能水平等因素的影响,导致补丁代码的质量参差不齐。在实际开发中,一个复杂的软件漏洞可能需要数周甚至数月的时间才能得到修复,这期间软件系统处于易受攻击的脆弱状态。此外,随着软件系统的更新换代速度加快,新的漏洞不断涌现,人工修复漏洞的方式已经难以满足快速响应的需求。

2、近年来,人工智能技术取得了飞速发展,其中大模型技术在自然语言处理、图像识别等领域展现出了强大的能力。大模型通过对海量数据的学习,能够自动捕捉数据中的模式和规律,生成高质量的内容。在软件领域,大模型也逐渐被应用于代码生成、代码补全、代码翻译等任务中,为软件开发带来了新的思路和方法。然而,直接将大模型应用于补丁代码生成任务时,面临着一些挑战。大模型生成的补丁代码可能存在与漏洞代码结构和语义不匹配的问题,导致生成的补丁代码无法有效修复漏洞,甚至可能引入新的问题。

技术实现思路

1、鉴于上述现有存在的问题,提出了本发明。因此,本发明提供了一种大模型自动化漏洞补丁代码生成方法、系统、设备及存储介质解决大模型生成的补丁代码存在与漏洞代码结构和语义不匹配的问题。

2、为解决上述技术问题,本发明提供如下技术方案:

3、第一方面,本发明实施例提供了一种大模型自动化漏洞补丁代码生成方法,包括:对输入的漏洞代码进行预处理,并基于所述预处理后的漏洞代码构建融合抽象语法树和数据流图的漏洞概率图模型;

4、将所述漏洞代码输入预训练的代码大语言模型,生成多个候选补丁代码及其对应的生成概率;

5、对每个所述候选补丁代码,构建其对应的补丁概率图模型,并计算该补丁概率图模型与所述漏洞概率图模型的图匹配概率,根据所述图匹配概率从所述多个候选补丁代码中筛选出目标补丁代码;

6、对所述目标补丁代码进行验证,并对通过验证的补丁进行优化,生成最终补丁代码;

7、将所述最终补丁代码与对应漏洞代码组成新的训练样本,反馈至所述代码大语言模型更新模型参数,形成闭环优化机制。

8、作为本发明所述的大模型自动化漏洞补丁代码生成方法的一种优选方案,其中:去除所述漏洞代码的注释和冗余空白字符,所述基于所述预处理后的漏洞代码构建融合抽象语法树和数据流图的漏洞概率图模型包括:

9、基于所述抽象语法树构建控制流图,将函数体拆分为基本块并建立控制流边,在所述控制流图上计算每个基本块的入口和出口处的变量定义可达集合;

10、对所述控制流图进行静态单赋值形式转换,在汇合点插入函数并对变量进行重命名,扫描所有变量使用点,根据静态单赋值版本将其唯一绑定到对应的定义点,生成带权重的数据流边;

11、执行过程间指针分析以构建调用图,并将参数、返回值及堆对象抽象为跨函数的数据流边,将生成的所有数据流边序列化为邻接表格式,形成所述数据流图。

12、作为本发明所述的大模型自动化漏洞补丁代码生成方法的一种优选方案,其中:还包括:

13、以统一的节点标识id对所述抽象语法树与数据流图中的节点进行对齐,融合得到表示漏洞代码结构和语义特征的概率图模型;

14、所述概率图模型的节点集合包含来自抽象语法树的语法结构节点和数据流图的数据依赖节点,边集合包含控制流、语法父子关系及数据流关系,并为每条边赋予联合概率权重;

15、对所述漏洞概率图建模,其中每个节点对应一元势函数,每条边对应二元势函数;对任一候选补丁代码,计算其漏洞概率图模型相对于已知漏洞概率图模型的相似度得分,并将该相似度得分作为匹配依据。

16、作为本发明所述的大模型自动化漏洞补丁代码生成方法的一种优选方案,其中:将所述漏洞代码输入预训练的代码大语言模型,生成多个候选补丁代码及其对应的生成概率包括:

17、在代码大语言模型的权重矩阵中插入低秩矩阵,冻结原始模型参数,仅训练所述低秩矩阵;

18、将预处理后的漏洞代码作为代码大语言模型输入,生成多个候选补丁代码;在生成过程中,对每个候选补丁代码计算其对应的生成概率,所述生成概率为模型在给定漏洞代码条件下输出该补丁代码的序列联合概率;

19、其中,所述预训练数据由漏洞函数与对应人工标注补丁函数拼接构成,并通过优化器结合余弦学习率衰减、梯度裁剪及早停机制完成训练。

20、作为本发明所述的大模型自动化漏洞补丁代码生成方法的一种优选方案,其中:所述预训练数据由漏洞函数与对应人工标注补丁函数拼接构成步骤中,拼接格式为:分类标记、漏洞函数代码、分隔标记、人工标注补丁函数代码、序列结束标记。

21、作为本发明所述的大模型自动化漏洞补丁代码生成方法的一种优选方案,其中:对所述目标补丁代码进行验证,并对通过验证的补丁进行优化,生成最终补丁代码包括:

22、若所述目标补丁代码验证通过,则将所述目标补丁代码作为最终输出;若所述目标补丁代码验证未通过,则从剩余的候选补丁代码中按匹配概率分次序选取下一个候选补丁代码进行验证,直至找到验证通过的补丁代码或耗尽所有候选补丁代码。

23、作为本发明所述的大模型自动化漏洞补丁代码生成方法的一种优选方案,其中:所述对所述目标补丁代码进行验证的步骤包括:

24、将所述目标补丁代码编译为可执行程序;

25、使用预设的测试用例集对所述可执行程序进行动态测试,检查是否存在崩溃或异常退出;

26、使用静态分析工具对所述目标补丁代码进行扫描,检查是否引入新的安全缺陷。

27、第二方面,本发明提供了一种大模型自动化漏洞补丁代码生成系统,包括:

28、漏洞代码分析模块,用于对输入的漏洞代码进行预处理,并基于所述预处理后的漏洞代码构建融合抽象语法树和数据流图的漏洞概率图模型;

29、大模型生成模块,用于将所述漏洞代码输入预训练的代码大语言模型,生成多个候选补丁代码及其对应的生成概率;

30、概率图匹配筛选模块,用于对每个所述候选补丁代码,构建其对应的补丁概率图模型,并计算该补丁概率图模型与所述漏洞概率图模型的图匹配概率,根据所述图匹配概率从所述多个候选补丁代码中筛选出目标补丁代码;

31、补丁代码验证与优化模块,用于对所述目标补丁代码进行验证,并对通过验证的补丁进行优化,生成最终补丁代码;

32、反馈与迭代模块,用于将所述最终补丁代码与对应漏洞代码组成新的训练样本,反馈至所述代码大语言模型更新模型参数,形成闭环优化机制。

33、第三方面,本发明提供了一种电子设备,包括:

34、存储器和处理器;

35、所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述大模型自动化漏洞补丁代码生成方法的步骤。

36、第四方面,本发明提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述大模型自动化漏洞补丁代码生成方法的步骤。

37、与现有技术相比,本发明的有益效果:本发明能够在短时间内生成多个补丁代码片段,提高补丁代码的生成效率,缩短漏洞修复周期;利用结构与语义多维匹配筛选最优补丁,避免引入新缺陷,提高补丁代码的质量和可靠性;本发明支持多种编程语言和漏洞类型,具备良好的通用性,进一步通过反馈机制实现模型自学习与能力迭代,实现补丁代码的自动化生成和优化,减少开发者手动修复负担,提升开发效率。

38、本发明架构支持算法、数据和策略的持续演进,融合静态分析、动态测试与模糊测试,确保补丁可靠性,能够快速响应高危漏洞,降低被攻击风险;本发明通过构建漏洞和对应补丁代码的验证知识库,提高对新补丁代码验证的准确性,还可以为其他开发人员提供参考和学习的资源,促进知识的共享和传播,本发明可集成至软件开发的持续集成流程中,可以自动化地检测和修复代码中的漏洞,确保每次代码提交都符合安全标准,从而推动软件安全自动化的发展,为软件行业的可持续发展提供有力支持。