PAYATHON 2026

有哪些开源工具可用于 CBOM 生成、密码扫描和可视化报告?

数据小许

可以优先评估 CBOMkit。它提供扫描入口、CBOM 存储、可视化和策略检查,适合验证完整流程。已有 SonarQube 的团队可以评估 sonar-cryptography;需要命令行生成能力时,可以评估 cdxgen;需要补充发现容器镜像和文件系统中的密码资产时,可以加入 cbomkit-theia。选择时要结合使用的语言、密码库和扫描对象。CBOMkit 项目说明

哪些工具值得评估?

工具主要能力适用场景与限制
CBOMkit提供 CBOM 生成入口、Web 可视化、数据库、REST API 和策略检查希望集中管理多个项目的扫描结果;完整套件由多个组件组成
sonar-cryptography分析源代码中的密码 API 使用情况,生成 CycloneDX CBOM,并保留代码位置等证据已使用 SonarQube;需要核对语言、密码库及插件版本兼容性
cbomkit-theia扫描目录和容器镜像中的证书、密钥材料及相关配置,生成或补充 CBOM补充部署产物中的资产发现;承担的职责与源码扫描不同
cdxgen支持通过 CLI 生成包含密码资产信息的 CycloneDX BOM已有 SBOM 流水线,或希望以命令行接入;扫描深度取决于具体生态和分析能力

源码扫描插件的当前文档列出了 Java、Python 和 Go 的支持范围,并按密码库说明覆盖情况。支持某种语言,并不意味着插件能够识别该语言的所有密码实现。sonar-cryptography 文档

Theia 扫描文件系统和镜像,适合发现随部署产物交付的密码材料。cdxgen 提供 --include-crypto 等选项及 CBOM 使用示例。Theia 文档、cdxgen CBOM 文档

扫描和可视化是否必须组合使用?

采用完整的 CBOMkit,可以在同一套应用中发起扫描、查看资产并检查策略结果。也可以只部署独立查看器 CBOMkit-coeus,导入其他工具生成的 CBOM,或根据现有流水线组合组件。CBOMkit 部署与组件说明

需要先明确“报告”的交付形式:网页统计、策略检查结果、JSON 清单和可直接交付审计的 PDF 报告是不同要求。如果需要固定模板、历史差异或审批记录,应逐项验证,不能仅凭工具提供可视化就认定已经满足要求。

如何开始验证?

建议先选一个已知密码使用情况的小项目,建立人工核对清单,再执行扫描。检查算法、参数、调用位置和资产关系是否准确,记录漏报及无法确定的字段。

如果已安装兼容的 SonarQube 和 sonar-cryptography 插件,需要先在项目使用的 Quality Profile 中启用 Cryptographic Inventory (CBOM) 规则。完成项目扫描配置后,可执行:

sonar-scanner -Dsonar.cryptoScanner.cbom=cbom

这个参数用于设置输出文件名,不负责启用资产发现规则。插件文档说明,只有启用对应的 CBOM 规则才会生成 cbom.json。插件使用说明

如果评估 cdxgen,当前开发分支文档给出了以下 Java 示例。执行前需要安装对应工具及项目分析所需的环境,并确认所用发行版支持这些参数:

cdxgen -t java --include-crypto --evidence --deep --spec-version 1.7 .

导入查看器前,应确认查看器支持生成文件的 CycloneDX 版本。开发分支文档可能领先于已安装的发行版。cdxgen 使用说明

有哪些参考架构和实际实现?

PQCA 的 CBOMkit 架构说明提供了公开的组件关系和数据流,可作为实现参考。根据公开组件能力,可以整理出以下接入流程:

源码仓库 → 构建 → 源码扫描 → CBOM
                              ↓
部署镜像或目录 → Theia → 补充后的 CBOM
                              ↓
                   存储 → 可视化 → 策略检查

源码侧可以选择 SonarQube 插件,也可以使用 cbomkit-lib 或 cbomkit-action 接入流水线。Theia 用于补充部署产物中的发现。PQCA 组件架构

落地时,建议将每份 CBOM 与源码提交、构建版本及镜像摘要关联,便于追溯。对于 Java,CBOMkit 项目特别提醒:其服务扫描不会预先构建仓库,缺少构建产物可能影响符号解析和发现准确性。需要更完整的结果时,应评估构建后扫描。CBOMkit 扫描限制

这些资料介绍了公开实现和接入方案,但不足以说明具体企业的生产覆盖率、性能或审计效果。原始问题也没有提供可核实的生产案例。

如何判断结果是否可用于合规工作?

先确认工具发现了什么,再判断是否满足具体要求。CycloneDX 能表达算法、密钥、证书及其关系,但数据模型支持某类资产,不代表每个扫描器都能发现它。CycloneDX CBOM 能力说明

验收时至少检查以下几点:

  • 项目实际使用的语言、密码库和 API 是否在扫描范围内。
  • 结果是否包含足够的定位证据,参数来自直接发现还是推断。
  • 动态配置、外部服务和运行时获取的资产是否需要补充采集。
  • 策略检查规则是否对应自身要求,未知结果如何处理。

JSON 格式或 Schema 校验只能确认文件结构。资产发现是否完整、参数是否正确,仍需结合已知样本、源码和部署配置核对。

备注:内容仅供参考。