漏洞披露(CVD)流程与模板
这份文档讲什么
漏洞披露(Coordinated Vulnerability Disclosure,简称 CVD)是指厂商与漏洞报告者协调配合,从漏洞被发现到被修复并公开公告的全过程。
这份文档聚焦漏洞披露环节——不是完整的漏洞处理流程,而是回答三个问题:
- 政策怎么定 — CVD 政策必须包含哪些内容
- 渠道怎么建 — 安全主页、报告模板、保密机制怎么搭
- 公告怎么发 — 安全公告必须写什么、发到哪里、什么情况可以延期
第一部分:CVD 政策要求
以下来自 prEN 40000-1-3 的两条核心条款。
5.3.3 [PRE-2] 协调漏洞披露政策
厂商必须在产品上市前就制定并发布 CVD 政策。
| 编号 | 类型 | 要求 | 你需要做什么 |
|---|---|---|---|
| PRE-2-RQ-01 | 强制 | 制定 CVD 政策,以可访问格式发布,并遵守 | 写一份 CVD 政策文件,放到官网上所有人都能看到的地方 |
| PRE-2-RQ-02 | 强制 | 政策中包含一种或多种联系方式 | 至少提供邮箱,建议同时提供电话、Web 表单 |
| PRE-2-RQ-03 | 强制 | 政策中说明持续沟通的期望 | 写清楚:确认时限、状态更新频率、与报告者和用户的沟通方式 |
| PRE-2-RC-01 | 建议 | 联系方式提供多种感官渠道 | 不要只有邮箱,加上电话 |
| PRE-2-RC-02 | 建议 | 政策包含:报告内容要求、安全通信选项、范围、发布方式、致谢 | 参考 EN ISO/IEC 29147:2020 9.3 节 |
| PRE-2-RC-03 | 建议 | 建立披露策略,确保漏洞信息在修复前不被提前披露 | 定义 embargo 期限(禁公开期),参考 ISO/IEC 29147:2020 5.6.8 |
5.7.3 [RLS-2] 漏洞信息发布
漏洞修复后,厂商必须按 CVD 政策发布漏洞公告。
| 编号 | 类型 | 要求 | 你需要做什么 |
|---|---|---|---|
| RLS-2-RQ-01 | 强制 | 按 CVD 政策发布已修复漏洞信息,可汇总或聚合 | 按你自己定的 CVD 政策走,多个漏洞可以合并成一份公告 |
| RLS-2-RQ-02 | 强制 | 公告至少包含 7 项内容(见下方清单) | 用安全公告模板(本文第三部分)确保不漏项 |
| RLS-2-RQ-03 | 强制 | 已修复漏洞信息以人类可读格式提供 | HTML/PDF 网页形式,不要只给 JSON |
| RLS-2-RQ-03-RE | 强制 | 已修复漏洞信息以机器可读格式提供 | 用 CSAF(ISO/IEC 20153:2025)格式,与机器可读公告要求一致 |
| RLS-2-PM-01 | 允许 | 满足三个条件时可延迟完整发布 | 见下方「延期发布条件」 |
| RLS-2-RC-01 | 建议 | 漏洞信息发布到欧盟漏洞数据库(EUVD) | 通过 CVE 程序发布会自动同步到 EUVD |
公告必含的 7 项内容
① 漏洞描述 — 这个漏洞是什么
② 漏洞标识符 — CVE 编号或内部编号
③ 受影响产品信息 — 产品名称、型号、版本
④ 潜在影响 — 攻击者能干什么
⑤ 严重程度 — CVSS 评分
⑥ 修复方案 — 升级到哪个版本、怎么升级
⑦ 发布日期和更新日期 — 什么时候发的、什么时候改的
延期发布条件(三个条件全部满足才可延期)
✅ 条件1:评估确定完全发布的安全风险 > 安全收益
✅ 条件2:已向用户提供漏洞信息,但攻击者无法利用该信息
✅ 条件3:已告知用户所有漏洞信息的公开披露日期
典型场景:漏洞修复补丁还在推送中,提前公开漏洞细节会让未更新的设备暴露在攻击下。此时可以先发一个「有漏洞、请尽快升级」的简短通知,等补丁推送率达标后再发完整公告。
第二部分:漏洞披露渠道建设
CVD 政策定好了,接下来要把配套基础设施搭起来。需要四样东西:
┌─────────────────────────────────────────────┐
│ 漏洞披露渠道 │
│ │
│ 1. 安全主页 → 用户和报告者第一入口 │
│ 2. 报告渠道 → 邮箱 + 电话 + PGP密钥 │
│ 3. 漏洞报告模板 → 标准化收集信息 │
│ 4. 安全公告页面 → 发布修复信息 │
└─────────────────────────────────────────────┘
1. 安全主页应该包含什么
安全主页是官网上的一个页面,对外说明厂商的安全承诺和漏洞处理方式。
必须包含的信息:
| 模块 | 内容 | 对应法规 |
|---|---|---|
| 安全承诺 | 产品至少提供 X 年安全更新支持(从发布日起算) | Annex II 支持期 |
| 漏洞上报入口 | 邮箱地址 + 电话(建议)+ PGP 公钥 | PRE-2-RQ-02 |
| 处理流程说明 | 简要描述漏洞从报告到修复到发布的流程 | PRE-2-RQ-03 |
| 安全公告入口 | 链接到安全公告列表页 | RLS-2-RQ-01 |
| 响应范围 | 说明哪些产品在覆盖范围内(硬件、软件、固件、云平台、App 等) | PRE-2-RQ-01 |
我们为产品提供至少 3 年的安全更新支持(从发布日起算)。对于特定型号,可能提供更长时间的支持。如果发现非常严重的安全漏洞,即使设备安全生命周期已结束,我们仍可能提供必要的安全修复。 > 我们欢迎任何人报告安全问题——安全研究人员、开发者、客户。 > 漏洞报告入口:[邮箱地址] PGP 公钥:[下载链接] 安全公告:[公告列表链接]
2. 报告渠道与保密机制
| 项目 | 要求 | 注意事项 |
|---|---|---|
| 邮箱 | 专用安全邮箱,如 security@[company].com | 不要用客服邮箱兼做安全报告 |
| 电话 | 可选,建议提供多国/地区服务电话 | PRE-2-RC-01 建议多感官渠道 |
| PGP 公钥 | 安全通信要求,提供 PGP 公钥供报告者加密 | 漏洞信息敏感,加密传输是基本要求 |
| 确认时限 | 24 小时内回复确认邮件 | 写进 CVD 政策,形成承诺 |
| 状态更新 | 定期告知报告者处理进展 | PRE-2-RQ-03 持续沟通要求 |
| 信息管控 | 漏洞信息仅在处理相关人员间传递 | 内部保密纪律 |
| 报告者保密 | 请求报告者在用户获得修复方案前保密 | 写进 CVD 政策和报告模板 |
3. 漏洞报告模板
提供一个标准化模板,让报告者按结构提交信息,减少来回沟通。
模板结构:
| 部分 | 字段 | 是否必填 | 说明 |
|---|---|---|---|
| 1. 报告者信息 | 姓名/组织名 | 可选 | — |
| 联系方式 | 可选 | 建议留下方便后续沟通 | |
| 2. 漏洞信息 | 受影响产品/组件 | 必填 | 产品名称、型号、固件版本 |
| 漏洞简要描述 | 必填 | 漏洞类型 + 成功利用的潜在影响 | |
| 漏洞技术细节 | 必填 | 详细描述 + 复现步骤 + PoC(如有) | |
| 漏洞利用场景 | 必填 | 攻击前提条件、触发限制、是否需要与受害者交互 | |
| 修复建议 | 可选 | 修复方法、行业最佳实践、临时缓解(如 IPS/WAF 规则) | |
| 3. 漏洞披露 | 是否计划公开讨论 | 必填 | YES/NO(会议演讲、技术文章等) |
| 是否允许致谢 | 必填 | YES → 提供致谢名称/昵称 | |
| 4. 其他 | 补充信息 | 可选 | 任何以上未覆盖的必要信息 |
第三部分:安全公告模板
漏洞修复后发布的安全公告,必须包含法规要求的 7 项内容。以下是可直接使用的模板(中英双语)。
模板
Security Advisory [内部编号-YYYY-NNN]
1. 漏洞描述(Description)
[用一段话描述漏洞是什么、怎么触发、能干什么]
2. 漏洞标识符(Identifier)
内部编号:[SA-YYYY-NNN]
CVE编号:CVE-YYYY-XXXX(如已分配)
3. 受影响产品(Affected Products)
┌──────────┬──────────┬──────────────┐
│ 产品名称 │ 型号 │ 受影响版本 │
├──────────┼──────────┼──────────────┤
│ [产品A] │ [型号A] │ ≤ vX.X.X │
│ [产品B] │ [型号B] │ ≤ vX.X.X │
└──────────┴──────────┴──────────────┘
仅运行上述版本的产品受影响。
4. 潜在影响(Impact)
- [影响1:如未授权远程控制]
- [影响2:如用户隐私泄露]
- [影响3:如被用于僵尸网络]
5. 严重程度(Severity)
CVSS v3.1 评分:[X.X]([Critical/High/Medium/Low])
6. 修复方案(Remediation)
✅ 修复版本:
[产品A] → [vX.X.X] 及以上
[产品B] → [vX.X.X] 及以上
✅ 升级方式:
[具体操作步骤]
✅ 临时缓解措施(如无法立即升级):
[如:禁用远程访问、限制网络访问等]
7. 发布日期(Release Date)
[YYYY年MM月DD日]
8. 更新日期(Last Updated)
[YYYY年MM月DD日]
9. 致谢(Acknowledgement)
感谢 [报告者名称/昵称] 提供漏洞报告并进行负责任披露。
10. 联系方式(Contact)
安全问题请联系:[security@example.com]
发到哪里
| 发布渠道 | 格式 | 对应法规 |
|---|---|---|
| 官网安全公告页面 | 人类可读(HTML/PDF) | RLS-2-RQ-03 |
| 机器可读公告文件(CSAF) | 机器可读(JSON) | RLS-2-RQ-03-RE |
| 欧盟漏洞数据库(EUVD) | 通过 CVE 程序自动同步 | RLS-2-RC-01 |
| 产品内推送通知(如有) | 人类可读 | Annex II 用户信息 |
第四部分:漏洞披露完整流程图
把政策、渠道、模板串起来,就是一条完整的漏洞披露流程:
┌──────────────────────────┐
│ 上市前:搭建渠道 │
│ │
│ 1. 发布 CVD 政策 │
│ 2. 建安全主页 │
│ 3. 开通报告邮箱+PGP │
│ 4. 准备报告模板 │
│ 5. 准备公告模板 │
└────────────┬─────────────┘
│
▼
┌──────────────────────────────────┐
│ 收到漏洞报告 │
│ (来自研究者/客户/内部发现) │
└──────────────┬───────────────────┘
│
▼
┌──────────────────────────────────┐
│ 24h 内确认收到 │
│ 评估严重程度 → 排优先级 │
└──────────────┬───────────────────┘
│
▼
┌──────────────────────────────────┐
│ 验证 → 修复 → 测试补丁 │
│ (参考 VHP 漏洞处理流程) │
│ 全程与报告者保持状态更新 │
└──────────────┬───────────────────┘
│
▼
┌──────────────────────────────────┐
│ 发布安全公告 │
│ │
│ □ 人读格式(网页+PDF) │
│ □ 机读格式(CSAF JSON) │
│ □ 发布到 EUVD(通过 CVE) │
│ □ 通知受影响用户 │
│ □ 致谢报告者(如同意) │
└──────────────┬───────────────────┘
│
┌─────────┴─────────┐
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ 正常发布 │ │ 延期发布 │
│ (补丁已到位)│ │ (三个条件全满足) │
└──────────────┘ └────────┬─────────┘
│
▼
┌──────────────────┐
│ 补丁推送率达标后 │
│ 发布完整公告 │
└──────────────────┘
第五部分:一页纸速查表
| 环节 | 你要做什么 | 核心交付物 | 法规依据 |
|---|---|---|---|
| 上市前 | 制定 CVD 政策 + 建安全主页 + 开通报告渠道 | CVD 政策文件、安全主页 | PRE-2-RQ-01~03 |
| 收到报告 | 24h 内确认 + 评估严重程度 + 定期状态更新 | 确认邮件、状态更新记录 | PRE-2-RQ-03 |
| 处理中 | 验证+修复+测试,与报告者保持沟通 | 修复补丁 | — |
| 发布公告 | 人读格式 + 机读格式 + EUVD + 致谢 | 安全公告(双格式) | RLS-2-RQ-01~03 |
| 延期发布 | 三个条件全满足 → 先简短通知 → 后完整公告 | 延期评估记录 | RLS-2-PM-01 |
| 上市后 | 持续维护公告页面、更新过期信息 | 公告更新日志 | RLS-2-RC-01 |
第六部分:常见误区
| 误区 | 正确理解 |
|---|---|
| 「CVD 政策写一份内部文件就行」 | 必须以可访问格式公开发布,让外部报告者能找到 |
| 「只有邮箱就够了」 | 法规建议提供多种感官渠道(邮箱+电话) |
| 「漏洞修了就不用发了」 | 必须发布人读和机读两种格式的公告 |
| 「修完立刻公开所有细节」 | 如果补丁还没推送到位,满足三个条件可以延期 |
| 「致谢写不写无所谓」 | 要在报告中问报告者是否同意致谢,征得同意后在公告中致谢 |
| 「安全公告发到官网就行」 | 还应发布到 EUVD(通过 CVE 程序自动同步) |
| 「报告者不需要状态更新」 | CVD 政策必须说明持续沟通的期望,报告者有权知道进展 |
夜雨聆风