漏洞情报源:你的补丁优先级决策从哪里来?
做漏洞优先级评估,第一步不是分析漏洞,而是搞清楚情报从哪来。我见过不少团队,上来就盯着CVE编号看,结果被一堆低危漏洞淹没了。说白了,情报源的质量,直接决定了你的优先级排序靠不靠谱。
今天咱们就把主流的情报源捋一遍。每个源都有自己的脾气,有的快但粗,有的慢但准。你得知道什么时候信谁。
NVD:美国国家漏洞数据库,行业标杆
NVD(National Vulnerability Database)是NIST维护的官方库。它给每个CVE打上CVSS分数、影响评分、攻击向量这些标签。我个人习惯把它当“基准线”——所有漏洞的起点。
核心价值:标准化、结构化、可自动化。NVD的JSON Feed每天更新,适合批量拉取做分析。
但NVD有个硬伤:更新慢。一个CVE公开后,NVD可能要等几天甚至几周才出CVSS分。我在项目中遇到过,某0day已经爆出在野利用,NVD上还是“Awaiting Analysis”。这时候你死等NVD,黄花菜都凉了。
| 维度 | NVD |
|---|---|
| 数据来源 | CVE编号 + 厂商提交 |
| 评分体系 | CVSS v3.1 / v4.0 |
| 更新速度 | 中等(1-14天) |
| 适合场景 | 基线分析、合规审计 |
CNNVD与CNVD:国内的情报双保险
CNNVD(中国国家漏洞数据库)和CNVD(国家信息安全漏洞共享平台)是国内两个核心源。它们跟NVD最大的区别是:更关注国内厂商和行业。
CNNVD由信息安全测评中心运营,偏向政府、央企场景。CNVD由CNCERT运营,更侧重互联网和关键基础设施。我建议你两个都接,因为它们的覆盖范围有互补。
我的经验:CNNVD对国产软件(如麒麟、统信、WPS)的漏洞收录比NVD快很多。如果你有国产化系统,CNNVD必须优先看。
CNVD还有一个特色:它会给漏洞打“危害等级”标签(高、中、低),这个等级跟CVSS不一定完全对应。我曾经遇到一个CVSS 7.5的漏洞,CNVD标了“高”,但实际利用条件极其苛刻。所以别只看分数,要结合上下文。
Exploit-DB:看PoC,别只看描述
Exploit-DB是Offensive Security维护的漏洞利用代码库。它不只是一个数据库,更是一个“武器库”。
为什么我把它放在情报源里?因为一个漏洞有没有公开的PoC(概念验证代码),直接决定了它的威胁等级。你想想看,一个CVSS 9.8的漏洞,如果全世界都没有PoC,那它只是理论风险。但一个CVSS 6.5的漏洞,如果Exploit-DB上已经有现成的Python脚本,那它才是真正的“定时炸弹”。
避坑指南:我曾经在应急响应中,看到团队把CVSS 9.0的漏洞排第一,结果发现Exploit-DB上根本没有PoC,而一个CVSS 7.5的漏洞已经被多个APT组织用了。优先级排序,PoC存在性比CVSS分数重要得多。
Exploit-DB的数据结构很简单:CVE编号、漏洞类型、平台、PoC代码。你可以用它的API或直接爬取。我个人习惯每天拉一次,跟NVD做交叉比对。
GitHub Advisory:开源生态的“哨兵”
GitHub Advisory Database是GitHub官方维护的漏洞库,主要覆盖GitHub上托管的开源项目。它的特点是:跟代码仓库深度绑定。
比如一个npm包出了漏洞,GitHub Advisory会直接告诉你影响版本范围、修复版本、甚至自动生成Dependabot告警。这对做开源组件治理的人来说,简直是神器。
| 特性 | GitHub Advisory |
|---|---|
| 覆盖范围 | GitHub开源项目(npm、PyPI、Maven等) |
| 更新速度 | 快(通常CVE公开后24小时内) |
| 独特价值 | 自动关联仓库、版本范围、修复PR |
但要注意:GitHub Advisory只覆盖GitHub上的项目。如果你用私有仓库或自建GitLab,它就不灵了。另外,它有时会漏掉一些非主流语言的漏洞。
各大厂商安全公告:第一手情报
微软、Google、Apple、Oracle、Adobe……这些大厂都有自己的安全公告页面。它们通常是漏洞信息的“首发地”。
为什么?因为很多CVE编号是厂商自己申请的。在NVD还没更新的时候,厂商的公告已经写清楚了:影响版本、修复补丁、临时缓解措施。
我举个例子:微软的Security Response Center(MSRC)每个月发布一次安全更新汇总。如果你只等NVD,可能比MSRC晚一周。这一周里,攻击者可能已经逆向出补丁差异,写出利用代码了。
我的建议:把主流厂商的RSS/Atom Feed都订阅上。每天扫一遍,比等任何第三方数据库都快。
厂商公告的格式不统一。微软用KB编号,Google用Android Security Bulletin,Apple用HT编号。你得自己写解析器,或者用现成的工具做归一化。
情报源整合:一张图看懂
这么多源,怎么串起来?我画了一张图,展示它们之间的关系和优先级。
怎么选?我的实战建议
这么多源,你不可能全接。我建议按以下优先级来:
- 厂商公告:最快,最准。必须订阅你用的所有主流厂商。
- Exploit-DB:判断漏洞是否“可被利用”的关键。每天扫一次。
- GitHub Advisory:如果你用开源组件多,这个比NVD有用。
- NVD:做基线分析和合规审计时用。别用它做实时决策。
- CNNVD / CNVD:国内场景必须接,尤其是国产化环境。
一个小技巧:我习惯用自动化脚本每天凌晨拉取所有源的数据,做一次交叉比对。如果某个漏洞在Exploit-DB上有PoC,但在NVD上还没评分,我会手动标记为“高优先级”。