【工具分享】Dependency-Check

Dependency-Check 是OWASP安全项目之一,可自动同步CVE漏洞库的漏洞信息,查找项目依赖关系中的已知漏洞。

1、Dependency-Check可以检查项目依赖包存在的已知、公开披露的漏洞。目前良好的支持Java和.NET;Ruby、Node.js、Python处于实验阶段;仅支持通过(autoconf and cmake)编译的C/C++。主要提供针对owasp2017 top10的 A9 – Using Components with Known Vulnerabilities.问题的解决方案

  2、Dependency-Check有命令行接口、Maven插件、Jenkins插件等。核心功能是通过包含的一系列分析器,来探测项目的依赖,收集依赖的各类信息,通过这些信息来确认其CPE,一旦CPE确认,就可以罗列出CVE(Comman Vulnerability and Exposure)

  3、插件的所有公开漏洞信息都存储在一个巨大的列表或者数据库里,你可以把它下载到本地,以方便快速查询;记得定期更新这个列表或者数据库

  

  CPE全称是Common Platform Enumeration,意思是通用平台枚举项。它是对识别出来的软件、操作系统和硬件的一种命名方式。它目前有2种格式,2.2和2.3,
2.2的格式如下:
  cpe:/h:huawei:e200e-usg2100:v100r005c01
  cpe:/::::::
2.3的格式如下:
  cpe:2.3:h:huawei:e200_usg2200:v200r003c00:*:*:*:*:*:*:*
  cpe:<2.3>:::::::

  其中,part表示目标类型,允许的值有a(应用程序)、h(硬件平台)、o(操作系统);vendor表示厂商名字;product表示产品名称;version表示版本号;update表示更新包;edition表示版本;language表示语言项。

  这七项不一定每次都出现。例如,在cpe:/o:freebsd:freebsd:3.5.1中,part为o,表示操作系统类型;vendor为freebsd,表示向量类型为freebsd;product为freebsd,表示产品为FreeBSD;version为3.5.1,表示FreeBSD的版本号。

参考:

1、https://www.owasp.org/index.php/OWASP_Dependency_Check

2、https://jeremylong.github.io/DependencyCheck/index.html#

3、https://nvd.nist.gov/products/cpe/search/results?keyword=usg&status=FINAL&orderBy=CPEURI&namingFormat=2.2

4、https://wiki.jenkins.io/display/JENKINS/OWASP+Dependency-Check+Plugin

5、https://github.com/jeremylong/DependencyCheck