Refining Traceability Links Between Vulnerability and Software Component in a Vulnerability Knowledge Graph

完善漏洞知识图谱中漏洞和软件组件之间的可追溯性链接

摘要

软件漏洞和它们相应的软件组件信息通常存储在不同的位置,并有不同的表示方法。在它们之间建立准确的追溯链接,形成统一的知识图谱,对漏洞扩散分析、组件依赖性管理和关系推理都有很大帮助。


在本文中,我们首先提出了一个软件漏洞知识图谱模型,它整合了CVE信息、Maven库中的Java组件元数据和Github上的项目协作数据。为了构建知识图,我们提出了两种本体匹配方法。第一种方法以URL文本匹配的方式链接Maven项目和Github项目。第二种方法引入了随机森林算法,基于16个明确定义的特征将CVE项目版本和Maven项目版本联系起来。


实验结果表明,CVE项目版本和Maven项目版本之间的匹配是非常有希望的,准确率高达99.8%。基于我们的方法,漏洞和软件组件之间的可追溯性联系可以更加准确。

本体匹配概念

本体匹配,也被称为本体对齐,是一个必要的程序,有助于减少不同领域知识之间的语义差距。在完成本体匹配后,漏洞信息、项目元数据和软件配置就可以在知识图谱中联系在一起,为进一步分析做好准备。因此,本体匹配的质量非常关键,因为它直接决定了分析结果的准确性。

文章贡献

  1. 为了全面分析来自多种资源的漏洞,我们通过整合CVE、Maven和Github的信息分别提出了一个软件漏洞本体。
  2. 基于漏洞知识图谱,为了细化漏洞和软件组件之间的可追溯性联系,我们提出了一种基于Github URL文本匹配的本体匹配方法,以链接Maven项目和Github项目(OM-MG)。
  3. 此外,我们提出了一种使用随机森林的本体匹配方法,以匹配CVE产品版本和Maven项目版本(OM-CM)。

NVD介绍

NVD是美国政府基于标准的漏洞管理数据存储库,它可以实现漏洞管理的自动化,以及安全测量和合规性。其中核心字段是CVE, 是一个包含一系列标签、自定义关键词和描述的公共字典,它的出现是为了识别不同软件资源(开源项目、商业产品等)的常见漏洞。一旦有新的漏洞被披露和报告,它将首先被安全专家审查和验证。

Maven介绍

Apache Maven是Java项目最广泛使用的管理和理解工具,它采用了项目对象模型(POM)的概念,可以通过一个中心信息来管理项目的构建、报告和文档。在POM文件(xml格式)中,一个软件项目定义了它的依赖关系、工件、插件、相关属性和其他配置。在构建过程中,所有需要的Java库和Maven插件都从Maven中心库拉到本地用户目录中,以供进一步使用。

Github介绍

Github是目前世界上使用最广泛的代码托管网站。Github建立在Git版本控制系统的基础上,它提供的功能包括项目管理、代码审查、集成、社交编码等。GitHub正在成为我们分析开源软件漏洞传播的最重要来源之一。

软件漏洞本体

CVE本体

CVE本体的重点是以漏洞为中心的概念以及周边关系,这些概念是从NVD数据库模式中提取的。为了追踪软件漏洞,本文特别强调了四个概念: 漏洞,产品版本,产品,和供应商。


漏洞直接影响到一个特定的或一系列的ProductVersion,而ProductVersion属于某个产品,那么这个产品也属于一个Vendor。所有这些在追踪软件漏洞传播时都特别有用。CVE的其余细节,如CWE、CVSS等,都尽可能地保留在CVE本体中。

Maven本体

Maven本体论的三个核心概念分别是ProjectGroup、Project和ProjectVersion。ProjectGroup通常包含一组由同一组织开发/拥有的项目。Project致力于提供特定的模块库、功能或特定工具,通常通过各种ProjectVersion版本迭代开发。ProjectVersion包含groupID、artifactID、项目版本、父项目以及项目依赖关系,所有这些信息都是从maven POM.xml文件中提取的。

Github本体

在Github主题的基础上,核心概念(如项目、提交、贡献者、拉动请求、问题等)被提取并添加到Github本体中,如图2所示。

软件漏洞本体结构图展示

本体匹配方法

本文中,本体匹配的目标是将Maven本体中的项目与Github本体中的项目进行匹配,并将CVE本体中的ProductVersion与Maven本体中的ProjectVersion进行匹配。

OM-MG方法

OM-MG方法主要关注Github项目与Maven项目的匹配。其主要思路是,从CVE漏洞参考文献中提取Github链接,然后导航到Github中的相应库房。从仓库中找到所有项目信息并用于本体匹配。

OM-CM方法

OM-CM方法致力于将CVE ProductVersion与Maven ProjectVersion进行匹配。本质上,本体匹配可以被看作是一个典型的分类问题,通过根据一系列不同的特征过滤出最佳匹配结果来解决。随机森林是一种集合学习方法,通过在训练时构建众多决策树并输出类的模式来进行分类。它的明显优势包括。(1)训练速度快;(2)分类结果准确度高;(3)避免了过拟合问题。此外,初步结果显示,即使在不平衡的数据集中,它也表现良好。

实验结果

OM-MG实验结果

  1. 共有94,035条CVE记录,其中5,017条CVE记录包含Github参考链接。
  2. 对于这5,017个CVE,总共提取了19,511个独特的Github链接。
  3. 所有19,511个链接被归入1,201个不同的资料库中。
  4. 利用Github语言API,共筛选出107个主要编码语言为"Java"的资源库, 其余的资源库则根据编码语言进行分类,例如Python、PHP、C++、Ruby......。
  5. 所有这107个Github仓库都与相应的Maven项目相连接。
  6. 5017个CVE和1201个Github资源库分别以一对多、一对一和多对一的三种不同关系被联系在一起。

OM-CM实验结果

所提出的OM-CM方法展示了高达99.95%的有希望的精确率,并且准确率高达99.85%, 如下图所示:

posted @ 2022-04-01 11:09  chaosliang  阅读(230)  评论(0)    收藏  举报