一、目的
本文简单介绍了dependency的应用场景
二、dependency check 是什么?
Dependency-Check是OWASP(Open WebApplication Security Project)的一个实用开源程序,可以检查项目依赖包存在的已知、公开披露的漏洞。
目前良好的支持Java和.NET;Ruby、Node.js、Python处于实验阶段;仅支持通过(autoconf and cmake)编译的C/C++。
官网地址:https://owasp.org/www-project-dependency-check/
三、为什么要dependency check
检查源代码依赖包的风险性
95% of 应用程序都引用了开源软件
67% of applications contained open source vulnerabilities
log4j
四、dependency check原理
核心功能是通过包含的一系列分析器,来探测项目的依赖,收集依赖的各类信息,通过这些信息来确认其CPE,一旦CPE确认,就可以罗列出CVE(Comman Vulnerability and Exposure)
-
Dependency-Check工作的方式是通过分析器对文件进行扫描搜集信息,搜集到的信息被叫做迹象。
-
这边共搜集3种迹象,分时是vendor(供应商),product(产品)和version(版本)。例如,jarAnalyzer将从jar文件包中的Mainfest、pom.xml和包名进行信息搜集,然后把各种搜集到的源放到一个或者多个迹象表里。
-
通过搜集到的迹象和CPE条目(NVD、CVE数据索引)进行匹配,分析器匹配到了就会给个标志发送到报告。
三、如何使用dependency check
Dependency-Check有命令行接口、Maven插件、Jenkins插件等。
3.1 jenkins插件使用
3.2 命令行使用
sh dependency_check.sh --help
sh dependency_check.sh --format HTML -o ./scan.html -s /data/project/
四、报告解读
4.1.报告中一些重要字段的含义:
· Dependency - 被扫描的第三依赖库名字
· CPE - 所有被识别出来的CPE.
· GAV - Maven 组, Artifact, 版本 (GAV).
· Highest Severity - 所有关联的cve的最高漏洞等级
· CVE Count - 关联的cve个数
· CPE Confidence - dependency-check正确识别cpe的程度
· Evidence Count - 识别CPE的数据个数