当前位置: 首页 > 专利查询>四川大学专利>正文

一种面向CVE的漏洞可利用性预测方法技术

技术编号:36221276 阅读:12 留言:0更新日期:2023-01-04 12:19
本发明专利技术公开了一种面向CVE的漏洞可利用性预测方法,包括:采集漏洞数据,漏洞数据包括结构化漏洞数据、非结构化漏洞文本数据和非结构化漏洞利用代码数据;基于非结构化漏洞文本数据和非结构化漏洞利用代码数据训练fastText文本嵌入模型,利用fastText文本嵌入模型提取漏洞的漏洞文本特征;基于非结构化漏洞利用代码数据提取基于抽象语法树节点的漏洞利用代码特征;对结构化漏洞数据进行编码或归一化处理,提取每个漏洞的漏洞固有特征;基于漏洞文本特征、漏洞利用代码特征和漏洞固有特征构建LightGBM预测模型,利用LightGBM预测模型进行漏洞可利用性的预测。本发明专利技术提供了一种有效的漏洞可利用性预测方法。漏洞可利用性预测方法。漏洞可利用性预测方法。

【技术实现步骤摘要】
一种面向CVE的漏洞可利用性预测方法


[0001]本专利技术属于信息安全
,特别是涉及一种面向CVE的漏洞可利用性预测方法。

技术介绍

[0002]CVE(Common Vulnerability Explosure,通用漏洞披露)是目前使用最广泛的漏洞数据库,列出了已公开披露的各种计算机安全缺陷。近年来,被发现并公开披露的漏洞数量急剧上升,然而其中只有小部分(27.9%)能够被广泛地利用到真实攻击中,且这些漏洞的利用价值各不相同。
[0003]CVSS(Common Vulnerability Scoring System,通用漏洞评分系统)是目前对漏洞最为官方的评价系统。CVSS根据漏洞的攻击途径、攻击复杂度、认证、机密性、完整性、可用性等因素通过加权计算得出一个漏洞评分,这一评分可以作为漏洞严重程度的判断标准。然而,CVSS给出的评分仅反映了总体的风险,评分高并不意味着漏洞能够被用来攻击的概率大。因此,CVSS评分本质上与漏洞是否能被利用没有直接的关联,部分漏洞虽然CVSS评分很高,但是没有给出相应的exp(漏洞利用代码),使得漏洞本身难以被广泛利用。现有的其他漏洞评判方法中,也很少针对漏洞的可利用性进行预测。市面上出现的大多数漏洞评判系统仅是将漏洞的描述、建议、缓解措施等信息进行了聚合与可视化,或是如专利申请CN114065223A中的方法,在CVSS的计算标准上进行改进,调整各项权值来重新评分。
[0004]目前对于漏洞可利用性的评判,主要是通过描述漏洞与PoC(即exp,漏洞利用代码)之间的关系,或是通过社交网络中提到的漏洞信息(如Twitter)来进行预测。然而,这些方法也存在一些问题:首先,社交网络中的数据无法保证其真实性,部分结合了暗网、深网数据的方法虽然能够得到更优秀的结果,但数据覆盖面较窄;其次,在处理与漏洞相关的文本时,以往的文本处理技术仅表示出了单词层面的统计特征,不能捕捉它们的上下文,也难以识别专业术语和派生词的含义。另外,真实环境下的数据集正负样本比例通常都是极不平衡的,这对模型的预测准确率会造成一定影响,其中,EPSS(Exploit Prediction Scoring System,漏洞利用预测评分系统)是目前该领域中一个具有代表性的平台,但也依然存在较多问题:漏洞数据更新不及时、漏洞描述信息不全、预测模型选择的特征较为老旧,因此导致了目前实际应用效果较差,无法解决日益突出的漏洞管理与修复难的问题。

技术实现思路

