一种漏洞利用代码生成方法、系统、计算机程序及介质与流程

摘要: 本发明涉及漏洞修复领域,更具体地说,它涉及一种漏洞利用代码生成方法、系统、计算机程序及介质。背景技术:1、在网络安全领域,每当发现一个新的软件漏洞,安全研究人员...
一种漏洞利用代码生成方法、系统、计算机程序及介质与流程

本发明涉及漏洞修复领域,更具体地说,它涉及一种漏洞利用代码生成方法、系统、计算机程序及介质。

背景技术:

1、在网络安全领域,每当发现一个新的软件漏洞,安全研究人员都需要快速生成对应的漏洞利用代码来验证漏洞的真实性、评估其危害程度,并为后续的修复工作提供依据。然而,这个过程长期以来都是安全工作中最耗时耗力的环节之一。在没有专门技术的情况下,安全团队通常只能依靠人工方式来生成漏洞利用代码。研究人员需要仔细阅读漏洞报告,理解漏洞的触发条件、攻击路径和影响范围,然后手动编写代码来复现漏洞。这种方式虽然能够确保代码的准确性,但效率极低,一个复杂的漏洞可能需要花费数天甚至数周的时间来编写验证代码。而且,这种工作对研究人员的技术水平要求很高,不是每个安全团队都具备这样的能力。

2、随着漏洞数量的爆炸式增长,人工方式已经无法满足实际需求。一些团队开始尝试使用模板化的方法来生成代码,预先为常见类型的漏洞设计好代码模板,然后根据具体的漏洞信息进行填充。这种方法确实提高了效率,但问题在于漏洞的形态千变万化,每个漏洞都有其独特性,简单的模板很难准确反映复杂的漏洞特征。很多时候,生成的代码要么无法成功触发漏洞,要么与实际的攻击场景相差甚远。更麻烦的是,即使生成了代码,如何评估代码的质量也是一个难题。现有的评估方法往往只关注代码能否正常运行,或者语法是否正确,却难以检验代码是否真正反映了漏洞的本质特征、攻击路径是否完整连通。

3、更为关键的是,现有的代码生成与评估方法均为静态分析手段,无法解决漏洞利用代码在实际运行环境中因环境依赖缺失、版本不匹配、认证方式差异等因素导致的运行失败问题。一个典型的场景是:安全研究人员生成了漏洞利用代码,代码本身的逻辑和语法都是正确的,但在目标电力信息系统环境中运行时,却因数据库类型不同、中间件版本不一致或认证方式不匹配而执行失败。研究人员需要反复手动调试、修改代码、重新部署测试,整个过程效率极其低下。

4、上述缺陷在电力信息系统等高安全等级、高环境异构性的行业中表现得尤为突出。电力信息系统具有运行环境多样(涉及多种操作系统、数据库、中间件)、安全认证机制复杂、对系统稳定性要求极高等特点,导致漏洞利用代码在不同电力系统环境中的可用性存在显著差异。传统的静态代码审查和评估方法无法感知运行环境的差异性,也难以在代码运行前预判其在实际环境中的执行效果。

5、安全团队亟需一种更智能、更高效的方法及系统,能够结合静态分析与动态执行验证,实现漏洞利用代码的自动化生成、环境适配性评估与定向优化,从而生成在不同电力信息系统环境中均具备高可用性的漏洞利用代码。

技术实现思路

1、本发明克服了现有技术中漏洞利用代码生成效率低、静态评估手段难以反映实际运行效果、缺乏环境适配性验证的技术问题,提供了一种漏洞利用代码生成方法、系统、计算机程序及介质,它通过静态路径预判、动态执行验证与执行结果语义反馈的协同机制,实现漏洞利用代码的自动化、智能化生成与高可用优化。

2、为了解决上述技术问题,本发明采用以下技术方案:

3、一种漏洞利用代码生成方法,用于生成能够触发漏洞的利用代码,包括如下步骤:

4、s1、获取漏洞报告的漏洞特征信息,所述漏洞报告根据漏洞代码生成,基于所述漏洞特征信息进行静态路径预判,输出静态分析结果;所述静态路径预判包括:采用污点传播规则评价待审计代码的漏洞可达性,以及在无法获得漏洞可达性结果的前提下调用代码审计决策体进行逻辑缺陷推理;

5、s2、基于所述漏洞特征信息和所述静态分析结果生成漏洞利用生成提示词,通过漏洞利用生成决策体生成初始漏洞利用代码;

6、s3、在实际运行环境中执行所述初始漏洞利用代码,捕获执行响应结果;

7、s4、将所述执行响应结果与预设的漏洞预期行为库进行语义相似度推理,得到语义相似度评分;

8、s5、若所述语义相似度评分低于设定阈值,则基于所述执行响应结果生成迭代优化提示词,输入到漏洞利用迭代决策体以定向修正所述初始漏洞利用代码;

9、s6、迭代执行步骤s3至s5,直至触发终止条件,输出目标漏洞利用代码。

