interlynk-io/sbomqs

GitHub: interlynk-io/sbomqs

全面的 SBOM 质量评分与合规验证工具,帮助团队快速评估软件物料清单的完整性并检查是否符合行业法规标准。

Stars: 295 | Forks: 33

# sbomqs: 全面的 SBOM 质量与合规工具 [![Go 参考](https://pkg.go.dev/badge/github.com/interlynk-io/sbomqs.svg)](https://pkg.go.dev/github.com/interlynk-io/sbomqs) [![Go 报告卡](https://goreportcard.com/badge/github.com/interlynk-io/sbomqs)](https://goreportcard.com/report/github.com/interlynk-io/sbomqs) [![OpenSSF 记分卡](https://api.securityscorecards.dev/projects/github.com/interlynk-io/sbomqs/badge)](https://securityscorecards.dev/viewer/?uri=github.com/interlynk-io/sbomqs) ![GitHub all releases](https://img.shields.io/github/downloads/interlynk-io/sbomqs/total) **sbomqs** 是业界领先的工具,用于评估 SBOM 质量、确保合规性以及管理您的软件供应链安全。从质量评分到合规验证,从组件分析到漏洞追踪——sbomqs 为您高效处理 SBOM 提供了所需的一切功能。 ## Interlynk 免费版 — 完整的 SBOM 合规性,零阻力 在两分钟内开始您的 SBOM 合规之旅——无需信用卡,没有时间限制。Interlynk 的免费计划包含引导式设置,您可以选择您的合规标准(CRA/EU、FDA 网络安全、NTIA 或电信),上传您的 SBOM,即可立即查看您的合规评分以及突出的可操作差距。您将获得针对单一标准的合规评分、最多 5 个产品(每个产品 5 个版本)、无限制用户、内置漏洞检测、用于 CI/CD 集成的 API 访问权限、每周合规摘要,以及 ShareLynk(一个用于与客户和合作伙伴分享您合规状况的公开链接)。免费版之外的所有内容均提供清晰的升级路径,您可以随时开始 15 天的企业版试用,以解锁无限产品、SBOM 自动化、RBAC、分析、许可证管理和工作流集成功能。[**免费开始 →**](https://app.interlynk.io) 📊 只需一键,即可直接从您的浏览器**即时检查您的 SBOM 合规性**: ## 快速开始 ``` # 通过 Homebrew 安装 brew tap interlynk-io/interlynk brew install sbomqs # 获取你的首个 quality score sbomqs score your-sbom.json ``` 📚 **[完整入门指南](docs/getting-started.md)** - 适用于所有平台的安装及基本用法 ## 为什么选择 sbomqs? 在当今的软件环境中,理解和管理您的软件供应链至关重要。无论您是处于需要遵守 FDA 要求的医疗行业、遵循 NHTSA 指南的汽车行业,还是任何受监管的行业,sbomqs 都能帮助您: - **即时评估 SBOM 质量** - 了解您的 SBOM 是否符合质量标准 - **确保合规性** - 根据 BSI、NTIA、FSCT 及行业标准进行验证 - **发现漏洞** - 识别缺少安全标识符的组件 - **自动化工作流** - 轻松集成到 CI/CD 管道中 - **分享结果** - 生成可共享的报告和质量评分 - **作为库使用** - 以编程方式将 sbomqs 集成到您的软件中 ## 核心特性 ✅ **多标准支持**: SPDX, CycloneDX ✅ **合规性验证**: BSI TR-03183-2 (v2.1.0, v2.0 & v1.1), FSCT v3, OpenChain Telco, NTIA ✅ **质量评分**: 0-10 分制并带有详细明细 ✅ **组件分析**: 列出、过滤和分析 SBOM 组件 ✅ **集成就绪**: Docker, CI/CD, Dependency-Track, GitHub Actions ✅ **可共享报告**: 生成公开的质量评分链接 ✅ **离线环境支持**: 可在隔离环境中工作 ## 文档 📚 **[入门指南](docs/getting-started.md)** - 安装和基本用法 ### 📖 命令参考 - **[score](docs/commands/score.md)** - 计算 SBOM 质量评分 - **[compliance](docs/commands/compliance.md)** - 检查法规合规性 - **[list](docs/commands/list.md)** - 列出和过滤组件 - **[share](docs/commands/share.md)** - 生成可共享的报告 - **[dtrackScore](docs/commands/dtrack.md)** - Dependency-Track 集成 - **[generate](docs/commands/generate.md)** - 生成配置文件 - **[version](docs/commands/version.md)** - 版本信息 ### 🎯 指南 - **[自定义](docs/guides/customization.md)** - 创建自定义评分配置文件 - **[集成](docs/guides/integrations.md)** - CI/CD 和工具集成 - **[策略](docs/guides/policy.md)** - 策略执行与验证 ### 📋 参考 - **[质量检查](docs/reference/quality-checks.md)** - 所有评分标准详解 - **[合规标准](docs/reference/compliance-standards.md)** - BSI, NTIA, FSCT 映射 ## 基本示例 ### 检查 SBOM 质量 ``` # 获取 quality score (0-10) sbomqs score -b my-app.spdx.json # 查看详细细分 sbomqs score my-app.spdx.json # 检查特定类别 sbomqs score my-app.spdx.json --category integrity # 检查特定 profile sbomqs score my-app.spdx.json --category NTIA-minimum-elements --profile ntia ``` ### 验证合规性 ``` # BSI TR-03183-2 v2.0 sbomqs compliance --bsi-v2 my-app.spdx.json # FSCT v3 sbomqs compliance --fsct my-app.spdx.json # OpenChain Telco sbomqs compliance --oct my-app.spdx.json ``` ### 查找缺失数据 ``` # 没有版本的 Components sbomqs list my-app.spdx.json --feature comp_with_version --missing # 没有供应商的 Components sbomqs list my-app.spdx.json --feature comp_with_supplier --missing # 显示所有 components 的实际供应商值 sbomqs list my-app.spdx.json --feature comp_supplier --show # 检查 compliance profile 字段(例如 BSI v2.1 deployable hash) sbomqs list --profile bsiv21 --feature comp_deployable_hash --missing my-app.cdx.json # 浏览 profile 支持的所有功能 sbomqs features --profile ntia ``` ### 分享结果 ``` # 生成可共享链接(不上传 SBOM 内容) sbomqs share my-app.spdx.json ``` ### 将 sbomqs 集成到您的软件中 ``` package main import ( "context" "fmt" "github.com/interlynk-io/sbomqs/v2/pkg/scorer/v2/config" "github.com/interlynk-io/sbomqs/v2/pkg/scorer/v2/score" ) func main() { cfg := config.Config{} // make sure current dir has sbom file: `sbom.cdx.json` paths := []string{"sbom.cdx.json"} results, err := score.ScoreSBOM(context.Background(), cfg, paths) if err != nil { log.Fatalf("scoring failed: %v", err) } for _, r := range results { // Comprehensive result is the default evaluation if r.Comprehensive != nil { fmt.Printf("Interlynk score: %.2f Grade: %s\n", r.Comprehensive.InterlynkScore, r.Comprehensive.Grade) } } ``` 获取更多示例,请参考这里: ## 行业用例 - **医疗与医疗器械**: 满足医疗器械申报的 FDA SBOM 要求 - **汽车**: 遵守 NHTSA 关于车辆软件的网络安全指南 - **金融服务**: 支持 DORA 和 PCI DSS 软件透明度要求 - **电信**: 通过 OpenChain Telco 确保关键基础设施安全 - **企业软件**: 通过全面的质量指标管理供应链风险 ## 贡献 我们欢迎您的贡献!以下是开始步骤: 1. Fork 该仓库 2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交您的更改 (`git commit -sam 'Add amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 发起一个 Pull Request 请确保: - 所有提交均已签名 - 测试通过 (`make test`) - 代码遵循我们的风格指南 (`make lint`) 📖 [贡献指南](./CONTRIBUTING.md) ## 社区认可 sbomqs 在业界已被广泛采用,用于 SBOM 质量评估和合规性验证: ## 📚 学术研究与出版物 ### 使用 sbomqs 的同行评审论文 1. **Soeiro, L., Robert, T., & Zacchiroli, S. (2025)** *Wild SBOMs: a Large-scale Dataset of Software Bills of Materials from Public Code* 22nd IEEE/ACM International Conference on Mining Software Repositories (MSR 2025) **DOI:** [arXiv:2503.15021](https://arxiv.org/abs/2503.15021) **Usage:** 在来自 9400 万个 GitHub 仓库的大规模数据集中,使用 sbomqs 为超过 78,000 个 SBOM 计算质量评分。 2. **Novikov, O., Fucci, D., Adamov, O., & Mendez, D. (2025)** POLICY-DRIVEN SOFTWARE BILL OF MATERIALS ON GITHUB: AN EMPIRICAL STUDY arXiv preprint **DOI:** [arXiv:2509.01255](https://arxiv.org/abs/2509.01255) **Usage:** 使用 sbomqs 评估在 GitHub 上发现的 620 个策略驱动的 SBOM 的质量,基于结构和语义完整性计算质量评分。 ### 白皮书与技术文档 2. **SBOM 生成白皮书 (2025)** *SBOM 社区,2025 年 2 月* **引用:** 将 sbomqs 列为“SBOM 生态系统中的相关工具”,并强调其展示了 SBOM 质量评估的最佳实践。 3. **OpenChain Telco SBOM 指南 v1.1 (2025)** *OpenChain 项目* **URL:** [OpenChain 项目](https://openchainproject.org/) **Usage:** 将 sbomqs 引用为管理复杂软件供应链的电信运营商的推荐工具,特别是因其具备跨多种格式验证 SBOM 的能力。 ### 主要平台与公司 ### 1. **Harness 软件供应链保障 (SSCA)** - **公司:** Harness Inc. - **使用情况:** 使用 sbomqs 作为支持其 SBOM 质量评分功能的引擎 - **特性:** 为生成的 SBOM 提供 1-10 的质量评分,并具备 SBOM 漂移检测能力 - **参考:** [Harness Developer Hub](https://developer.harness.io/docs/software-supply-chain-assurance/open-source-management/generate-sbom-for-artifacts) - **博客文章:** [Level Up your Zero-day Vulnerability Remediation and SBOM Quality](https://www.harness.io/blog/level-up-your-zero-day-vulnerability-remediation-and-sbom-quality-for-a-more-secure-software-supply-chain) (2025 年 5 月) ### 2. **sbom.sh** - **平台:** [sbom.sh](https://sbom.sh) - **使用情况:** 使用 sbomqs 引擎评估和评分上传的 SBOM - **特性:** 基于元数据完整性、组件覆盖率和规范合规性 (SPDX/CycloneDX) 自动生成质量评分 (1–10),并直接在 Web 界面中显示结果 ### 3. **SBOM 基准平台** - **平台:** [sbombenchmark.dev](https://sbombenchmark.dev/) - **使用情况:** 使用 sbomqs 引擎对 CycloneDX 和 SPDX SBOM 进行评分 - **特性:** 提供可共享的质量报告,无需上传 SBOM ### 4. **Interlynk 平台** - **公司:** Interlynk Inc. - **里程碑:** 社区版已达到 100 家客户,包括四家财富 500 强企业 - **集成:** 在整个平台中集成了 sbomqs 以进行 SBOM 质量评估 ### 5. **SBOMly** - **平台:** [SBOMly](https://sbomly.com/). - **使用情况:** 使用 sbomqs 引擎对 CycloneDX 和 SPDX SBOM 进行评分,以检查 SBOM 的完整性和实用性。 - **特性:** SBOMly 让扫描项目依赖项以查找已知漏洞变得简单。它使用 Syft 生成 SBOM,然后使用 Grype 和 OSV-Scanner 对其进行漏洞扫描,以实现全面覆盖,并提供详细的报告,显示所有组件、漏洞、严重性级别以及可用于修复问题的命令。 ### CI/CD 与包管理器支持 - 通过 Docker 支持的 GitHub Actions (`ghcr.io/interlynk-io/sbomqs`) - Homebrew (`brew install sbomqs`) - Go 模块 (`go install`) - Docker Hub 与 GitHub Container Registry - Uniget 工具仓库 ### 合规标准 受信赖用于验证以下标准的合规性: - NTIA 最低要素 - BSI TR-03183-2 (v1.1 & v2.0) - OpenChain Telco (OCT) - 软件组件透明度框架 (FSCT v3) ## 其他 SBOM 开源工具 Interlynk 提供了一套全面的 SBOM 工具: - [**SBOM Assembler**](https://github.com/interlynk-io/sbomasm) - 完整的 SBOM 工具包(合并/丰富/签名和编辑) - [**SBOM Explorer**](https://github.com/interlynk-io/sbomex) - 从公共仓库搜索和下载 - [**SBOM Search Tool**](https://github.com/interlynk-io/sbomgr) - 上下文感知的仓库搜索 - [**SBOM Seamless Transfer**](https://github.com/interlynk-io/sbommv) - 在系统之间传输 - [**SBOM Benchmark**](https://www.sbombenchmark.dev) - SBOM 质量评分仓库 ## 博客文章 - [sbomqs 与 SBOM 策略](https://sbom-insights.dev/posts/sbomqs-and-sbom-policies-turning-transparency-into-action/) - [sbomqs 评分支持 BSI-1.1 和 BSI-2.0](https://sbom-insights.dev/posts/sbomqs-scoring-support-for-bsi-1.1-and-bsi-2.0-in-a-summarized-way/) - [你的 SBOM 中缺失了什么](https://sbom-insights.dev/posts/whats-missing-in-your-sbom-sbomqs-list-can-help-you-in-inspecting.../) ## 联系我们 - ❓ [社区 Slack](https://join.slack.com/t/sbomqa/shared_invite/zt-2jzq1ttgy-4IGzOYBEtHwJdMyYj~BACA) - 💬 [在线聊天](https://www.interlynk.io/#hs-chat-open) - 📧 [电子邮件](mailto:hello@interlynk.io) - 🐛 [GitHub Issues](https://github.com/interlynk-io/sbomqs/issues) - 🐦 [在 X 上关注我们](https://twitter.com/InterlynkIo)
标签:API, CRA/EU, DevSecOps, EVTX分析, FDA网络安全, Go语言, NTIA, OpenSSF, SBOM, 上游代理, 安全合规, 安全管理, 安全质量评分, 日志审计, 硬件无关, 程序破解, 组件分析, 网络代理, 自动化评估, 许可证管理, 请求拦截, 跌倒检测, 软件物料清单