3.1 CVE 监控
流程
CVE 监控每日扫描所有活跃产品的 SBOM 与当前 CVE 数据库进行比对。目标是及早发现已交付产品依赖项中新发布的漏洞。
法律依据
Art. 10(6) CRA: "制造商应建立有效且定期的程序和机制,以识别含有数字元素的产品中的漏洞。"
Annex I, Part II, No. 5: "制造商应主动监控产品中包含的第三方漏洞。"
工作流设计
触发器
yaml
on:
schedule:
- cron: '0 6 * * *' # 每日 UTC 06:00
workflow_dispatch: # 手动触发执行序列
1. 加载活跃产品版本的 SBOM
+-- 来源:合规仓库 (sbom/) 或 GitHub 发布资产
2. 将每个 SBOM 与当前 CVE 数据库进行扫描
+-- trivy sbom sbom.cdx.json --severity CRITICAL,HIGH
+-- grype sbom:sbom.cdx.json --only-fixed --fail-on high
3. 解析结果
+-- 按严重程度过滤 (CRITICAL, HIGH)
+-- 提取:CVE ID、软件包、版本、修复版本
+-- 检查重复项(已报告的 CVE)
4. 发现新问题时:
+-- 创建 GitHub Issue
| +-- 标题:"[CVE-YYYY-XXXXX] <软件包> – <严重程度>"
| +-- 标签:security, cve, <severity>
| +-- 正文:CVE 详情、受影响的产品、修复版本
| +-- 受理人:安全负责人
+-- Teams 通知(针对 CRITICAL)
+-- 如正在被积极利用 -> 触发 ENISA 报告流程
5. 归档扫描报告
+-- 作为 GitHub Actions 制品(90 天)工作流规范
yaml
name: CVE Monitor
on:
schedule:
- cron: '0 6 * * *'
workflow_dispatch:
inputs:
severity:
description: 'Minimum severity to report'
default: 'HIGH'
type: choice
options: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW']
jobs:
scan-sboms:
runs-on: ubuntu-latest
strategy:
matrix:
product: [product-a, product-b, firmware-esp32]
steps:
- name: Checkout Compliance Repo
uses: actions/checkout@v4
- name: Get Latest SBOM
run: |
SBOM=$(ls -t sbom/${{ matrix.product }}/sbom-*.cdx.json | head -1)
echo "SBOM_PATH=$SBOM" >> $GITHUB_ENV
- name: Trivy SBOM Scan
uses: aquasecurity/trivy-action@master
with:
input: ${{ env.SBOM_PATH }}
scan-type: sbom
severity: CRITICAL,HIGH
format: json
output: trivy-results.json
- name: Create Issues for New CVEs
uses: actions/github-script@v7
with:
script: |
const results = require('./trivy-results.json');
// Create issue for each new CVE
// Check for duplicates via existing issuesCVE 数据库
| 数据库 | 工具 | 覆盖范围 |
|---|---|---|
| NVD (NIST) | Trivy, Grype | 全面——所有 CVE |
| GitHub Advisory DB | Dependabot | 语言特定 |
| OSV (Open Source Vulnerability) | Trivy | 开源聚焦 |
| Red Hat Security Data | Trivy | Linux 软件包 |
| Alpine SecDB | Trivy | Alpine 软件包 |
Issue 模板
markdown
## CVE-[YYYY-XXXXX]: [软件包名称] – [严重程度]
**严重程度:** CRITICAL / HIGH
**CVSS 评分:** X.X
**受影响:** [产品名称] v[版本]
### 详情
- **软件包:** [name]@[version]
- **修复版本:** [fixed-version]
- **CVE:** https://nvd.nist.gov/vuln/detail/CVE-YYYY-XXXXX
- **描述:** [CVE 描述]
### 受影响的产品
| 产品 | 版本 | SBOM |
|------|------|------|
| [名称] | [版本] | [链接] |
### 建议操作
- [ ] 将软件包更新到版本 [fixed-version]
- [ ] 测试补丁
- [ ] 创建发布
- [ ] 更新 SBOM
- [ ] 检查:该 CVE 是否正在被积极利用?-> [ENISA 报告流程](/zh/incident-response/enisa-reporting)
### 分类
- **正在被积极利用:** 是 / 否 / 未知
- **ENISA 报告义务:** 是 / 否CVE 处理 SLA
| 严重程度 | 响应时间 | 补丁期限 | 参考 |
|---|---|---|---|
| CRITICAL | 4 小时 | 48 小时 | Annex I, Part II, No. 7 |
| HIGH | 24 小时 | 7 天 | Annex I, Part II, No. 7 |
| MEDIUM | 72 小时 | 30 天 | 最佳实践 |
| LOW | 7 天 | 下一次发布 | 最佳实践 |