一种基于交叉验证的基线扫描漏洞去重方法、装置及设备与流程

文档序号:20488319发布日期:2020-04-21 21:50阅读:351来源:国知局
一种基于交叉验证的基线扫描漏洞去重方法、装置及设备与流程

本发明涉及网络安全技术领域,特别是涉及一种基于交叉验证的基线扫描漏洞去重方法、装置、设备以及计算机可读存储介质。



背景技术:

在当今信息化大潮中,网络安全对于每个企业或单位的业务发展起到了越来越关键的支撑作用。漏洞扫描技术是一类重要的网络安全技术。它和防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。通过对网络的扫描,网络管理员能了解网络的安全设置和运行的应用服务,及时发现安全漏洞,客观评估网络风险等级,并根据扫描的结果更正网络安全漏洞和系统中的错误设置,在黑客攻击前进行防范。安全扫描作为一种主动的防范措施,能有效避免黑客攻击行为,做到防患于未然。

市场上的漏洞扫描工具众多,在日常使用漏洞扫描过程中,经常会遇到多个不同厂商的漏扫设备对同一主机进行扫描时,扫描的漏洞结果会存在较大的差异,漏洞命名、等级划分、漏洞描述、解决方案等也各有各的标准,存在大量重复漏洞,给运维人员大大增加了重复的漏洞排查工作量。

目前漏洞去重主要以cve编号、cnnvd编号等代表特征为进行重复校验去重,或进行人工去重。但基线扫描漏洞相比于其他扫描类型漏洞,基线漏洞数量庞大,且缺乏cve编号、cnnvd编号等代表特征,给去重工作大大增加了难度。

综上所述可以看出,如何提高基线扫描漏洞去重的效率及准确度是目前有待解决的问题。



技术实现要素:

本发明的目的是提供一种基于交叉验证的基线扫描漏洞去重方法、装置、设备以及计算机可读存储介质,已解决现有技术中基线漏洞去重工作量大、效率低的问题。

为解决上述技术问题,本发明提供一种基于交叉验证的基线扫描漏洞去重方法,包括:获取k个厂商扫描器对目标主机的k份基线扫描报告,分别对每份基线扫描报告进行归一化解析,得到所述每份基线扫描报告中每个漏洞的漏洞字段数据;利用特征关键词提取算法分别对所述每份基线扫描报告的每个漏洞的漏洞字段数据进行特征提取,得到所述每份基线扫描报告中每个漏洞的漏洞特征向量;根据所述每份基线扫描报告中每个漏洞的漏洞特征向量,采用k折交叉验证算法对预先构建的漏洞去重模型进行训练,得到完成训练后的目标漏洞去重模型;将待去重基线扫描报告中每个漏洞的漏洞特征向量输入至所述目标漏洞去重模型,输出去重后的目标漏洞特征向量,并将所述目标漏洞特性向量转换为目标漏洞。

优选地,所述获取k个厂商扫描器对目标主机的k份基线扫描报告,分别对每份基线扫描报告进行归一化解析,得到所述每份基线扫描报告中每个漏洞的漏洞字段数据包括:

获取k份厂商扫描器对所述目标主机的k份基线扫描报告;

分别对每份基线扫描报告进行解析,得到所述每份基线扫描报告中每个漏洞的漏洞字段数据;其中,所述漏洞字段数据包括资产ip、漏洞等级、漏洞名称、检查分类、判断依据、漏洞描述及解决方案。

优选地,所述利用特征关键词提取算法分别对所述每份基线扫描报告的每个漏洞的漏洞字段数据进行特征提取,得到所述每份基线扫描报告中每个漏洞的漏洞特征向量包括:

分别删除当前基线扫描报告中当前漏洞的每个漏洞字段数据中指定的中文停止词;

计算去除中文停止词后的每个漏洞字段数据中每个词的词频;

对所述每个漏洞字段数据中的重复词进行合并与删除;

提取所述每个漏洞字段数据中的重复词及重复词的词频,得到所述当前基线扫描报告的当前漏洞的漏洞特征向量。

优选地,所述计算去除中文停止词后的每个漏洞字段数据中每个词的词频包括:

计算去除中文停止词后的每个漏洞字段数据中每个词的逆文档频率值作为每个词的词频。

