OWASP 依赖项检查 Maven 与命令行结果不同

Ste*_*han 6 java owasp maven maven-dependency-plugin owasp-dependency-check

在 Maven 项目中,我运行 OWASP dependency-check-maven 插件以及 OWASP 命令行工具,以便生成包含存在漏洞的依赖项的报告。

我无法理解的是这两个工具是如何运作的。具体来说,我注意到 Maven 插件 (dependency-check-maven) 报告了 45 个易受攻击的依赖项,而命令行工具报告了 34 个。

例如,Maven 插件将undertow-core-1.2.9.Final.jar(由依赖项提供的undertow-servlet)报告为存在严重漏洞,而通过命令行检查,该依赖项根本不会出现在列表中。我正在使用以下命令运行命令行工具:

dependency-check --project "myProject" --scan "C:\path\myProject" --disableRetireJS
Run Code Online (Sandbox Code Playgroud)

难道命令行工具会扫描项目目录中现有的 jar 文件,而 Maven 插件会遍历 中定义的依赖项吗pom.xml

Jha*_*ack 4

https://github.com/jeremylong/DependencyCheck/issues/3729,该插件的作者说:

“来自 Maven 插件的报告可能是最准确的。使用 CLI,它只扫描构建工件。”

因此,当您使用 dependency-check-maven 插件时,将使用 pom.xml,而使用 CLI 时,仅检查目标中找到的内容。