sbom-tools
AI-BOM与软件供应链安全合规工具,支持16套标准验证和后量子密码就绪检查
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI-BOM与软件供应链安全合规工具,支持16套标准验证和后量子密码就绪检查
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象一下:你的软件项目里依赖了数百个开源组件,其中某个组件悄悄引入了漏洞,或者许可证突然从 MIT 变成了 AGPL——你能第一时间发现吗?
sbom-tools 正是为解决这个问题而生的。它是一个用 Rust 编写的 SBOM(软件物料清单)语义分析工具,支持 CycloneDX 和 SPDX 两大主流标准,能对两份 SBOM 文档进行"组件级差异对比"、质量评分、合规验证和漏洞富化,堪称软件供应链的"X光机"。
2021年 Log4Shell 漏洞让整个行业意识到:当一个日志库影响全球数百万应用时,你甚至不知道自己用了它。此后,美国商务部 NIST 推出 EO 14028 行政令,要求关键软件供应商提供 SBOM;欧盟 Cyber Resilience Act(CRA)强制要求物联网和软件产品附带 SBOM;美国 FDA 对医疗软件也提出了 SBOM 要求。
但光有 SBOM 不够——你需要分析它、对比它、验证它。这正是 sbom-tools 的价值所在。
sbom-tools 的核心引擎用 Rust 写成,所有格式(CycloneDX 1.4-1.7、SPDX 2.2-3.0)的 SBOM 都会被转换为统一的规范模型(NormalizedSbom),然后用同一套逻辑完成以下分析:
语义差异对比(Semantic Diffing) — 不只是文本 diff,而是组件级别的语义分析:哪个依赖升级了版本、哪个包被移除了、哪个许可证变了、哪个漏洞出现了变化。TUI 界面用 10 个标签页展示不同维度的变化。
质量评分(Quality Scoring) — 按 9 个维度给 SBOM 质量打分(0-100分),包括完整性、一致性、元数据丰富度等。同时输出与 sbomqs(行业标准评分工具)兼容的 JSON,方便 CI 集成。
合规验证(Compliance Validation) — 内置 16 套标准的验证规则,包括 NTIA 最低要素、美国 FDA 医疗软件要求、欧盟 CRA、EO 14028、NIST SSDF、CNSA 2.0(美国国家安全局后量子密码标准)、BSI TR-03183、EU AI Act 等。
CBOM 加密物料清单 — 支持解析 CycloneDX 1.6/1.7 的 cryptoProperties,对加密算法强度、PQC(后量子密码)就绪状态、证书生命周期等 8 个维度打分。对接 CNSA 2.0 和 NIST IR 8547 PQC 合规要求。
漏洞富化(Vulnerability Enrichment) — 对接 OSV 和 KEV 数据库,自动追踪新出现的漏洞和已修复的漏洞。支持 VEX(漏洞利用交换)文档,检测漏洞状态变化,并提供 fail-on-vex-gap CI 门控。
项目总规模约 87K 行 Rust 代码、200 个源文件,代码结构清晰:
| 模块 | 职责 |
|---|---|
parsers/ | 格式检测 + 流式解析(支持 >512MB 大文件) |
model/ | 规范 SBOM 模型(NormalizedSbom, Component, CanonicalId) |
matching/ | 多层级组件匹配(PURL精确 → 别名 → 模糊匹配 → LSH索引) |
diff/ | 语义 diff 引擎 + 依赖图 diff |
quality/ | 9维度评分引擎 v2.0 |
enrichment/ | OSV/KEV 漏洞富化 + EOL 检测 |
tui/ | Ratatui 交互式终端界面 |
reports/ | 11 种输出格式(JSON/NDJSON/SARIF/HTML/Markdown/CSV...) |
license/ | 许可证策略引擎 + 传播分析 |
watch/ | 文件监控模式,持续监听 SBOM 变化 |
代码质量方面,项目通过了 OpenSSF Best Practices 认证和 Scorecard 安全评分,CodeQL 持续扫描,CI 流水线完整(15+ 个 GitHub Actions workflow),包含 Fuzz Testing 和基准测试。
安装方式(三选一):
# macOS / Linux — Homebrew
brew install sbom-tool/tap/sbom-tools
# Linux/macOS — 预编译二进制
curl -sSL https://github.com/sbom-tool/sbom-tools/releases/latest/download/sbom-tools-linux-x86_64.tar.gz | tar xz
sudo mv sbom-tools /usr/local/bin/
# 已有 Rust 工具链
cargo install sbom-tools
基本使用流程:
# 对比两个 SBOM 版本
sbom-tools diff old-bom.json new-bom.json
# 查看交互式 TUI
sbom-tools view my-bom.json
# 质量评分
sbom-tools quality my-bom.json --profile minimal -o json
# 验证合规性
sbom-tools validate my-bom.json --standard ntia
# 管道模式(stdin 输入)
syft -o cyclonedx-json . | sbom-tools quality - --profile minimal
工具支持 11 种输出格式,特别是 NDJSON 流式输出,无需将整个报告缓存在内存中,非常适合 CI 场景。
不回避的问题:
无 Docker 支持:工具不提供容器化部署,需要在目标机器上直接安装 Rust 环境或预编译二进制,对于习惯容器化部署的团队有一定门槛。
TUI 而非 Web UI:交互界面是终端 TUI(非 Web),不提供可视化仪表盘,团队协作查看分析结果需要共享 CLI 输出或 JSON 报告。
后量子密码验证是静态的:CBOM 质量评分和 PQC 合规检查仅基于 SBOM 文档中声明的算法信息,不会实际运行加密操作验证。
Rust MSRV 要求较高:最低支持 Rust 1.88(最新 stable),对于需要兼容老旧 Rust 版本的团队可能需要额外考虑。
Stars 规模较小:当前 239 颗星,项目相对年轻,社区规模和生态成熟度还在成长阶段。
sbom-tools 代表了 SBOM 工具演进的一个重要方向——从"生成 SBOM"到"分析 SBOM"。在 Log4Shell 之后,行业意识到 SBOM 的价值不在于"有",而在于"用"。工具提供了 CI 集成所需的退出码门控、fail-on-vex-gap 机制和 16 套合规标准验证,让 SBOM 从静态文档变成动态合规工具。
其对 EU AI Act 的支持(AI-BOM 质量评分、模型/数据集元数据评分)体现了对新兴监管需求的快速响应,CNSA 2.0 和 NIST PQC 合规检查则瞄准了后量子时代的安全需求。
sbom-tools 是一款专业级的 SBOM 语义分析工具,以 Rust 实现高性能和内存安全,通过丰富的 CLI/TUI 交互和 11 种输出格式覆盖从开发人员日常检查到 CI/CD 自动化集成的全场景。其对 16 套合规标准的内置验证和 EU AI Act / PQC 支持,使其在监管驱动型企业场景中具有独特价值。主要短板在于缺乏 Web UI 和 Docker 支持,部署灵活性受限,但对于已经具备 Rust 环境的团队,它是软件供应链分析领域的强力选择。