优选地,所述根据所述每份基线扫描报告中每个漏洞的漏洞特征向量,采用k折交叉验证算法对预先构建的漏洞去重模型进行训练,得到完成训练后的目标漏洞去重模型包括:

s1:在所述k份基线扫描报告中选取两份基线扫描报告对应的漏洞特征向量作为当前测试样本,将剩余k-2份基线扫描报告对应的漏洞特征向量作为当前训练样本,其中,所述当前测试样本与上一测试样本中至少存在一份不同的基线扫描报告;

s2:根据所述当前训练样本中每个漏洞的漏洞特征向量与其他漏洞的漏洞特征向量的相似度,计算所述当前训练样本中每个漏洞与其他漏洞的相似度;

s3:基于所述当前训练样本中每个漏洞与其他漏洞的相似度训练当前漏洞去重模型,利用所述当前测试样本对训练后的当前漏洞去重模型进行测试;

s4:循环k*(k-1)/2次s1至s3,得到所述目标漏洞去重模型。

优选地,所述根据所述训练样本中每个漏洞的漏洞特征向量与其他漏洞的漏洞特征向量的相似度,计算所述训练样本中每个漏洞与其他漏洞的相似度包括:

利用欧式距离算法计算所述当前训练样本中每个漏洞的漏洞特征向量与其他漏洞的漏洞特征向量之间的特征向量相似度;

根据所述特征向量相似度,计算所述当前训练样本中每个漏洞的漏洞字段数据与其他漏洞的漏洞字段数据之间的字段相似度;

根据所述字段相似度,计算所述当前训练样本中每个漏洞与其他漏洞的相似度。

本发明还提供了一种基于交叉验证的基线扫描漏洞去重装置,包括:

归一化解析模块,用于获取k个厂商扫描器对目标主机的k份基线扫描报告,分别对每份基线扫描报告进行归一化解析,得到所述每份基线扫描报告中每个漏洞的漏洞字段数据;

特征提取模块,用于利用特征关键词提取算法分别对所述每份基线扫描报告的每个漏洞的漏洞字段数据进行特征提取,得到所述每份基线扫描报告中每个漏洞的漏洞特征向量;

训练模块,用于根据所述每份基线扫描报告中每个漏洞的漏洞特征向量,采用k折交叉验证算法对预先构建的漏洞去重模型进行训练,得到完成训练后的目标漏洞去重模型;

输出模块,用于将待去重基线扫描报告中每个漏洞的漏洞特征向量输入至所述目标漏洞去重模型,输出去重后的目标漏洞特征向量,并将所述目标漏洞特性向量转换为目标漏洞。

优选地,所述归一化解析模块包括:

获取单元,用于获取k份厂商扫描器对所述目标主机的k份基线扫描报告;

解析单元,用于分别对每份基线扫描报告进行解析,得到所述每份基线扫描报告中每个漏洞的漏洞字段数据;其中,所述漏洞字段数据包括资产ip、漏洞等级、漏洞名称、检查分类、判断依据、漏洞描述及解决方案。

本发明还提供了一种基于交叉验证的基线扫描漏洞去重设备,包括:

存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种基于交叉验证的基线扫描漏洞去重方法的步骤。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于交叉验证的基线扫描漏洞去重方法的步骤。

本发明所提供的基于交叉验证的基线扫描漏洞去重方法,获取k个厂商扫描器对同一主机的k份基线扫描报告后,对所述k份基线扫描报告的进行归一化解析,得到每份基线扫描报告中每个漏洞的漏洞字段数据。利用特征关键词提取算法提取所述每幅基线扫描报告中每个漏洞的漏洞字段数据的特征向量,得到所述每份基线扫描报告中每个漏洞的漏洞特征向量。利用所述k份基线扫描报告中每个漏洞的漏洞特征向量,采用k折交叉验证算法对预先构建的漏洞去重模型进行训练,得到完成训练后的目标漏洞去重模型。将待去重基线扫描报告中每个漏洞的漏洞特征向量输入至所述目标漏洞去重模型,输出去重后的目标漏洞特征向量,并将所述目标漏洞特性向量转换为目标漏洞。本发明根据特征关键词技术提取基线扫描报告中的重复词汇及词频率作为漏洞特征向量;结合漏洞特征向量,采用交叉验证构建去重模型,交叉验证重复运用子样本进行训练和验证,可以提高去重模型的泛化性,进而提高基线漏洞去重的效率及准确度。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的基于交叉验证的基线扫描漏洞去重方法的第一种具体实施例的流程图;

