Usenix Security是信息安全领域“四大”顶级学术会议(此外还包括S&P,CCS,NDSS)之一,始于上世纪90年代初,每年涵盖的安全领域包含:二进制安全、固件安全、取证分析、Web安全、隐私保护、恶意分析、硬件保护、智能合约等。Usenix Security 被中国计算机学会(CCF)列为“网络与信息安全”A类会议。
网络安全行业已经通过建立强大的社区来发现和修补漏洞。CVE(Common Vulnerabilities and Exposures,常见漏洞和泄露)和NVD(National Vulnerability Database,国家漏洞数据库)是全球最具影响力的漏洞库,在指导漏洞缓解方面都发挥着重要作用。
其中,CVE是一个全球网络安全漏洞数据库,利用“群众的力量”对公开的漏洞进行索引。安全供应商、开发人员和研究人员等任何人都可以利用互联网共享他们在CVE上发现的漏洞。
NVD是由美国政府机构NIST主导建立的更加标准化的数据库,NVD从CVE网站接收数据提要,经过分析后分配一个CVSS分值(Common Vulnerability Severity Score, 常见漏洞严重性评分),以及其他相关元数据信息。
数据格式上,CVE使用非结构化的数据格式,NVD使用标准化的数据格式,算法可以直接处理NVD数据。
到目前为止,超过100,000个漏洞被编入索引,并且CVE和NVD漏洞库的数据流已经与全世界数百个安全供应商进行了集成。
01 研究背景
计算机和网络系统中的安全漏洞正对用户、组织和国家造成严重威胁,不一致的漏洞报告成为导致现实攻击的重要原因。例如,WannaCry勒索软件导致诸多医院和学校等数十万台机器宕机,Equifax数据泄露事件影响了美国人口的一半。
为了解决不一致的漏洞报告问题,防止被攻击者利用,网络安全行业建立了强大的社区,来发现和修补漏洞。
然而,在漏洞数据库积累大量数据的同时,信息质量也受到越来越多的关注。CVE和NVD上列出的信息有可能是不完整的或过时的,这给研究人员重现漏洞带来了挑战。
此外,CVE和NVD作为企业进行安全评估的重要信息来源,当企业发现系统漏洞时,系统管理员通常会直接查找漏洞数据库,以确定相应版本的软件是否需要打补丁,如若某些CVE或者NVD条目包含错误信息,可能会导致企业的关键系统因未及时打补丁而产生的安全风险。
因此,设计一个能够自动化地检测NVD(数据经过标准化)、CVE(数据非结构化)漏洞库的条目以及他们所引用的漏洞报告之间的信息不一致性是十分必要的。
02 研究问题
首先,漏洞会在多个地方被报告和讨论,CVE和NVD漏洞库的条目是基于其中的部分报告通过手工作业方式创建的,CVE和NVD漏洞库中的信息(漏洞软件名称及其版本)是否真的足够完整?
第二,社区会对已报告的漏洞进行持续研究,手工作业的方式是否能够真正有效地保持CVE和NVD漏洞库的条目是最新的?
基于此,Usenix 2019 论文[1]的研究目标是对CVE、NVD漏洞库的条目与外部网站的漏洞报告之间的不一致性进行全面深入的理解。然而,统计数据显示,CVE列表已经归档了100,000多个不同的CVE漏洞,每个 CVE的 ID 还有 5~ 30个外部第三方引用。因此,如果也采用手动作业的方式来提取不一致信息是不可行的。那么,如何自动化地、且准确地从非结构化的报告中提取相关的漏洞信息就成了该项研究的主要挑战。
尽管存在现有的NLP(Natural Language Processing,自然语言处理)工具能够从文本中提取相关的漏洞信息,但是漏洞报告的独有特点带来了新的研究问题,而现有技术在应对这些新问题方面具有不足,主要包括:
1)新软件不断出现:CVE列表频繁地引入新的漏洞软件,使得基于预定义字典的方法来识别漏洞软件名称变得十分困难。因此,基于字典的方法不适合这个问题;
2)漏洞报告是非结构化的:大多数的CVE数据条目以及相关漏洞报告是非结构化的,基于正则表达式的技术几乎不起作用;
3)不相关的实体非常普遍:如下图所示,漏洞报告通常会说明软件的漏洞版本和非漏洞版本,而我们的目标是提取“漏洞”的软件名称和版本,同时排除与非漏洞的相关信息项。因此,依赖于预定义规则的技术在这里也几乎不起作用;

4)多个相关的实体存在:如下图所示,一份漏洞报告通常涉及多个实体,以及报告上下文内含的实体之间的关系,这使得基于单实体提取的技术失效;

