amvn-rwt/depsee
GitHub: amvn-rwt/depsee
将 CycloneDX SBOM 文件转化为带有 NVD 漏洞信息的交互式依赖关系图,帮助安全团队直观理解软件组件风险传播路径。
Stars: 0 | Forks: 0
# depsee
`depsee` 是一个本地优先的 SBOM 浏览器,专为 CycloneDX 文件设计。它能够读取软件物料清单,构建依赖关系图,使用 NVD CVE 数据丰富包信息,并提供一个小型 Web UI 用于可视化依赖风险。
其目标很简单:让 SBOM 比扁平的软件包或 CVE 列表更容易理解。
## 功能特性
- 解析 CycloneDX JSON SBOM 文件
- 从 `components` 和 `dependencies` 构建有向依赖关系图
- 提供本地 Web UI 和 `/api/graph` JSON 端点
- 使用包 URL 到 CPE 的匹配机制,利用 NVD CVE 丰富节点信息
- 计算爆炸半径、依赖数量、严重性和风险评分
- 保持 NVD 请求的速率限制、重试机制和内存缓存
## 状态
`depsee` 是一个早期阶段的项目。核心的图处理管道已在运作,并且 Web UI 也在本地提供服务,但该项目仍在不断发展中。
## 安装说明
### 前置条件
- Go `1.25+`
### 从源码运行
```
git clone https://github.com/amvn-rwt/depsee.git
cd depsee
go run ./cmd/depsee -file path/to/service.sbom.json
```
### 构建二进制文件
```
go build -o depsee ./cmd/depsee
```
在 Windows 上:
```
go build -o depsee.exe ./cmd/depsee
```
## 快速开始
### CLI 模式
从 SBOM 打印基本的邻接表:
```
go run ./cmd/depsee -file path/to/service.sbom.json
```
### Web 模式
启动本地服务器:
```
go run ./cmd/depsee -serve -file path/to/service.sbom.json
```
然后打开:
- `http://127.0.0.1:8080/`
- `http://127.0.0.1:8080/api/graph`
### 跳过 NVD 丰富
如果您想在离线环境下工作或避免网络调用:
```
go run ./cmd/depsee -serve -file path/to/service.sbom.json -skip-nvd
```
## 使用说明
```
depsee -file path/to/service.sbom.json
depsee -serve -file path/to/service.sbom.json
depsee -serve -addr :9090 -file path/to/service.sbom.json
depsee -serve -file path/to/service.sbom.json -skip-nvd
```
### 标志
- `-file` - CycloneDX JSON SBOM 文件的路径
- `-serve` - 启动本地 HTTP 服务器和 Web UI
- `-addr` - Web 模式下的 HTTP 监听地址
- `-skip-nvd` - 禁用 NVD 丰富
## NVD API 密钥
`depsee` 可以在没有 API 密钥的情况下查询 NVD API,但速率限制会严格得多。要提高吞吐量,请设置:
```
export NVD_API_KEY=your_key_here
```
在 PowerShell 上:
```
$env:NVD_API_KEY="your_key_here"
```
## API
### `GET /api/graph`
返回已加载 SBOM 的图数据:
```
{
"nodes": [
{
"id": "pkg:npm/express@4.18.0",
"label": "express@4.18.0",
"type": "library",
"severity": "HIGH"
}
],
"links": [
{
"source": "pkg:npm/my-api@1.0.0",
"target": "pkg:npm/express@4.18.0"
}
]
}
```
## 项目结构
```
depsee/
├── cmd/depsee/ # CLI entrypoint
├── internal/app/ # core application logic
└── internal/app/web/ # embedded static UI assets
```
## 开发
运行所有测试:
```
go test ./...
```
在本地运行 Web 应用:
```
go run ./cmd/depsee -serve -file path/to/service.sbom.json -skip-nvd
```
## 路线图
- 更好的 CycloneDX 验证和空依赖处理
- 改进的图 UI 和节点详情
- 更全面的 CVE 丰富和修复建议
- 风险排名和“优先修复”工作流
- 额外的导出和集成选项
## 贡献
欢迎提交 Issue 和 pull request。如果您想要贡献,可以从提交 issue 或提出改进建议开始。
## 许可证
本项目依据本仓库中 `LICENSE` 文件规定的条款进行许可。
标签:CISA项目, CVE, CycloneDX, EVTX分析, Go语言, GPT, Mutation, NVD, SBOM, WebSocket, 交互式图谱, 依赖分析, 依赖图, 可视化, 数字签名, 日志审计, 本地优先, 本地部署, 漏洞管理, 硬件无关, 程序破解, 网络测绘, 跌倒检测, 软件物料清单