可以用OWASP Dependency-Check来检查特定产品吗?

后端开发 2026-07-09

我们使用一个定期执行的 OWASP Dependency-Check 作业来扫描我们的Java应用。

也希望把OWASP Dependency-Check用来扫描系统中使用的其他工具,尽管它们并非任何东西的正式依赖项。这其中包括Java运行时安装和数据库系统。

有没有办法让OWASP Dependency-Check扫描这些指定的产品?

例如,这是JDK版本的CPE:cpe:2.3:a:eclipse:temurin:21.0.9

我能把这个作为参数传给Dependency-Check以某种方式进行检查吗?无论是传给Maven插件还是命令行工具。

或者我也许通过某种方式创建一个虚拟制品,让它检查那个产品?

也许可以直接调用扫描器JAR文件中的代码?

编辑:也许可以用 hints文件 解决。我明天会尝试。

解决方案

Dependency Check包含一个 DependencyCheckScanAgent 的类,专门用于扫描特定的产品。

来自Javadoc的示例代码:

List<Dependency> dependencies = new ArrayList<Dependency>();
Dependency dependency = new Dependency(new File(FileUtils.getBitBucket()));
dependency.addEvidence(EvidenceType.PRODUCT, "my-datasource", "name", "Jetty", Confidence.HIGH);
dependency.addEvidence(EvidenceType.VERSION, "my-datasource", "version", "5.1.10", Confidence.HIGH);
dependency.addEvidence(EvidenceType.VENDOR, "my-datasource", "vendor", "mortbay", Confidence.HIGH);
dependencies.add(dependency);

DependencyCheckScanAgent scan = new DependencyCheckScanAgent();
scan.setDependencies(dependencies);
scan.setReportFormat(ReportGenerator.Format.ALL);
scan.setReportOutputDirectory(System.getProperty("user.home"));
scan.execute();

你可能还需要设置数据库连接字符串、NVD API密钥,以及可能还需要其他一些配置。

在你的POM中这样包含:

<dependency>
    <groupId>org.owasp</groupId>
    <artifactId>dependency-check-core</artifactId>
    <version>12.1.3</version>
</dependency>
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章