1999–2018年安全漏洞数据集 中华文库
1999–2018年安全漏洞数据集 作者:李瑞科 刘元 廖雷 吴晨思 张玉清 2019年12月30日 |
|
摘要&关键词
摘要:安全漏洞(Vulnerability)是信息系统在设计、实现或部署等过程中产生的缺陷。这些缺陷一旦被恶意主体所利用和进行攻击,就会对信息系统的安全造成损害,进而对用户、社会以及国家等造成重大损失。本研究通过程序自动化和人工采集结合的方法采集国内外知名漏洞平台1999–2018年间的安全漏洞数据,对采集的近20年的漏洞数据进行切片和格式化操作,保证数据可读性和一致性,从而构建完备的安全漏洞数据集。根据漏洞数据所属漏洞平台,将本数据集划分为来源不同的数据集。基于漏洞数据属性,统计各个数据集中的漏洞总条目数,统计数据集中含有通用漏洞纰漏(CVE)标识的漏洞条目数以及不同漏洞类型对应的漏洞条目数。本数据集在科学研究、安全预警和安全事件处理方面发挥着重要的作用。研究人员可以使用本数据集进行相应的安全科学研究;软件开发者通过查询本数据集,能够及时发现自身软件存在的漏洞。
关键词:安全漏洞;漏洞数据集;数据采集;漏洞平台
Abstract & Keywords
Abstract: Vulnerability is a defect in the design, implementation, or deployment of information systems. Once these defects are exploited or attacked by malicious entities, they will cause damage to the security of the information system, resulting in heavy losses to users, society, and the state. This study collects the data of vulnerability of popular vulnerability platforms from 1999 to 2018 through the combination of program automation and manual acquisition. The collection of nearly 20 years of data of vulnerability is sliced and formatted to ensure data readability and consistency, thus building a complete dataset of vulnerability. According to the vulnerability platform to which the vulnerability data belongs, the dataset is divided into several parts with different sources. Based on the vulnerability data attribute, the total number of entries in the dataset containing the vulnerability is counted, including the number of vulnerability entries identified by the CVE and the number of vulnerability entries corresponding to different vulnerability types. The dataset plays an essential role in scientific research, security early warning, and security incident handling. Researchers can use this dataset to conduct corresponding security research; software developers can find out the vulnerabilities in their software by querying this dataset.
Keywords: vulnerability; vulnerability dataset; data collection; vulnerability platform
数据库(集)基本信息简介
数据库(集)名称 | 1999–2018年安全漏洞数据集 |
数据作者 | 李瑞科、刘元、廖雷、吴晨思、张玉清 |
数据通信作者 | 张玉清(zhangyq@ucas.ac.cn) |
数据时间范围 | 1999–2018年 |
地理区域 | 世界各国 |
数据量 | 114 MB |
数据格式 | *.xlsx |
数据服务系统网址 | http://www.sciencedb.cn/dataSet/handle/791 |
基金项目 | 中国科学院信息化专项(XXH13505-03-207) |
数据库(集)组成 | 本数据集是对NVD、Secunia、SecurityFocus、CNVD、CNND、NSFocus漏洞平台的数据进行采集和整理而成。数据集共包括6个数据文件,分别为:NVD1.zip, Secunia2.zip、SecurityFocus3.zip、CNVD4.zip、CNND5.zip、NSFocus6.zip。其中NVD1.zip为NVD安全漏洞数据集,Secunia2.zip为Secunia安全漏洞数据集,SecurityFocus3.zip为SecurityFocus安全漏洞数据集,CNVD4.zip为CNVD安全漏洞数据集,CNNVD5.zip为CNNVD安全漏洞数据集,NSFocus6.zip为NSFocus安全漏洞数据集。 |
Dataset Profile
Title | A dataset of vulnerability during 1999–2018 |
Data corresponding author | Zhang yuqing(zhangyq@ucas.ac.cn) |
Data authors | Li Ruike, Liu Yuan, Liao Lei, Wu Chensi, Zhang Yuqing |
Time range | 1999–2018 |
Geographical scope | Worldwide |
Data volume | 117 MB |
Data format | *.xlsx |
Data service system | <http://www.sciencedb.cn/dataSet/handle/791> |
Source of funding | Informatization project of the Chinese Academy of Sciences: Engineering of Scientific big data (XXH13505-03-207) |
Dataset composition | The dataset is collected and organized for data from NVD, Secunia, SecurityFocus, CNVD, CNND, and NSFocus vulnerability platforms. The data set includes a total of six data files: NVD1.zip, Secunia2.zip, SecurityFocus3.zip, CNVD4.zip, CNND5.zip, NSFocus6.zip. Among them, NVD1.zip is the dataset of NVD vulnerability platform; Secunia2.zip is the dataset of Secunia vulnerability platform; SecurityFocus3.zip is the dataset of SecurityFocus vulnerability platform; CNVD4.zip is the dataset of CNVD vulnerability platform, CNNVD5.zip is the dataset of CNNVD vulnerability platform, NSFocus6.zip is the dataset of NSFocus vulnerability platform. |
引 言
安全漏洞(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 安全漏洞平台
所属组织 | 漏洞库名称 | 漏洞库简称 |
NIST | National Vulnerability Database | NVD |
Flexera Software | Secunia | Secunia |
SecutiryFocus | SecutiryFocus | SecFocus |
国家信息技术安全研究中心和国家互联网应急中心 | 国家信息安全漏洞共享平台 | 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][12][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 不同漏洞类型漏洞数量
序号 | 漏洞类型 | 数量 | 比例 |
1 | 验证问题 | 2097 | 1.26% |
2 | 缓冲区错误 | 17956 | 10.81% |
3 | 代码注入 | 3439 | 2.07% |
4 | 命令注入 | 1151 | 0.69% |
5 | 凭证管理 | 1600 | 0.96% |
6 | 跨站请求伪造 | 2993 | 1.80% |
7 | 跨站点脚本 | 15488 | 9.33% |
8 | 加密问题 | 3972 | 2.39% |
9 | 数据处理 | 612 | 0.37% |
10 | 访问控制不当 | 5768 | 3.47% |
11 | 外部实体参考不正确 | 594 | 0.36% |
12 | 信息泄露 | 9212 | 5.55% |
13 | 输入验证 | 10118 | 6.09% |
14 | 信息不足 | 8733 | 5.26% |
15 | 整数溢出或环绕 | 1854 | 1.12% |
16 | 链接问题 | 742 | 0.45% |
17 | 空指针解除引用 | 1414 | 0.85% |
18 | 数字错误 | 1797 | 1.08% |
19 | 越界读取 | 2283 | 1.37% |
20 | 越界写入 | 1001 | 0.60% |
21 | 路径遍历 | 4010 | 2.41% |
22 | 权限和访问控制 | 10144 | 6.11% |
23 | 条件错误 | 907 | 0.55% |
24 | 资源管理错误 | 4992 | 3.01% |
25 | 安全功能 | 1314 | 0.79% |
26 | SQL注入 | 7418 | 4.47% |
27 | 资源枯竭 | 685 | 0.41% |
28 | 使用错误 | 1826 | 1.10% |
29 | 其他 | 41435 | 24.95% |
图6为NVD漏洞数据集根据类型划分取条目数量值排名前15的类型构成的饼状分布图。其中漏洞总数量为15种类型漏洞的数量和。通过统计图可以很直观地看出前5种漏洞类型漏洞数量之和占据了整个漏洞总数量一半以上。
图6 漏洞类型分布图
3 数据质量控制和评估
本数据从数据来源、数据采集和数据处理3个方面对数据质量进行控制和评价。
为保证安全漏洞数据集的质量和可信度,采集的原始数据均来自于国内外知名漏洞网站或论坛,由于其对数据进行严格检查、筛选、处理和发布,从而保证了原始数据的高质量和高可信度。
在数据采集阶段,为提高效率和避免手工采集错误,均采用程序自动采集加人工抽样验证的方法对数据进行完整性和正确性验证。采集过程中如果由于网络或服务器拥堵等原因导致少量漏洞数据条目未能一次性采集完成,则设置程序进行遍历采集,将未能采集到的漏洞链接暂存,以待后续再次遍历采集;若遍历完毕后仍未能采集到,则采用人工方法,手动采集。
数据处理阶段,由于不同漏洞库格式不统一,漏洞条目各异,很多存在特殊字符,导致格式化字段时,有些匹配代码并不能一次性完成所有格式化操作,产生数据差异,因此处理后再次采用人工对比检查,对数据的检查包括网络异常、程序错误导致数据段缺失等明显的问题以及数据格式、字段标准化命名、字段量纲、数据完整性等。单个数据条目的检查中,主要针对异常数据进行修正、剔除和重新采集。
4 数据价值
目前,由于各类漏洞数据源隶属不同组织和机构,其运营宗旨和运营方式均有所不同,使得不同漏洞平台存在许多差异。不同的漏洞平台漏洞数据来源不同、关注的漏洞信息字段不同以及漏洞发布机制不同等,导致其漏洞描述格式不统一,漏洞数据也不能做到完备。
漏洞数据保存了各类漏洞的基本信息、特征、解决方案等属性。本数据集通过采集整合上述国内外知名漏洞平台的漏洞数据,尽可能得到更加完备的数据集,并且统一漏洞描述格式。根据漏洞数据的各个属性,对数据集进行详细划分和数量统计,给出了描述更加清晰的漏洞条目。安全研究人员可以使用本数据集对不同漏洞平台的的漏洞信息进行差异性检测,判断不同漏洞平台对同一条安全漏洞的描述是否有误以及安全平台的漏洞描述是否全面。安全漏洞数据集在安全预警、应急响应和安全事件处理方面同样发挥着重要的作用。通过查看漏洞数据集中的漏洞信息,能够及时、准确地将安全预警信息提供给存在漏洞的软件开发企业、广大用户、国家各部门及研究组织,从而可以有效降低安全事件发生的可能性。
参考文献
- ↑ ALLODI L, MASSACCI F. Comparing vulnerability severity and exploits using case-control studies[J]. ACM Transactions on Information and System Security (TISSEC), 2014.
- ↑ 张玉清, 吴舒平, 刘奇旭, 等. 国家安全漏洞库的设计与实现[J]. 通信学报, 2011, 32(6): 93-100.
- ↑ 通用漏洞披露CVE(Common Vulnerabilities and Exposures) [EB/OL]. [2019–06–16]. http://cve.mitre.org/ .
- ↑ 美国国家漏洞库NVD(National Vulnerability Database) [EB/OL]. [2019–06–16]. https://nvd.nist.gov/ .
- ↑ 丹麦安全公司Secunia[EB/OL]. [2019–06–16]. http://secunia.com/.
- ↑ SecurityFocus[EB/OL]. [2019–06–16]. http://www.securityfocus.com/vulnerabilities.
- ↑ 国家信息安全漏洞共享平台[EB/OL]. [2019–06–16]. http://www.cnvd.org.cn/.
- ↑ 中国国家漏洞库[EB/OL]. [2019–06–16]. http://www.cnnvd.org.cn/ .
- ↑ 绿盟科技漏洞库[EB/OL]. [2019–06–16]. http://www.nsfocus.net/index.php .
- ↑ Scrapy框架[EB/OL]. [2019–06–16]. https://www.cnblogs.com/xxtalhr/p/9170343.html.
- ↑ 温涛. 安全漏洞危害评估研究暨标准漏洞库的设计与实现[D]. 2016.
- ↑ 中华人民共和国国家标准. 安全漏洞等级划分指南(草案)[S]. 2010.
- ↑ 中华人民共和国国家标准. 漏洞标识与描述规范(草案)[S]. 2010.
数据引用格式
李瑞科, 刘元, 廖雷, 等. 1999–2018年安全漏洞数据集[DB/OL]. Science Data Bank, 2019. (2019-06-20). DOI: 10.11922/sciencedb.791.