[0005]本专利技术的目的在于克服现有技术的不足,提供一种面向CVE的漏洞可利用性预测方法。
[0006]本专利技术的目的是通过以下技术方案来实现的:一种面向CVE的漏洞可利用性预测方法,包括:
[0007]S100.采集漏洞数据,所述漏洞数据包括结构化漏洞数据、非结构化漏洞文本数据和非结构化漏洞利用代码数据;
[0008]S200.基于所述非结构化漏洞文本数据和非结构化漏洞利用代码数据训练fastText文本嵌入模型,并利用所述fastText文本嵌入模型提取每个漏洞的漏洞文本特征;
[0009]S300.基于所述非结构化漏洞利用代码数据提取基于抽象语法树节点的漏洞利用代码特征;
[0010]S400.对所述结构化漏洞数据进行编码或归一化处理,并提取每个漏洞的漏洞固有特征;
[0011]S500.基于所述漏洞文本特征、漏洞利用代码特征和所述漏洞固有特征构建LightGBM预测模型,并利用LightGBM预测模型进行漏洞可利用性的预测。
[0012]优选的,所述S100包括以下步骤:
[0013]S110.确定采集漏洞数据的目标网站;
[0014]S120.利用网络爬虫访问所述目标网站中的漏洞信息网页,并采集漏洞数据;
[0015]S130.将漏洞数据以漏洞编号为索引的结构化形式存储在数据库中。
[0016]优选的,所述S200包括以下步骤:
[0017]S210.对所述非结构化漏洞文本数据和非结构化漏洞利用代码数据进行预处理得到第一数据;
[0018]S220.基于第一数据建立fastText词向量生成模型;
[0019]S230.利用fastText词向量生成模型对所述第一数据进行无监督训练得到所述第一数据中的每个单词的词向量;
[0020]S240.基于所述第一数据中每个单词的词向量生成句向量。
[0021]优选的,对所述非结构化漏洞文本数据和非结构化漏洞利用代码数据进行预处理包括:
[0022]S211.利用正则表达式提取非结构化漏洞利用代码数据中的注释文本,并将所述注释文本合并至非结构化漏洞文本数据;
[0023]S212.去除所述非结构化漏洞数据中的非ASCII字符、标点符号以及停用词;
[0024]S213.将所述非结构化漏洞数据中的所有大写字母替换为小写字母,并进行词形还原操作得到第一数据。
[0025]优选的,基于第一数据建立fastText词向量生成模型,包括:
[0026]S221.设置多项第一模型超参数,多项第一模型超参数包括训练模式、生成的词向量维数、单词最小出现频数、学习率和上下文窗口大小;
[0027]S222.分别为每项第一模型超参数设置对应的搜索范围;
[0028]S223.遍历每项第一模型超参数的搜索范围,生成多种第一超参数组合;
[0029]S224.分别基于每种第一超参数组合训练fastText词向量生成模型;
[0030]S225.分别计算每种第一超参数组合下fastText词向量生成模型的模型评分;
[0031]S226.选择模型评分最高的第一超参数组合对应的fastText词向量生成模型作为最终的fastText词向量生成模型。
[0032]优选的,所述S300包括以下步骤:
[0033]S310.根据非结构化漏洞利用代码数据中漏洞利用代码的语言类型选择对应的工具来生成漏洞利用代码的抽象语法树;
[0034]S320.计算所述抽象语法树的圈复杂度;
[0035]S330.对所述抽象语法树进行递归遍历,统计第二数据,所述第二数据包括节点的类型数量、叶子节点数量、内部节点数量、调用外部函数库次数、外部函数数量、用户定义函数数量、用户定义函数调用次数、运算符的类型数量、控制语句类型的节点数量;
[0036]S340.对每一种节点类型,统计第三数据,所述第三数据包括该类型节点的所有子树的最大深度以及子树的控制语句数量;
[0037]S350.合并第二数据和第三数据作为漏洞利用代码特征。
[0038]优选的,所述S400中对所述结构化漏洞数据进行编码或归一化处理,包括:
[0039]使用One

