目录
一、前言
本人基于网络空间安全研究方向做过入侵检测实验、软件缺陷分类实验、软件安全漏洞分类管理实验等,网络安全方向相关数据集可参看个人总结:
本文的主要目的是为了构造一个有效的软件漏洞分类模型,该模型能有效提高软件漏洞分类管理的效率和软件漏洞分类的准确率,减少系统被攻击和破坏的风险,降低漏洞修复的成本。本文主要使用深度学习相关方法构造漏洞分类模型进行实验调研。
二、软件漏洞数据分析
实验所用数据为美国国家计算机通用漏洞数据库(National Vulnerability Database,NVD)和中国国家信息安全漏洞库(China National Vulnerability Database of Information Security,CNNVD),主要以NVD漏洞数据库中的漏洞数据为基准数据,本次实验使用的是从2002年到2019年5月份的NVD漏洞数据。
NVD漏洞数据库收录的漏洞数据具有唯一性,规范性,兼容性和统一性,采用国际编码语法规范,因此,可以作为软件漏洞分类研究的基准数据集。NVD漏洞数据库提供了XML和JSON两种格式的漏洞文件,本文使用的是XML格式的漏洞文件,文件中包含了漏洞的CVE-ID,CVSS_score,CVSS_Accuracyess,CVSS_vector,vuln-source,CWE-ID和vuln-summary等漏洞信息。
在过去的十几年中,漏洞数量增长迅速,对NVD从2002年到2019年5月份的数据统计显示,漏洞总数高达121279条,其中包括未知漏洞类型就多达38868条。年度新增漏洞数量分布如下图所示:
本实验选取从2002年到2019年5月份的43496条NVD漏洞数据进行实验研究,其中包含16个主要漏洞类型。不同漏洞类型统计数量分布如下图所示:
实验使用Python编程语言从XML漏洞文件中提取CVE-ID,CWE-ID和vuln-summary三部分数据信息,不相关的字段和不完整的数据将被删除,提取的部分漏洞信息如下表所示:
CVE-ID
CWE-ID
vuln-summary
CVE-2019-9961
CWE-79
A cross-site scripting (XSS) vulnerability in ressource view in core/modules/resource/RESOURCEVIEW.php in Wikindx prior to version 5.7.0 allows remote attackers to inject arbitrary web script or HTML via the id parameter.
CVE-2019-9962
CWE-119
XnView MP 0.93.1 on Windows allows remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted file, related to VCRUNTIME140!memcpy.
…
…
…
其中,CVE-ID表示每条漏洞的编号,CWE-ID表示漏洞类型,可以根据
根据CWE标准可获得每个CWE-ID所对应的漏洞类型如下表所示(包括漏洞类别的