1999–2018年安全漏洞数据集

2019-06-24 16:19李瑞科刘元廖雷吴晨思张玉清
关键词:安全漏洞数据源漏洞

李瑞科,刘元,廖雷,吴晨思,张玉清,1*

1. 西安电子科技大学网络与信息安全学院,西安 710071

2. 中国科学院大学国家计算机网络入侵防范中心,北京 101408

数据库(集)基本信息简介

引 言

安全漏洞(Vulnerability)是信息系统在设计、实现或部署等过程中产生的缺陷。这些缺陷以不同形式存在于信息系统的各个层次和环节之中,一旦被恶意主体所利用和进行攻击,就会对信息系统的安全造成损害,从而影响构建于信息系统之上的正常服务的运行,危害信息系统的安全,导致用户隐私信息被泄露,进而对用户、社会以及国家等造成重大损失[1]。

近年来,随着网络系统大规模化和复杂性的增加,安全漏洞数量大幅增加,增多了恶意网络用户攻击网络设备的机会,同时也增大了用户使用网络时的安全风险。在减轻安全漏洞带来的危害的措施中,安全漏洞数据源已成为了重要的信息基础设施和保护网络安全的重要手段[2]。安全漏洞数据源包括漏洞库、安全论坛以及博客等,这些数据源一般会以网站的形式展示,便于用户浏览。通过在漏洞数据源上发布漏洞信息,能够及时、准确地将安全预警信息提供给存在漏洞的软件开发企业、广大用户、国家各部门及研究组织,从而可以有效降低安全事件发生的可能性。

由于各类漏洞数据源隶属不同组织或机构,使得不同漏洞平台的漏洞描述存在许多差异,不同的漏洞平台漏洞数据来源不同、关注的漏洞信息字段不同以及漏洞发布机制不同等,导致其漏洞描述格式不统一,漏洞数据也不能做到完备。本数据集通过采集整合多个国内外知名漏洞平台的漏洞数据,对数据进行交叉对比整合,尽可能得到更加完备的数据集,并统一漏洞描述信息。统计各个数据集中的漏洞总条目数、含有通用漏洞纰漏(Common Vulnerability and Exposures,CVE[3])标识的漏洞条目数以及不同漏洞类型对应的漏洞条目数,绘制漏洞数据近20年趋势图,得到更详细的数据集,对漏洞数据质量进行提升,以提高漏洞数据的利用价值,减少因漏洞造成的损失。

1 数据采集和处理方法

1.1 数据源

安全漏洞数据源包括不同的漏洞库、安全论坛以及博客。这些数据源保存了各类安全漏洞的基本信息、特征和解决方案等属性,是信息安全基础设施中重要的一环。漏洞数据一般会以网站的形式展示,便于用户浏览、及时发现问题并做出相应的防范措施。为保证数据的高可靠性和高质量,本次研究的数据源主要有国内外知名漏洞库网站和漏洞论坛两部分,包括美国国家漏洞NVD[4]、丹麦漏洞库Secunia[5]、赛门铁克的漏洞库SecurityFocus[6]、国家信息安全漏洞共享平台CNVD[7]、国家信息安全漏洞库CNNVD[8]以及绿盟科技中文安全漏洞库NSFocus[9]6个安全漏洞平台(表1)。其中NVD、Secunia、SecurityFocus为英文漏洞平台,漏洞描述为英文形式;CNVD、CNNVD、NSFocus为中文漏洞平台,漏洞描述为中文形式。

表1 安全漏洞平台

所属组织 漏洞库名称 漏洞库简称国家信息技术安全研究中心和国家互联网应急中心 国家信息安全漏洞共享平台 CNVD中国信息安全测评中心 中国国家漏洞库 CNNVD绿盟科技 绿盟科技中文安全漏洞库 NSFocus

美国国家漏洞库 NVD由美国国家标准与技术委员会中的计算机安全资源中心创建,由美国国土安全部的国家网络安全司提供赞助。NVD是漏洞库领域的集大成者,拥有高质量的漏洞数据资源,数据资源丰富、漏洞描述全面详细,是漏洞发布和安全预警的重要平台。本数据集中含CVE编号的漏洞信息均可从NVD平台获取,但从NVD漏洞平台采集到的漏洞数据并不完备,对于没有CVE编号的漏洞或者中文描述类型的漏洞数据会遗漏,因此还需要从其他知名漏洞平台采集漏洞信息作为补充和完善。

1.2 数据采集与处理

1.2.1 数据采集处理整体框架

数据采集处理整体框架如图1所示,分为4个模块:漏洞数据源模块、漏洞数据采集模块、漏洞数据处理模块和漏洞数据存储模块。

图1 数据采集处理整体框架

框架的整体流程为:由6个漏洞平台提供1999–2018年的安全漏洞原始数据,通过数据采集引擎获取到安全漏洞的原始信息,经过漏洞处理模块,完成漏洞字段提取和格式化等操作,最终将采集到的单条漏洞数据保存在MySql数据库中形成安全漏洞数据集。

1.2.2 数据采集方法

安全漏洞数据采集部分,主要基于 Scrapy框架[10],整体架构如图 2所示。Scrapy是一个基于Python的快速、高层次的提取网站结构性数据而编写的应用框架。可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中,也可以应用在获取接口所返回的数据。Scrapy框架在安全漏洞数据采集方面优势明显,可以很快捷地针对不同的漏洞平台定制不同的漏洞匹配规则,即定制选择器进行漏洞信息的多通道异步请求、分布式采集。

图2 Scrapy整体架构[10]

1.2.3 数据处理方法

