3.3 补丁管理
补丁管理策略
本策略定义了根据 CRA 为含有数字元素的产品提供安全更新的强制性流程。
法律依据
Art. 10(7) CRA: "制造商应确保通过安全更新及时修复漏洞,安全更新应免费提供给用户且不得延迟。"
Annex I, Part II, No. 7: "制造商应及时提供安全更新以修复已识别的漏洞,在技术可行的范围内按照最新技术水平尽快实施。"
补丁分类
| 级别 | 严重程度 | 响应时间 | 补丁期限 | 发布类型 |
|---|---|---|---|---|
| P0 — 紧急 | CRITICAL,正在被积极利用 | 立即 | 24 小时 | 热修复 |
| P1 — 严重 | CRITICAL,未被利用 | 4 小时 | 48 小时 | 热修复 |
| P2 — 高危 | HIGH | 24 小时 | 7 天 | 补丁发布 |
| P3 — 中等 | MEDIUM | 72 小时 | 30 天 | 次版本发布 |
| P4 — 低危 | LOW | 7 天 | 下一次发布 | 计划发布 |
补丁流程
P0/P1:紧急和严重补丁
1. 收到 CVE 告警
+-- CVE 监控、Dependabot、外部报告
2. 分诊(安全负责人)—— 4 小时内
+-- 确认严重程度 (CVSS)
+-- 识别受影响的产品
+-- 评估可利用性
+-- 如正在被积极利用 -> ENISA 早期预警(24 小时)
3. 补丁开发(开发团队)—— 立即开始
+-- 依赖项更新或代码修复
+-- 单元测试 + 集成测试
+-- 安全审查
4. 补丁发布
+-- 创建热修复分支
+-- CI/CD 流水线(加速)
+-- 更新 SBOM
+-- 签名发布 (Cosign)
+-- 发布版本
5. 用户通知
+-- GitHub Security Advisory
+-- 包含 CVE 引用的发布说明
+-- 针对关键客户的直接通知
6. 后续跟进
+-- ENISA 最终报告(如需报告)
+-- 关闭 CVE Issue
+-- 经验教训总结P2/P3:高危和中等补丁
1. 收到 CVE 告警
2. 分诊(安全负责人)—— 24 小时/72 小时内
3. 添加到冲刺待办列表(按优先级排列)
4. 在常规开发周期内进行补丁开发
5. 按发布日历进行补丁发布
6. 更新 SBOMP4:低危补丁
1. 收到 CVE 告警
2. 分诊 —— 7 天内
3. 添加到待办列表
4. 在下一次常规发布中修复自动化
补丁管理的大部分流程已实现自动化:
| 步骤 | 自动化 | 手动 |
|---|---|---|
| CVE 检测 | CVE 监控 + Dependabot | - |
| Issue 创建 | Critical/High 自动创建 Issue | Medium/Low 手动创建 |
| PR 创建 | Dependabot Security PR | 代码修复手动创建 PR |
| CI/CD | 自动化流水线 | - |
| SBOM 生成 | 发布时自动生成 | - |
| 签名 | 发布时自动签名 | - |
| 用户通知 | 发布说明 | P0/P1 的安全通告 |
安全更新——提供义务
根据 Art. 10(7) CRA,安全更新必须:
- 免费提供
- 及时发布
- 通过安全渠道交付(签名,确保完整性)
- 在产品的整个支持期内持续维护
对于基于容器的产品:
- 在 GHCR/Docker Hub 上更新容器镜像
- 签名镜像 (Cosign)
- 更新 SBOM 作为发布资产
对于基于固件的产品:
- 签名固件二进制文件
- OTA 更新(在技术可行的情况下)
- 通过 GitHub Releases 下载