hot编码将类别型数据转化为向量;
[0040]使用缩放至[0,1]区间的归一化处理将数值型数据转化为向量;
[0041]使用二进制向量编码将二进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向CVE的漏洞可利用性预测方法,其特征在于,包括:S100.采集漏洞数据,所述漏洞数据包括结构化漏洞数据、非结构化漏洞文本数据和非结构化漏洞利用代码数据;S200.基于所述非结构化漏洞文本数据和非结构化漏洞利用代码数据训练fastText文本嵌入模型,并利用所述fastText文本嵌入模型提取每个漏洞的漏洞文本特征;S300.基于所述非结构化漏洞利用代码数据提取基于抽象语法树节点的漏洞利用代码特征;S400.对所述结构化漏洞数据进行编码或归一化处理,并提取每个漏洞的漏洞固有特征;S500.基于所述漏洞文本特征、漏洞利用代码特征和漏洞固有特征构建LightGBM预测模型,并利用LightGBM预测模型进行漏洞可利用性的预测。2.根据权利要求1所述的一种面向CVE的漏洞可利用性预测方法,其特征在于,所述S100包括以下步骤:S110.确定采集漏洞数据的目标网站;S120.利用网络爬虫访问所述目标网站中的漏洞信息网页,并采集漏洞数据;S130.将漏洞数据以漏洞编号为索引的结构化形式存储在数据库中。3.根据权利要求1所述的一种面向CVE的漏洞可利用性预测方法,其特征在于,所述S200包括以下步骤:S210.对所述非结构化漏洞文本数据和非结构化漏洞利用代码数据进行预处理得到第一数据;S220.基于第一数据建立fastText词向量生成模型;S230.利用fastText词向量生成模型对所述第一数据进行无监督训练得到所述第一数据中的每个单词的词向量;S240.基于所述第一数据中每个单词的词向量生成句向量。4.根据权利要求3所述的一种面向CVE的漏洞可利用性预测方法,其特征在于,对所述非结构化漏洞文本数据和非结构化漏洞利用代码数据进行预处理包括:S211.利用正则表达式提取非结构化漏洞利用代码数据中的注释文本,并将所述注释文本合并至非结构化漏洞文本数据;S212.去除所述非结构化漏洞文本数据中的非ASCII字符、标点符号以及停用词;S213.将所述非结构化漏洞文本数据中的所有大写字母替换为小写字母,并进行词形还原操作得到第一数据。5.根据权利要求3所述的一种面向CVE的漏洞可利用性预测方法,其特征在于,基于第一数据据建立fastText词向量生成模型,包括:S221.设置多项第一模型超参数,多项第一模型超参数包括训练模式、生成的词向量维数、单词最小出现频数、学习率和上下文窗口大小;S222.分别为每项第一模型超参数设置对应的搜索范围;S223.遍历每项第一模型超参数的搜索范围,生成多种第一超参数组合;S224.分别基于每种第一超参数组合训练fastText词向量生成模型;S225.分别计算每种第一超参数组合下fastText词向量生成模型的模型评分;
S226.选择模型评分最高的第一超参数组合对应的fastText词向量生成模型作为最终的fastText词向量生成模型。6.根据权利要求1所述的一种面向CVE的漏洞可利用性预测方法,其特征在于,所述S300包括以下步骤:S310.根据非结构化漏洞利用代码数据中漏洞利用代码的语言类型选择对应的工具来生成漏洞利用代码的抽象语法树;S320.计算所述抽象语法树的圈复杂度;S330.对所述抽象语法树进行递归遍历,统计第二数据,所述第二数据包括节点的类型数量、叶子节点数量、内部节点数量、调用外部函数库次数、外部函数数量、用户定义函数数量、用户定义函数调用次数、运算符的类型数量、控制语句类型的节点数量;S340.对每一种节点类型,统计第三数据,所述第三数据包括该类型节点的所有子树的最大深度以及子树的控制语句数量;S350.合并第二数据和第三数据作为漏洞利用代码特征。7.根据权利要求1所述的一种面向CVE的漏洞可利用性预测方法,其特征在于,所述S400中对所述结构化漏洞数据进行编码或归一化处理,包括:使用One

hot编码将类别型数据转化为向量;使用缩放至[0,1]区间的归一化处理将数值型数据转化为向量;使用二进制向量编码将二进制数据转化为向量。8.根据权利要求1所述的一种面向CVE的漏洞可利用性预测方法,其特征在于,所述S500包括以下步骤:S510.分别将每个漏洞的漏洞文本特征、漏洞利用代码特征和漏洞固有特征进行向量拼接得到融合特征向量;S520.基于融合特征向量生成训练样本集,所述训练样本集的格式为D={(x1,y1),(x2,y2),

(x
n
,y
n
)},x代表融合特征向量,y代表正负性标识;S530.基于所述训练样本集构建LightGBM预测模型;S540.将LightGBM预测模型对待预测的漏洞样本输出的预测分数作为漏洞可利用性的量化指标。9.根据权利要求8所述的一种面向CVE的漏洞可利用性预测方法,其特征在于,所述训练样本的正负性判断方法为:判断所述训练样本是否曾经被利用以及是否正在被利用,若所述训练样本曾经被利用或者正在被利用,则将该训练样本划分为正样本,否则将该训练样本划分为负样本。10.根据权利要求8所述的一种面向CVE的漏洞可利用性预测方法,其特征...

【专利技术属性】
技术研发人员:黄诚李凌自曾雨潼
申请(专利权)人:四川大学
类型:发明
国别省市:

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

1