前言
Dependency-Track 是 OWASP(开放网络应用安全项目)推出的 开源组件分析平台 ,专注于 软件供应链安全治理。它通过分析软件物料清单(SBOM)识别第三方组件中的漏洞、许可证风险等问题,帮助组织降低因依赖项带来的安全风险。以下是其核心功能和应用场景的详细说明:
- 组件分析与漏洞管理
SBOM 驱动分析:Dependency-Track 通过解析 CycloneDX 或 SPDX 格式的 SBOM 文件,自动识别项目使用的所有第三方组件(包括直接依赖和间接依赖),并比对 多个漏洞数据库(如 NVD、Snyk、Sonatype OSS Index、VulnDB 等)以发现已知漏洞。
优先级排序:结合漏洞利用预测评分系统(EPSS),帮助团队优先修复高风险漏洞。
- 许可证合规性监控
自动检测组件许可证类型(如 GPL、MIT 等),识别潜在的合规风险(如传染性许可证),并提供合规建议。
- 全局风险趋势追踪
提供可视化仪表盘,展示 跨项目的组件安全状态,例如漏洞数量趋势、高风险组件分布、许可证违规统计等,帮助安全团队制定全局治理策略。
- 策略引擎与自动化治理
支持定义 安全策略(如禁止使用特定许可证的组件、强制组件版本更新),并与 CI/CD 流程集成,在构建阶段自动拦截不合规的依赖项。
- 集成与扩展能力
API 优先设计:支持与 Jenkins、GitLab、Jira 等工具集成,实现自动化 SBOM 上传和漏洞通知。
多语言支持:覆盖 Java、Python、JavaScript、.NET 等主流语言的依赖分析。
搭建Dependency Track:
下载地址如下:
https://github.com/DependencyTrack/dependency-track?tab=readme-ov-file
其安装有两个方法,一个是本地部署,一个是docker
docker的很简单,几条命令就行
# Pull the image from the Docker Hub OWASP repo
docker pull dependencytrack/bundled
# Creates a dedicated volume where data can be stored outside the container
docker volume create --name dependency-track
# Run the bundled container with 8GB RAM on port 8080
docker run -d -m 8192m -p 8080:8080 --name dependency-track -v dependency-track:/data dependencytrack/bundled
本地部署需要下载对应的jar文件

两个的区别如下
1. dependency-track-bundled.jar
dependency-track-bundled.jar
是一个包含所有依赖项的独立 JAR 文件,适合在没有额外依赖的情况下运行 Dependency Track。这个文件通常用于开发环境或简单的部署场景。
2. dependency-track-apiserver.jar
dependency-track-apiserver.jar
是 Dependency Track 的 API 服务器部分,通常用于生产环境。它需要与一个数据库(如 PostgreSQL)一起运行,并且可以配置为使用外部数据库。
我们使用dependency-track-bundled.jar即可
这里需要注意dependency-track-bundled.jar对应的jdk版本,我这里使用的版本如下
dependency-track-bundled.jar:4.13.1
jdk:jdk-24
命令如下:
java -jar dependency-track-bundled.jar
运行后访问如下地址即可
http://localhost:8080/login?redirect=%2Fprojects

默认初始密码是admin admin,第一次登录要修改密码
生成SBOM清单:
使用cdxgen生成对应的SBOM清单,cdxgen有多个版本可以使用
这里我使用如下版本的cdxgen-CycloneDX CLI
https://github.com/CycloneDX/cdxgen
可以下载源码本地使用,也可以使用Node.js
npm install -g @cyclonedx/cdxgen
cdxgen --version
安装成功可以看到

然后使用如下命令生成 SBOM
cdxgen -r D:\input -o D:\output\bom.json --spec-version 1.6
执行成功后会生成bom.json
导入bom.json
生成成功后导入到Dependency-Track,新建项目处新建项目

然后选择Upload BOM即可上传之前生成的bom.json

上传成功后即可看到对应的jar包列表