概述
SBOM 与软件供应链模块为 ThreatZ 平台提供软件成分分析和漏洞管理。它使汽车网络安全团队能够导入软件物料清单、扫描已知漏洞、跟踪供应商和许可证信息、将组件与车辆架构模型关联,并随时间监控供应链风险。
支持的 SBOM 格式
| 格式 | 变体 | 关键功能 |
|---|---|---|
| CycloneDX | JSON、XML | 组件元数据、外部引用、供应商信息、许可证解析 |
| SPDX v2.3 | JSON | 基于包的组件、声明/结论许可证、创建者跟踪 |
| SPDX v3.0 | JSON | 基于图的格式、元素类型 (SoftwarePackage, CreationInfo)、关系元素 |
格式检测是自动的。平台根据格式特定的模式验证每个文件,并透明地处理 XML 到 JSON 的转换。
核心概念
SBOM 文件
SBOM 文件代表已上传的软件物料清单。每个文件跟踪其格式、版本、供应商和处理状态。文件经历一个定义的生命周期:
草稿 → 扫描中 → 活跃 → 已过时
预览工作流允许用户在提交到数据库之前检查已解析的内容(组件数量、供应商数量)。
SBOM 组件
SBOM 组件是从 SBOM 文件中提取的各个软件包。每个组件包含:
- 名称、版本、Package URL (PURL) 和通用平台枚举 (CPE)
- 供应商引用和许可证信息
- 依赖项数量和依赖风险评级(低/中/高)
- 生命周期状态(已发布、Alpha、Beta、生命周期结束)
- 按严重性分类的漏洞数量(关键、高、中、低)
- 与系统架构组件实例的链接
漏洞
漏洞是与 SBOM 组件关联的已知安全弱点(CVE、GHSA)。每条漏洞记录包括:
- CVE/GHSA 标识符和来源数据库(NVD、GHSA、OSV、CNVD)
- CVSS 基础分数和向量,以及时间 CVSS 分数
- 严重性等级(关键、高、中、低)
- 发布和修改日期
- 受影响和已修复的版本范围
- CISA KEV 状态(活跃利用指标)
- 利用提及次数及最后更新时间戳
- 威胁情报分数及来源分布(论坛、暗网、社交媒体、威胁情报)
计算风险指标
计算风险指标超越原始 CVSS 提供可操作的优先级排序:
- 披露后天数:从漏洞发布日期计算
- 修复可用:是否存在已修补的版本
- 利用可能性:结合 CVSS 分数、披露时间、利用提及次数和 CISA KEV 状态的自适应公式
- 风险预测:已升级/可能升级/稳定 — 基于利用可能性和威胁情报分数趋势
- 数据完整性:指示哪些丰富字段可用于计算准确性
漏洞扫描管道
扫描过程完全异步且事件驱动:
- 上传:用户通过预览端点上传 SBOM。文件被暂存并解析以获取预览统计信息。
- 确认:确认后,组件以草稿状态创建。发布
sbom.uploaded事件。 - 扫描:漏洞扫描微服务消费该事件,创建 Dependency-Track 项目,并提交 BOM 进行分析。
- 导入:扫描完成后,创建包含完整元数据的漏洞记录。组件通过 PURL(主要)或 name@version(备用)进行匹配。
- 激活:组件从草稿转为活跃状态。针对关键/高严重性漏洞发送通知。
CI/CD 集成
SBOM 文件可以通过 API 密钥认证的端点直接从构建管道上传:
POST /external/sbom/projects/:projectId/system-components/:componentId/sw-unit/:swUnitId/sbom
这使得自动化供应链监控成为软件交付流程的一部分。可以按需触发组织范围的重新扫描。
依赖分析
该模块为每个 SBOM 文件构建和存储完整的依赖图。依赖风险基于以下因素计算:
- 总依赖项数量
- 依赖深度
- 通过传递依赖的漏洞传播
依赖图以交互式树状结构可视化,每个节点都有漏洞指示器。
仪表板与分析
SBOM 仪表板提供:
- SBOM 文件列表:所有已上传的 SBOM,带状态指示器和漏洞分布
- 组件清单:可搜索列表,包含漏洞数量、供应商、许可证和生命周期状态
- 依赖图:基于 D3 的交互式组件树可视化
- 漏洞摘要:可筛选列表,包含严重性、利用可能性、风险预测和修复可用性
- 供应商视图:按供应商分组的组件及风险汇总
- 关键指标:总组件数、漏洞分布、修复率、ML 风险评分、CVE 预测(90天预测)、生命周期风险指数
许可证与供应商管理
- 从每个 SBOM 组件中提取和跟踪许可证信息
- 维护供应商注册表及组件关联
- 监控组件生命周期状态以标记生命周期结束的依赖项
- 执行组织级 SBOM 策略(格式要求、自动同步设置)
- 通过结构化许可证数据支持合规工作流