漏洞响应
漏洞被报或发现时的端到端流程 — 从分诊到修复到披露。
为什么
漏洞报告是定时炸弹 — 每小时未修是攻击者可利用的一小时,且若你处理不当(忽略报告、静默修、补丁前披露)你使更糟。定义的响应流程把恐慌变清单:24 小时内确认、分诊严重度、私分支开发修复、与报告者协调披露、发补丁、然后发 CVE/公告。流程还防两失败模式:忽略报告(漏洞坐数月直到有人利用)和恐慌(仓促修复坏生产造更大事 件)。排练过的流程是使中位响应时间 2 天而非 2 月的方式。
何时使用
漏洞被报(security@、Huntr、GitHub Security Advisory)或内部发现时。
如何做
1. 24 小时内确认报告(自动回复 + 48 小时内人工跟进) 2. 分诊:确认真漏洞、赋严重度(CVSS)、定影响版本 + 利用条件 3. 私分支开发修复(security/vuln-<id>);就绪前勿推 main 4. 写复现漏洞的回归测试,然后修到测试过 5. 与报告者协调披露:定披露日期(通常 90 天,或被利用时更早) 6. 作为补丁发布到所有影响版本(当前 + 活跃 LTS) 7. 发安全公告(GHSA/CVE)含:描述、影响版本、修复版本、CVSS、变通 8. 复盘:如何发现、能否更早抓(模糊测试、SAST、依赖审计)?
示例
# 漏洞响应(GitHub Security Advisory) # 1. 确认(自动 + 人工) # security@ 自动回复:"已收,48 小时内分诊。参考:VULN-2024-042" # 2. 分诊(私有公告) # .github/advisories/vuln-2024-042.yml summary: "merge() 原型污染" severity: high # CVSS 7.5 affected: ">=1.0.0 <1.2.3" cvss: 7.5 # 3. 私分支修 git checkout -b security/vuln-2024-042 # 加回归测试,修,提交 git commit -m "fix(security): 防 merge() 原型污染 [VULN-2024-042]" # 4. 协调披露(邮件报告者) "我们计划 2024-04-15 发公告(90 天窗口)。 补丁将在 v1.2.3。可否?" # 5. 发 + 披露 git tag v1.2.3 # 补丁发布 # 发 GHSA + CVE-2024-12345 # 公告:https://github.com/ez4code/app/security/advisories/GHSA-xxxx
常见问题
- ⚠因报告来自未知研究者而忽略 — 多数真漏洞是你从未听过的研究者发现。
- ⚠静默修无披露 — 漏洞补了但用户不知升故留脆弱。
- ⚠补丁前披露 — 你给攻击者利用而用户无防御。
最佳实践
- ✓24 小时内确认每报告并 48 小时内分诊 — 沉默是保证最坏结果的响应。
- ✓与报告者用协调披露(90 天窗口)— 这在告知攻击者前修用户。
- ✓每修漏洞发安全公告 — 用户不知修复存在则无法升。