漏洞平台的漏洞数据大都为非结构化的数据格式,来源多样,不同数据平台的数据表现形式各异,导致直接下载的数据难以理解和复用。安全漏洞数据处理部分完成数据字段的切片和格式化等操作。其中切片操作主要是在采集漏洞平台数据时,将整个页面信息根据页面分布以及表单结构进行切片,得到关键的信息片段,以便对信息片段进行数据字段提取。由于原始页面数据字段描述形式不统一或部分页面信息片段存在缺失,格式化操作完成数据字段标准化,并按照统一格式输出。

根据Scrapy框架采集的数据处理后得到的数据字段有漏洞名称、CVE编号、发布时间、更新时间、危害等级、分类、受影响厂商、参考链接等[11-13]。如图3所示,显示了6个漏洞平台的字段数量,其中CNVD漏洞平台所含字段最多为15个、所含字段最少的为只含有9个字段的CNNVD数据平台。

图3 漏洞字段数量

1.2.4 数据存储方法

漏洞数据存储部分,保存数据集有同步操作和异步操作两种方法。数据量少的时候采用同步操作;数据量大时采用异步操作。采集数据的速度大于数据库插入的速度,当数据量大时就会出现堵塞,就需要采用异步保存。安全漏洞数据集采用异步存储模式将格式化后的漏洞信息字段插入MySql数据库中保存,整合,可视化。

2 数据样本描述

图4为1999–2018年安全漏洞数据的统计图,针对每个漏洞平台分别采集了其近20年的漏洞报告,统计漏洞数据条目,构建安全漏洞数据集。

图4 1999–2018安全漏洞数量

图5展示了所采集的NVD安全漏洞数据集的历年漏洞记录数量,漏洞的数量总体上呈现逐年增加的趋势,而且近两年来,漏洞数量剧增。2017年的漏洞记录数超过了2016年全年漏洞记录数的2倍,2018年发现的漏洞数量在 2017年的基础上又有所增加。

图5 NVD历年安全漏洞数量统计

表2展示了NVD数据集中漏洞数据按照不同漏洞类型划分的情况,将漏洞类型划分为28个详细类别和综合类别Others。漏洞条目总数据量为166072条,漏洞数量最多的三种漏洞类型为:缓冲区错误(Buffer Errors)类型,17956条,比例为10.81%;跨站点脚本(Cross-Site Scripting XSS)类型,15488条,比例为9.33%和权限和访问控制(Permissions, Privileges, and Access Control)类型,10144条,比例为6.11%。

表2 不同漏洞类型漏洞数量

图6为NVD漏洞数据集根据类型划分取条目数量值排名前15的类型构成的饼状分布图。其中漏洞总数量为15种类型漏洞的数量和。通过统计图可以很直观地看出前5种漏洞类型漏洞数量之和占据了整个漏洞总数量一半以上。

图6 漏洞类型分布图

3 数据质量控制和评估

本数据从数据来源、数据采集和数据处理3个方面对数据质量进行控制和评价。

为保证安全漏洞数据集的质量和可信度,采集的原始数据均来自于国内外知名漏洞网站或论坛,由于其对数据进行严格检查、筛选、处理和发布,从而保证了原始数据的高质量和高可信度。

在数据采集阶段,为提高效率和避免手工采集错误,均采用程序自动采集加人工抽样验证的方法对数据进行完整性和正确性验证。采集过程中如果由于网络或服务器拥堵等原因导致少量漏洞数据条目未能一次性采集完成,则设置程序进行遍历采集,将未能采集到的漏洞链接暂存,以待后续再次遍历采集;若遍历完毕后仍未能采集到,则采用人工方法,手动采集。

数据处理阶段,由于不同漏洞库格式不统一,漏洞条目各异,很多存在特殊字符,导致格式化字段时,有些匹配代码并不能一次性完成所有格式化操作,产生数据差异,因此处理后再次采用人工对比检查,对数据的检查包括网络异常、程序错误导致数据段缺失等明显的问题以及数据格式、字段标准化命名、字段量纲、数据完整性等。单个数据条目的检查中,主要针对异常数据进行修正、剔除和重新采集。

4 数据价值

目前,由于各类漏洞数据源隶属不同组织和机构,其运营宗旨和运营方式均有所不同,使得不同漏洞平台存在许多差异。不同的漏洞平台漏洞数据来源不同、关注的漏洞信息字段不同以及漏洞发布机制不同等,导致其漏洞描述格式不统一,漏洞数据也不能做到完备。

漏洞数据保存了各类漏洞的基本信息、特征、解决方案等属性。本数据集通过采集整合上述国内外知名漏洞平台的漏洞数据,尽可能得到更加完备的数据集,并且统一漏洞描述格式。根据漏洞数据的各个属性,对数据集进行详细划分和数量统计,给出了描述更加清晰的漏洞条目。安全研究人员可以使用本数据集对不同漏洞平台的的漏洞信息进行差异性检测,判断不同漏洞平台对同一条安全漏洞的描述是否有误以及安全平台的漏洞描述是否全面。安全漏洞数据集在安全预警、应急响应和安全事件处理方面同样发挥着重要的作用。通过查看漏洞数据集中的漏洞信息,能够及时、准确地将安全预警信息提供给存在漏洞的软件开发企业、广大用户、国家各部门及研究组织,从而可以有效降低安全事件发生的可能性。

猜你喜欢
安全漏洞数据源漏洞
漏洞
刍议计算机软件中的安全漏洞检测技术
网络安全加固工作的分析与探讨
基于selenium的SQL注入漏洞检测方法
利用属性集相关性与源误差的多真值发现方法研究
试论安全漏洞检测技术在软件工程中的应用
智能设备安全漏洞知多少
Web 大数据系统数据源选择*
漏洞在哪儿
数据有增加 图表自适应