图2为本发明所提供的基于交叉验证的基线扫描漏洞去重方法的第二种具体实施例的流程图;

图3为本发明实施例提供的一种基于交叉验证的基线扫描漏洞去重装置的结构框图。

具体实施方式

本发明的核心是提供一种基于交叉验证的基线扫描漏洞去重方法、装置、设备以及计算机可读存储介质,有效提高了基线扫描漏洞的去重效率及准确率。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的基于交叉验证的基线扫描漏洞去重方法的第一种具体实施例的流程图;具体操作步骤如下:

步骤s101:获取k个厂商扫描器对目标主机的k份基线扫描报告,分别对每份基线扫描报告进行归一化解析,得到所述每份基线扫描报告中每个漏洞的漏洞字段数据;

在本实施例中,所述每个漏洞的漏洞字段数据包括资产ip、漏洞等级、漏洞名称、检查分类、判断依据、漏洞描述及解决方案等。

步骤s102:利用特征关键词提取算法分别对所述每份基线扫描报告的每个漏洞的漏洞字段数据进行特征提取,得到所述每份基线扫描报告中每个漏洞的漏洞特征向量;

以提取某份基线扫描报告中某个漏洞的漏洞特征向量为例,说明提取所述每份基线扫描报告中每个漏洞的漏洞特征向量的具体步骤:删除当前基线扫描报告中当前漏洞的每个漏洞字段数据中指定的中文停止词;计算去除中文停止词后的每个漏洞字段数据中每个词的词频;对所述每个漏洞字段数据中的重复词进行合并与删除;提取所述每个漏洞字段数据中的重复词及重复词的词频,得到所述当前基线扫描报告的当前漏洞的漏洞特征向量。

在本实施例中,可以计算去除中文停止词后的每个漏洞字段数据中每个词的逆文档频率值作为每个词的词频。

步骤s103:根据所述每份基线扫描报告中每个漏洞的漏洞特征向量,采用k折交叉验证算法对预先构建的漏洞去重模型进行训练,得到完成训练后的目标漏洞去重模型;

步骤s104:将待去重基线扫描报告中每个漏洞的漏洞特征向量输入至所述目标漏洞去重模型,输出去重后的目标漏洞特征向量,并将所述目标漏洞特性向量转换为目标漏洞。

本实施例所提供的基线扫描漏洞去重方法,基于特征关键词提取技术对漏洞字段数据进行数据特征提取,不依赖cve编号、cnnvd编号等代表特征,且基于交叉验证提升去重模型的泛化性和拟合度,提高了基线漏洞去重的准确度。

基于上述实施例,在本实施例中,获取所述k份基线扫描报告中每个漏洞的漏洞特征向量后,将所述k份基线扫描报告对应的漏洞特征向量划分为训练样本与测试样本,通过欧式距离算法计算所述训练样本中每个漏洞的漏洞特征向量与其他漏洞的漏洞特征向量的相似度,从而确定所述训练样本中每个漏洞与其他漏洞的相似度;基于所述训练样本所中每个漏洞与其他漏洞的相似度,采用k折交叉验证算法训练去重模型。

步骤s201:获取k个厂商扫描器对目标主机的k份基线扫描报告,分别对每份基线扫描报告进行归一化解析,得到所述每份基线扫描报告中每个漏洞的漏洞字段数据;

在本实施例中,可以设定k的取值大于等于5;k的取值越大,完成训练后的所述目标漏洞去重模型的准确率越高。

步骤s202:利用特征关键词提取算法分别对所述每份基线扫描报告的每个漏洞的漏洞字段数据进行特征提取,得到所述每份基线扫描报告中每个漏洞的漏洞特征向量;

步骤s203:在所述k份基线扫描报告中选取两份基线扫描报告对应的漏洞特征向量作为当前测试样本,将剩余k-2份基线扫描报告对应的漏洞特征向量作为当前训练样本,其中,所述当前测试样本与上一测试样本中至少存在一份不同的基线扫描报告;

步骤s204:利用欧式距离算法计算所述当前训练样本中每个漏洞的漏洞特征向量与其他漏洞的漏洞特征向量之间的特征向量相似度;

