漏洞情报源:你的补丁优先级决策从哪里来?

做漏洞优先级评估,第一步不是分析漏洞,而是搞清楚情报从哪来。我见过不少团队,上来就盯着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 PoC存在性验证 GitHub Advisory 开源生态哨兵 NVD 标准化评分基线 CNNVD / CNVD 国内场景覆盖 情报融合与优先级排序 交叉验证 → 去重 → 加权评分 → 输出优先级列表 💡 关键原则: 厂商公告 > Exploit-DB > GitHub Advisory > NVD > CNNVD/CNVD(按时效性排序) 但最终优先级 = 时效性 × 可利用性 × 影响范围 × 业务上下文

怎么选?我的实战建议

这么多源,你不可能全接。我建议按以下优先级来:

  1. 厂商公告:最快,最准。必须订阅你用的所有主流厂商。
  2. Exploit-DB:判断漏洞是否“可被利用”的关键。每天扫一次。
  3. GitHub Advisory:如果你用开源组件多,这个比NVD有用。
  4. NVD:做基线分析和合规审计时用。别用它做实时决策。
  5. CNNVD / CNVD:国内场景必须接,尤其是国产化环境。

一个小技巧:我习惯用自动化脚本每天凌晨拉取所有源的数据,做一次交叉比对。如果某个漏洞在Exploit-DB上有PoC,但在NVD上还没评分,我会手动标记为“高优先级”。