正文SBOM 明确记录构建产物的依赖组成与版本来源,是供应链安全的基础。本文给出在 Node.js 前端项目中生成 CycloneDX 与 SPDX 的标准流程与 CI 集成示例,并说明落地治理要点。
一、本地生成 SBOMnpx cdxgen -o sbom.cdx.json -t npm
npx spdx-sbom-generator -o sbom.spdx.json
二、CI 集成与制品关联name: sbom
on:
push:
branches: [ main ]
jobs:
build-sbom:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm ci
- uses: anchore/sbom-action@v0
with:
format: cyclonedx-json
output-file: sbom.cdx.json
- run: tar -czf dist/app.tar.gz dist/
- uses: actions/upload-artifact@v4
with:
name: release-assets
path: |
sbom.cdx.json
dist/app.tar.gz
三、验证与风险评估jq '.components | length' sbom.cdx.json
jq '.relationships | length' sbom.spdx.json
四、治理要点格式选择:优先 CycloneDX JSON,必要时同时生成 SPDX 以兼容生态工具。版本对齐:SBOM 基于 `npm ci` 的锁文件安装生成,避免依赖漂移。工具链:结合审计与漏洞数据库对 SBOM 进行风险评估并出具报告,输出到发布工单或变更记录。可追溯:将 SBOM 与构建产物一并归档,附加到发布资产以便后续验证与审计。

发表评论 取消回复