步骤s205:根据所述特征向量相似度,计算所述当前训练样本中每个漏洞的漏洞字段数据与其他漏洞的漏洞字段数据之间的字段相似度;

步骤s206:根据所述字段相似度,计算所述当前训练样本中每个漏洞与其他漏洞的相似度;

步骤s207:基于所述当前训练样本中每个漏洞与其他漏洞的相似度训练当前漏洞去重模型,利用所述当前测试样本对训练后的当前漏洞去重模型进行测试;

利用所述当前测试样本对训练后的当前漏洞去重模型进行测试后,还可以计算并保存所述当前漏洞去重模型的评估指标,即去重率。

步骤s208:循环k*(k-1)/2次s203至s207,得到所述目标漏洞去重模型;

需要说明的是,在本实施例中对漏洞去重模型进行k*(k-1)/2次优化,以便任意不同的两份基线扫描报告的组合都有一次机会作为测试样本,其余基线扫描报告的组合都有机会作为训练样本。

对漏洞去重模型进行k*(k-1)/2次优化后,得到k*(k-1)/2个去重率,计算所述k*(k-1)/2个去重率的平均值,作为所述目标漏洞去重模型的评价指标。

步骤s209:对待去重基线扫描报告进行归一化解析后,利用特征关键词提取算法对获取到的所述待去重基线扫描报告中每个漏洞的漏洞字段数据进行特征提取,得到所述待去重基线扫描报告中每个漏洞的漏洞特征向量;

步骤s210:将所述待去重基线扫描报告中每个漏洞的漏洞特征向量输入至所述目标漏洞去重模型,输出去重后的目标漏洞特征向量,并将所述目标漏洞特性向量转换为目标漏洞。

k折交叉验证算法将初始采样分割成k个子样本,一个单独的子样本被保留作为验证模型的数据,其他k-1个样本用来训练;交叉验证重复k次,每个子样本验证一次,平均k次的结果或者使用其它结合方式,最终得到一个单一估测。该算法重复运用子样本进行训练和验证,每次的结果可以验证一次,大大提升模型泛化性。本实施例根据特征关键词技术提取所述k份基线扫描报告中每个漏洞的重复词汇及词频率作为漏洞特征向量;基于欧式距离相似度算法计算漏洞间的相似度;基于k折交叉验证算法,在所述k份基线扫描报告中选取两份基线扫描报告作为测试集,剩余k-2份基线扫描报告作为训练集,对所述漏洞去重样本进行训练和验证,有效提高去重模型的泛化性,进而提高了基线漏洞去重的准确度。

请参考图3,图3为本发明实施例提供的一种基于交叉验证的基线扫描漏洞去重装置的结构框图;具体装置可以包括:

归一化解析模块100,用于获取k个厂商扫描器对目标主机的k份基线扫描报告,分别对每份基线扫描报告进行归一化解析,得到所述每份基线扫描报告中每个漏洞的漏洞字段数据;

特征提取模块200,用于利用特征关键词提取算法分别对所述每份基线扫描报告的每个漏洞的漏洞字段数据进行特征提取,得到所述每份基线扫描报告中每个漏洞的漏洞特征向量;

训练模块300,用于根据所述每份基线扫描报告中每个漏洞的漏洞特征向量,采用k折交叉验证算法对预先构建的漏洞去重模型进行训练,得到完成训练后的目标漏洞去重模型;

输出模块400,用于将待去重基线扫描报告中每个漏洞的漏洞特征向量输入至所述目标漏洞去重模型,输出去重后的目标漏洞特征向量,并将所述目标漏洞特性向量转换为目标漏洞。

本实施例的基于交叉验证的基线扫描漏洞去重装置用于实现前述的基于交叉验证的基线扫描漏洞去重方法,因此基于交叉验证的基线扫描漏洞去重装置中的具体实施方式可见前文中的基于交叉验证的基线扫描漏洞去重方法的实施例部分,例如,归一化解析模块100,特征提取模块200,训练模块300,输出模块400,分别用于实现上述基于交叉验证的基线扫描漏洞去重方法中步骤s101,s102,s103和s104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明具体实施例还提供了一种基于交叉验证的基线扫描漏洞去重设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种基于交叉验证的基线扫描漏洞去重方法的步骤。

本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于交叉验证的基线扫描漏洞去重方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的基于交叉验证的基线扫描漏洞去重方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1