在现代软件开发中,使用开源库和第三方依赖项已成为常态。然而,这些依赖项可能包含已知的安全漏洞,给应用程序带来潜在的风险。为了解决这个问题,OWASP Dependency-Check 应运而生。本文将介绍 OWASP Dependency-Check 的功能、安装方法、使用步骤以及最佳实践。
OWASP Dependency-Check 是一个开源工具,旨在帮助开发人员识别项目中使用的库和组件的已知漏洞。它通过扫描项目的依赖项,生成详细的报告,帮助团队及时发现并修复安全问题。该工具支持多种编程语言和构建工具,包括 Java、.NET、Node.js 等。
在pom.xml配置文件中引入插件
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>10.0.3</version>
<executions>
<execution>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
在IDEA主界面的右边侧边栏上找到Maven模块,执行 Plugins 目录下 Depedancy-check 中的 aggregate 。
介绍一下各个选项的作用:One or more dependencies were identified with known vulnerabilities in Java-demo:
bcpkix-jdk15on-1.70.jar (pkg:maven/org.bouncycastle/bcpkix-jdk15on@1.70, cpe:2.3:a:bouncycastle:bouncy_castle_for_java:1.70:*:*:*:*:*:*:*) : CVE-2023-33202
bcprov-jdk15on-1.70.jar (pkg:maven/org.bouncycastle/bcprov-jdk15on@1.70, cpe:2.3:a:bouncycastle:bouncy-castle-crypto-package:1.70:*:*:*:*:*:*:*, cpe:2.3:a:bouncycastle:bouncy_castle_crypto_package:1.70:*:*:*:*:*:*:*, cpe:2.3:a:bouncycastle:bouncy_castle_for_java:1.70:*:*:*:*:*:*:*, cpe:2.3:a:bouncycastle:legion-of-the-bouncy-castle-java-crytography-api:1.70:*:*:*:*:*:*:*, cpe:2.3:a:bouncycastle:the_bouncy_castle_crypto_package_for_java:1.70:*:*:*:*:*:*:*) : CVE-2024-34447, CVE-2024-29857, CVE-2024-30171, CVE-2023-33202, CVE-2023-33201
bcutil-jdk15on-1.70.jar (pkg:maven/org.bouncycastle/bcutil-jdk15on@1.70, cpe:2.3:a:bouncycastle:bouncy_castle_for_java:1.70:*:*:*:*:*:*:*) : CVE-2023-33202
commons-compiler-3.0.8.jar (pkg:maven/org.codehaus.janino/commons-compiler@3.0.8, cpe:2.3:a:janino_project:janino:3.0.8:*:*:*:*:*:*:*) : CVE-2023-33546
commons-compress-1.21.jar (pkg:maven/org.apache.commons/commons-compress@1.21, cpe:2.3:a:apache:commons_compress:1.21:*:*:*:*:*:*:*) : CVE-2024-25710, CVE-2024-26308
commons-io-2.11.0.jar (pkg:maven/commons-io/commons-io@2.11.0, cpe:2.3:a:apache:commons_io:2.11.0:*:*:*:*:*:*:*) : CVE-2024-47554
janino-3.0.8.jar (pkg:maven/org.codehaus.janino/janino@3.0.8, cpe:2.3:a:janino_project:janino:3.0.8:*:*:*:*:*:*:*) : CVE-2023-33546
json-path-2.8.0.jar (pkg:maven/com.jayway.jsonpath/json-path@2.8.0, cpe:2.3:a:json-path:jayway_jsonpath:2.8.0:*:*:*:*:*:*:*) : CVE-2023-51074
logback-core-1.2.11.jar (pkg:maven/ch.qos.logback/logback-core@1.2.11, cpe:2.3:a:qos:logback:1.2.11:*:*:*:*:*:*:*) : CVE-2023-6378
See the dependency-check report for more details.
执行完成后,扫描报告会生成到target路径下的dependency-check-report.html
OWASP Dependency-Check 是一个强大的工具,可以帮助开发团队识别和管理项目中的安全风险。通过定期扫描和及时修复漏洞,团队可以显著提高软件的安全性,降低潜在的安全威胁。无论是个人开发者还是大型企业,使用 OWASP Dependency-Check 都是确保软件安全的重要一步。