5)漏洞类型多样化:CVE覆盖各种各样的漏洞类型,每一种都有其独具特点的描述。因此,不能简单地使用为某些漏洞类型专门设计的方案。例如,有些工具是专门为内核内存损坏漏洞专门设计的。
03 解决方案
为了应对上述挑战,该论文提出了一个VIEM系统,能够检测大规模信息的不一致性。
VIEM全称Vulnerability Information Extraction Model,即漏洞信息提取模型,是基于NER(Named Entity Recognition,命名实体识别)模型和RE(Relation Extraction,关系提取)模型构建的。
VIEM模型的主要思想是从句子结构中学习模式和指示符,以识别含有漏洞的软件名称以及版本号。
VIEM模型利用“上下文”信息,不仅能够捕获之前未知的软件名称,而且还能够针对不同的漏洞类型进行检测。
其中,NER模型是一个循环深度神经网络,利用单词和字符嵌入技术对文本进行编码,然后利用一个序列到序列的双向GRU门控(Gated Recurrent Unit,门控循环单元)定位漏洞软件的名称和版本号,从而达到精确地定位实体的目的。
RE模型用来分析被提取实体之间的关系,并将漏洞软件名称及其版本号组合在一起。
此外,VIEM还引入了迁移学习(Transfer Learning)的技术来进行模型泛化,进而能够最小化手工注释,支持处理不同类型的漏洞。
04 评估和度量
论文从CVE、NVD以及5个流行的漏洞报告网站收集了大量数据,这些数据集涵盖了过去20年13个漏洞类别的78296个CVE的ID和70569个漏洞报告。
在评估和度量过程中,研究团队手工注释了5193个CVE ID,作为ground truth,基于ground truth的实验表明,VIEM系统具有较高的准确率,模型精度为0.941,召回率为0.993,并且能够推广到所有13个漏洞类别。
此外,为了在实际场景中检测不一致性,研究团队使用NVD作为标准(因为它是信息流的最后一跳),来检查NVD条目与CVE条目以及所引用外部源之间的不一致性。结果发现了:
1)不一致性水平非常高。只有59.82%的外部报告以及CVE摘要,与NVD条目的漏洞软件版本完全相同。NVD条目“多声明”或“少声明”漏洞版本的情况也很普遍;
2)不一致性水平在过去20年有所上升(但自2016年开始下降);
3)将软件非漏洞版本错误地写入到漏洞库以及遗漏软件实际漏洞版本的真实案例。这些信息可能会影响基于CVE、NVD漏洞库做出关键决策的系统。
05 应用前景
以前还没有工具可以自动化地从非结构化的报告中提取漏洞软件名称和版本,VIEM 能够连续监视不同的漏洞报告网站,并定期从CVE、NVD条目生成“不一致警告”,这将使得网络安全社区广泛受益。
对于CVE和NVD公司的员工来说,VIEM一旦检测漏洞版本过期或者错误,会及时通知他们以加速测试和条目更新。
对于安全公司来说,VIEM可以帮助找出软件产品中存在的漏洞版本,从而推动更主动的测试和补丁。
对于软件用户和系统管理员来说,“不一致警告”将辅助他们进行软件更新的决策。
另外,为了方便未来的研究和应用开发,研究团队将标签数据集和VIEM的源代码开源[2]。
06 论文贡献
VIEM能够检测漏洞库的不一致性,已经成为修正NVD和CVE库中过期和错误条目的关键一步,该论文主要包括三个关键贡献:
首先,论文设计并开发了一个从非结构化的漏洞报告中提取漏洞软件名称和版本的系统——VIEM;
其次,构建了一个大型的ground-truth数据集,并基于此展示了VIEM是一个高精度,能够泛化支持不同的漏洞类型的系统;
最后,使用VIEM对CVE、NVD的信息一致性进行了大规模度量,生成的“不一致警告”将有助于驱使业界更加主动地进行漏洞测试和信息管理。
参考文献
[1] Ying Dong, Wenbo Guo, Yueqi Chen, XinyuXing, Yuqing Zhang, Gang Wang:Towards the Detection of Inconsistencies inPublic Security Vulnerability Reports. USENIX Security Symposium 2019: 869-885
[2] 标签数据集和VIEM的源代码:https://github.com/pinkymm/inconsistency_detection
版权声明:本文为首席安全官Plus原创文章,转载请注明出处。
首席安全官Plus致力于解读网络安全政策法规,发布网络安全创新理念、先进架构、前沿技术、产业趋势和资本动态,科普网络安全知识,为企业和组织提供安全规划咨询和方案建议。
微信二维码

Usenix Security会议研究表明,CVE和NVD漏洞库可能存在信息不一致,影响安全评估。论文提出VIEM系统,通过深度学习自动检测这种不一致性,有助于改进漏洞数据库的准确性和及时性。
3670

被折叠的 条评论
为什么被折叠?



