本发明专利技术提供一种基于异构数据的软件安全漏洞严重度评估方法及系统,设计合理,增加了检测维度,准确性高,实现对漏洞严重度的量化评估。所述方法包括,获取待评估的软件安全漏洞的漏洞描述信息和对应的源码;将所述漏洞描述信息通过预训练的BERT模型提取得到第一特征向量;将所述源码通过程序分析得到代码结构信息,再通过embedding的嵌入生成第二特征向量;将第一特征向量和第二特征向量进行拼接,得到输入向量;通过预训练的神经网络对输入向量进行分类,得到待评估的软件安全漏洞的严重等级。等级。等级。
【技术实现步骤摘要】
一种基于异构数据的软件安全漏洞严重度评估方法及系统
[0001]本专利技术涉及软件安全检测领域,具体为一种基于异构数据的软件安全漏洞严重度评估方法及系统。
技术介绍
[0002]当漏洞被发现时,软件开发者一般是开发补丁以解决漏洞问题。理想情况下,软件用户只需要在漏洞被利用之前,更新软件补丁即可。然而,事实上打补丁会导致业务停机或者不可预知的副作用,这些对用户来说都是不可接受的。此外,软件提供商几乎很少拥有足够的人力资源一次性将所有发现的漏洞都解决掉。因此,软件开发者需要对漏洞按照严重性划分优先级,保证严重性较高的漏洞优先被修复。
[0003]业界已经有多种漏洞排名系统,譬如Common Vulnerability Scoring System(CVSS),Microsoft Security Bulletin Severity Rating System,US
‑
CERT Vulnerability Notes Database,SANS Critical Vulnerability Analysis Archive,其中CVSS以一种特有的标准度量漏洞严重性。在漏洞被发现之后,CVSS将其文档化,公布于漏洞数据库之中,生成漏洞报告。漏洞报告一方面描述漏洞是如何工作,另一方面提供漏洞严重性的专家打分。该打分是通过精心设计的方法计算所得,方法的输入值为可利用性指标与影响指标。CVSS中的指标值皆是取自于漏洞的工作方式。与之不同的是Zhuobing Han等人的工作,其利用漏洞描述,抽取表面层次的信息,预测漏洞的严重性。Georgios Spanos等人采用了类似的方法,从漏洞描述与总结中挖掘出信息进行预测。
[0004]以上方法由于信息维度的单一性,对漏洞严重程度进行等级评估往往存在着不准确性,从而无法客观的评估软件系统的风险,不能对软件的开发和补丁的决策提供可靠的依据。
技术实现思路
[0005]针对现有技术中存在的问题,本专利技术提供一种基于异构数据的软件安全漏洞严重度评估方法及系统,设计合理,增加了检测维度,准确性高,实现对漏洞严重度的量化评估。
[0006]本专利技术是通过以下技术方案来实现:
[0007]本专利技术一方面提供一种基于异构数据的软件安全漏洞严重度评估方法,包括,
[0008]获取待评估的软件安全漏洞的漏洞描述信息和对应的源码;
[0009]将所述漏洞描述信息通过预训练的BERT模型提取得到第一特征向量;
[0010]将所述源码通过程序分析得到代码结构信息,再通过embedding的嵌入生成第二特征向量;
[0011]将第一特征向量和第二特征向量进行拼接,得到输入向量;
[0012]通过预训练的神经网络对输入向量进行分类,得到待评估的软件安全漏洞的严重等级。
[0013]可选的,所述预训练的BERT模型和预训练的神经网络,均采用获取的漏洞数据进
行预训练;
[0014]所述漏洞数据来源于漏洞库,包括漏洞描述信息、源码和对应的CVSS中的严重性评级。
[0015]可选的,所述代码结构信息获取方法如下,
[0016]通过程序分析源码,在触发漏洞的路径上收集对应数据,得到所述代码结构信息;所述代码结构信息包括攻击入口点数量、系统调用函数数量和外部API调用数量中的至少一种。
[0017]可选的,所述攻击入口点为路径上从外部获取数据的函数;所述外部API是指用户层实现的类库函数。
[0018]可选的,所述预训练的神经网络进行预训练时,将所述漏洞数据对应的训练输入向量和对应的严重性评级共同作为输入,对神经网络进行训练,使用softmax函数进行多分类,输出对应CVSS中的严重性评级的四种分类级别。
[0019]可选的,所述CVSS中的严重性评级的四种分类级别分别为Critical、High、Medium和Low。
[0020]可选的,所述漏洞描述信息为自然语言描述的非结构话数据,所述代码结构信息为结构化数据。
[0021]本专利技术一方面提供一种基于异构数据的软件安全漏洞严重度评估系统,包括,
[0022]获取模块,用于获取待评估的软件安全漏洞的漏洞描述信息和对应的代码结构信息;
[0023]第一特征向量提取模块,用于将所述漏洞描述信息通过预训练的BERT模型提取得到第一特征向量;
[0024]第二特征向量提取模块,用于将所述代码结构信息通过程序分析和embedding的嵌入生成第二特征向量;
[0025]特征向量拼接模块,用于将第一特征向量和第二特征向量进行拼接,得到输入向量;
[0026]分类评估模块,用于通过预训练的神经网络对输入向量进行分类,得到待评估的软件安全漏洞的严重等级。
[0027]本专利技术一方面提供一种计算机设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上任一项所述的基于异构数据的软件安全漏洞严重度评估方法。
[0028]本专利技术一方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的基于异构数据的软件安全漏洞严重度评估方法。
[0029]与现有技术相比,本专利技术具有以下有益的技术效果:
[0030]本专利技术一种基于异构数据的漏洞严重度智能评估方法和系统,通过结合了漏洞内部代码实现与外部人工描述两个维度的知识,利用基于神经网络的分类方法,准确地预测出漏洞严重度;同时对于漏洞描述信息,利用BERT模型提升自然语言描述的特征表示,从而优化下一阶段分类任务的效果,提高了其评估的准确性,并且降低了整体系统的复杂度,实现了对漏洞的快速、高效和准确的评估。
附图说明
[0031]图1为本专利技术实例中所述方法的流程示意图。
[0032]图2为本专利技术实例中所述方法中特征抽取的流程示意图。
[0033]图3为本专利技术实例中所述神经网络的分类模型结构示意图。
[0034]图4为本专利技术实例中所述系统的结构示意图。
具体实施方式
[0035]下面结合具体的实施例对本专利技术做进一步的详细说明,所述是对本专利技术的解释而不是限定。
[0036]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0037]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0038]本专利技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本专利技术,在这些分本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于异构数据的软件安全漏洞严重度评估方法,其特征在于,包括,获取待评估的软件安全漏洞的漏洞描述信息和对应的源码;将所述漏洞描述信息通过预训练的BERT模型提取得到第一特征向量;将所述源码通过程序分析得到代码结构信息,再通过embedding的嵌入生成第二特征向量;将第一特征向量和第二特征向量进行拼接,得到输入向量;通过预训练的神经网络对输入向量进行分类,得到待评估的软件安全漏洞的严重等级。2.根据权利要求1所述的一种基于异构数据的软件安全漏洞严重度评估方法,其特征在于,所述预训练的BERT模型和预训练的神经网络,均采用获取的漏洞数据进行预训练;所述漏洞数据来源于漏洞库,包括漏洞描述信息、源码和对应的CVSS中的严重性评级。3.根据权利要求2所述的一种基于异构数据的软件安全漏洞严重度评估方法,其特征在于,所述代码结构信息获取方法如下,通过程序分析源码,在触发漏洞的路径上收集对应数据,得到所述代码结构信息;所述代码结构信息包括攻击入口点数量、系统调用函数数量和外部API调用数量中的至少一种。4.根据权利要求3所述的一种基于异构数据的软件安全漏洞严重度评估方法,其特征在于,所述攻击入口点为路径上从外部获取数据的函数;所述外部API是指用户层实现的类库函数。5.根据权利要求2所述的一种基于异构数据的软件安全漏洞严重度评估方法,其特征在于,所述预训练的神经网络进行预训练时,将所述漏洞数据对应的训练输入向量和对应的严重性评级共同作为输入,对神经网络进行训练,使用softmax...
【专利技术属性】
技术研发人员:张晓东,杨子江,
申请(专利权)人:交叉信息核心技术研究院西安有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。