10、作为优选,漏洞特征信息包括漏洞类型、受影响组件、受影响版本、漏洞触发条件、污染源、危险操作点、攻击载荷构造要求以及目标运行环境约束,目标运行环境约束包括数据库类型、中间件版本、认证方式、系统接口类型或运行时版本中的一种或多种。

11、作为优选,所述采用污点传播规则评价待审计代码的漏洞可达性包括:定义污染源source和危险操作点sink,沿代码数据流应用过滤规则与约束条件确定污点标记数据存在的最下游位置;当污点数据到达数据流的末端时标记为硬可达,否则标记为硬不可达;

12、记录污点标记数据到达的最下游位置及对应的过滤规则与约束条件,生成污点传播审计结果。

13、作为优选,调用所述代码审计决策体进行逻辑缺陷推理,具体包括:

14、将待审计代码的抽象语法树、控制流图及跨函数调用关系图序列化后输入所述代码审计决策体;

15、所述代码审计决策体基于预训练的漏洞模式知识,推理代码中是否存在因逻辑顺序错误、条件判断缺失、资源释放不当或认证绕过导致的潜在路径断裂,生成语义审计结果。

16、作为优选,所述静态分析结果由所述污点传播审计结果与所述代码审计决策体输出的语义审计结果融合生成;当所述污点传播审计结果与所述语义审计结果冲突时,优先采纳所述语义审计结果作为静态分析结论。

17、作为优选,步骤s4中所述语义相似度推理具体包括:

18、将所述执行响应结果中的错误码、堆栈轨迹、返回值状态及输出日志进行向量化编码,生成执行响应特征向量;

19、将所述执行响应特征向量与所述漏洞预期行为库中存储的预期触发特征向量计算余弦相似度或欧氏距离,得到所述语义相似度评分。

20、作为优选,所述迭代优化提示词的生成策略包括:提取所述执行响应结果中的异常关键字、缺失依赖信息或环境不匹配项,将其注入预设的模板中,生成针对性的自然语言修复指令。

21、作为优选,所述终止条件包括:所述语义相似度评分达到设定阈值、迭代次数达到预设值,或连续两轮迭代的相似度提升幅度低于预设比例,当达到终止条件中的任意一项时,停止迭代并输出漏洞利用代码。

22、作为优选,步骤s1中所述静态路径预判还包括:基于电力信息系统的特定运行环境约束对可达路径进行过滤,筛除与环境不兼容的攻击路径;所述特定运行环境约束包括操作系统版本、数据库类型和中间件认证方式。

23、一种基于动静态协同的漏洞利用代码生成优化系统,包括:

24、静态预判模块,用于获取漏洞报告的漏洞特征信息,所述漏洞报告对应待审计代码,基于所述漏洞特征信息进行静态路径预判,输出静态分析结果;所述静态路径预判包括:采用污点传播规则评价待审计代码的漏洞可达性,以及在无法获得漏洞可达性结果的前提下,调用代码审计决策体进行逻辑缺陷推理;

25、初始生成模块,用于基于所述漏洞特征信息和所述静态分析结果生成漏洞利用生成提示词,通过漏洞利用生成决策体生成初始漏洞利用代码;

26、动态执行模块,用于在实际运行环境中执行所述初始漏洞利用代码,捕获执行响应结果;

27、语义比对模块,用于将所述执行响应结果与预设的漏洞预期行为库进行语义相似度推理,得到语义相似度评分;

28、迭代优化模块,用于在所述语义相似度评分低于设定阈值时,基于所述执行响应结果生成迭代优化提示词,输入到漏洞利用迭代决策体以定向修正所述初始漏洞利用代码,并迭代循环直至触发终止条件,输出目标漏洞利用代码。

29、作为优选,所述代码审计决策体的训练数据包括:跨函数的漏洞样本代码、包含复杂控制流的缺陷补丁对、以及标注了逻辑跳转关系的代码切片。

30、作为优选,还包括rag知识库检索模块,用于在所述语义相似度评分低于设定阈值时,从历史漏洞库中检索与当前执行响应结果最相似的修复案例,辅助构造所述迭代优化提示词。

31、作为优选,所述漏洞预期行为库基于cve/cnnvd漏洞数据库和电力行业历史漏洞验证报告构建,存储有各类漏洞在被成功触发时的预期输出特征、响应延迟特征及系统状态变化特征。

32、与现有技术相比,本发明的有益效果是:

33、(1)构建“静态预判→动态执行→语义反馈→定向优化”的动静态协同迭代式优化流程,通过在实际运行环境中执行代码并基于执行响应结果进行语义相似度评估,克服了纯静态分析无法感知运行环境差异的技术缺陷,实现了漏洞利用代码的高可用生成。

34、(2)采用污点传播规则与代码审计决策体相结合的分层静态分析方法:规则层快速裁决常规直连路径的可达性,llm层对跨函数调用、间接跳转等复杂逻辑结构进行深度推理,两者协同保证了静态路径预判的精度与覆盖面。

35、(3)基于执行响应结果构造定向优化提示词,将运行失败的具体原因(如缺失依赖、环境不匹配、认证失败)转化为可定位、可解释的修复指令,驱动大模型进行精准修正,大幅提升了迭代优化效率。