本发明涉及计算机,尤其涉及一种基于大语言模型和信息融合的漏洞严重程度预测方法。
背景技术:
1、随着信息技术的飞速发展,软件系统已成为现代社会不可或缺的基础设施。然而,这些系统的安全性却常常受到来自漏洞的威胁。漏洞严重程度预测是确保系统安全性的关键步骤,它旨在识别和分析系统中存在的漏洞,以便及时采取修复措施。
2、传统的漏洞严重程度预测方法主要依赖于人工审查和安全专家的经验知识,这种方法不仅效率低下,而且容易出错。然而,当前的漏洞严重程度预测方法仍然面临诸多挑战。首先,软件系统的复杂性和多样性使得漏洞的表现形式千差万别,难以通过单一的方法或模型进行准确预测。其次,漏洞描述通常使用自然语言编写,存在大量的语义歧义和模糊性,给自动化预测带来了困难。此外,现有的漏洞严重程度预测方法往往忽略了漏洞之间的关联性和上下文信息,导致预测结果不够全面和准确。
3、大语言模型具备了强大的文本处理能力,通过对海量文本数据进行训练,得到的能够处理自然语言任务的模型。大语言模型的出现为漏洞严重程度预测带来了新的机遇。随着软件系统的日益复杂和攻击面的不断扩大,漏洞严重程度预测成为保障系统安全性的重要手段。而大语言模型作为人工智能领域的一个重要分支,其强大的文本处理能力和对语境的深刻理解,为漏洞严重程度预测提供了新的思路和方法。
4、然而,大语言模型虽在自然语言处理领域取得重大进展,但将其应用于漏洞严重程度预测面临重大挑战:包括模型针对性训练不足、缺乏特定领域知识敏感性、处理复杂文本时准确性和可靠性的问题,以及难以完全替代人类专家的直觉和经验。
5、如何解决上述技术问题成为本发明面临的课题。
技术实现思路
1、本发明的目的在于提供一种基于大语言模型和信息融合的漏洞严重程度预测方法,以克服现有漏洞严重程度预测方法在准确性和全面性方面的挑战,特别是针对大语言模型在漏洞严重程度预测任务中应用不足的问题,该方法可以自动预测源代码中的漏洞的严重程度。
2、本发明的思想为:本发明提出一种基于大语言模型和信息融合的漏洞严重程度预测方法,本发明立足于三大核心创新点,即利用广泛适用的大语言模型深化漏洞严重程度预测的语义理解,通过上下文学习(icl)方法使得大语言模型以精准识别代码漏洞,并结合源代码与漏洞描述两种信息模态,实现漏洞分析的全面性与精确性。具体实践中,本发明提出的方法整合漏洞代码及漏洞描述的双模态特征,精选历史相关案例构建上下文提示,借助大语言模型的强大能力,无需额外训练即可高效准确地完成软件漏洞严重程度预测工作。
3、本发明是通过如下措施实现的:一种基于大语言模型和信息融合的漏洞严重程度预测方法,其中,包括以下步骤:
4、1.1:从cvedetails官网收集c/c++漏洞代码片段、对应的漏洞描述以及漏洞严重程度等基本信息,逐条处理漏洞记录每条记录中的代码片段与详细描述,进行数据预处理,剔除非代码元素、空白行和无关信息,得到漏洞严重程度预测数据集d;
5、1.2:运用双模态信息融合策略,结合代码片段的句法、语义、词汇信息与漏洞描述文本信息,通过计算相关性挑选历史案例;
6、1.3:通过精心设计的提示模板,确定演示示例的选择数量和排列顺序,引导大语言模型在不进行额外微调的情况下,学习并应用上下文中的知识于新漏洞的严重程度预测。
7、1.4:输入待分析的漏洞代码和漏洞描述,将其与提示模板结合,得到最终的大语言模型的输入提示,将提示通过api接口传送至大语言模型,模型依据提供的上下文信息预测并输出该漏洞的严重程度。
8、步骤1.2中的相似性的计算以及双模态信息的融合,具体包括:
9、2.1使用codebert模型获取目标漏洞代码的向量表示,并根据l2距离从数据集d中选取与目标漏洞代码最相似的前n个代码片段。
10、2.2对代码片段进行分析,包括提取函数定义、变量声明、操作符使用等语法元素,构建代码的结构化表示,并计算目标漏洞代码与候选代码之间的词汇相似度lex_sim。
11、2.3利用tree-sitter库生成漏洞代码的抽象语法树(ast)序列,并通过ast序列计算目标漏洞代码与候选漏洞代码之间的编辑距离,转换为句法相似度syn_sim。
12、2.4采用信息融合技术,将lex_sim和syn_sim结合起来,分别赋予两者60%和40%的权重,并将两者进行加权求和,计算出目标漏洞代码与候选漏洞代码之间的代码相似度code_sim。
13、2.5使用text2vec库对漏洞描述文本进行语义解析,获取漏洞描述的向量表示。
14、2.6借助cosent模型计算目标漏洞描述向量与候选描述向量之间的距离,量化为描述相似度desc_sim。
15、2.7将漏洞代码和漏洞描述的双模态信息结合起来,将desc_sim和code_sim进行组合,分别赋予30%和70%的权重,进行加权求和,得出目标漏洞与数据集d中每个漏洞之间的综合相似度。
16、2.8根据综合相似度对候选漏洞进行排序,选出最相似的k个漏洞代码和描述,作为大语言模型上下文学习的示例。
17、步骤1.3中提示模板的构造,步骤如下:
18、3.1给出基本提示,明确大语言模型的任务,“i will give you some demoexamples that include the vulnerability code and a description of thevulnerability,as well as the severity level of the vulnerability.you need topredict the severity level of the vulnerability of the test example code anddescription.”。
19、3.2提供严重程度标准,“you will rate the vulnerabilities based on thefollowing scoring criteria:0.1-3.9:low,4.0–6.9:medium,7.0–8.9:high,9.0–10.0:critical.”。
20、3.3在提示模板中明确指出模型的角色,提供具体的角色背景和任务描述,增强模型的专业性,“you are an expert in software vulnerability severityprediction.”。
21、3.4根据大语言模型的上下文窗口限制,对演示示例进行截断,并确定最佳演示示例的数量。
22、3.5将演示示例按照升序排列的方式进行组合,确保越相似的漏洞代码和漏洞描述的位置越靠近目标漏洞代码和漏洞描述。
23、与现有技术相比,本发明的有益效果为:
24、1、本发明提出的一种基于大语言模型和信息融合的漏洞严重程度预测方法,对大语言模型的应用领域进行了创新,即通过结合源代码和漏洞描述的双模态信息,提升了大语言模型在漏洞严重程度预测任务中的表现。在评估过程中,开发了专门的提示模板,这些模板不仅包含了目标代码和漏洞描述,还融入了精心设计的上下文示例,以引导大语言模型更准确地理解和预测漏洞严重程度。
25、2、相比传统的基于静态分析或机器学习的方法,本发明利用了大语言模型强大的语言理解能力,增强了对漏洞严重性的综合预测,从而提高了预测的准确性和全面性。此外,本发明的方法避免了耗时的模型训练过程,显著提高了漏洞严重程度预测的效率。通过在不同随机种子下的数据集划分实验,本发明还证明了其方法在不同数据分布下的稳定性和鲁棒性。
1.一种基于大语言模型和信息融合的漏洞严重程度预测方法,其特征在于,包含以下步骤:
2.根据权利要求1所述的一种基于大语言模型和信息融合的漏洞严重程度预测方法,其特征在于,步骤1.2中的相似度计算和双模态信息融合,具体包括:
3.根据权利要求1所述的一种基于大语言模型和信息融合的漏洞严重程度预测方法,其特征在于,步骤1.3中提示模板的设计以及演示示例的选择,具体包括:
4.根据权利要求1所述的一种基于大语言模型和信息融合的漏洞严重程度预测方法,其特征在于,步骤1.4中通过大语言模型进行漏洞严重程度预测,将演示示例按照升序方式进行排列,并在末尾拼接测试样例,形成完整的提示,将完整的提示信息通过api发送给大语言模型,大语言模型将通过上下文学习给出该测试样例的漏洞严重程度预测结果。