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, 交互式图谱, 依赖分析, 依赖图, 可视化, 数字签名, 日志审计, 本地优先, 本地部署, 漏洞管理, 硬件无关, 程序破解, 网络测绘, 跌倒检测, 软件物料清单