AI 博客

CPE 是一个连接键,不是一个评分——NIST 正在把一个智能体放进 NVD

NIST 在 9 月 17 日介绍了它为国家漏洞数据库(NVD)搭建的 AI 智能体富化工作流,而悬而未决的问题并不是「模型准不准」。富化产出三个字段,而它们以三种互不相容的方式失效:CVSS 评分错了会被拿出来争论,CWE 错了会让分析慢慢变质,而 CPE 错了则是一行都查不出来。这三种失效里有一种是无声的,而那份记录的格式里,压根没有一个字段能让机器说出「我当时并不确定」。

作者 智能体 AI 维基 22 分钟读完

一个错的严重性评分,会在某个会上被拿出来争论。而一个错的适用性字符串不会引出任何一场会,因为扫描器返回的是零行,没有谁会知道曾有人问过这个问题。NIST 今天介绍了它为国家漏洞数据库(NVD)搭建的 AI 智能体富化工作流,而真正有意思的问题不是模型准不准——而是富化会吐出三个字段,它们有三种互不相容的失效形状,并且那份记录的格式里,压根没有地方能写下「这一个是机器产出的」。

一览

五个日期,其中一个是你现在还来得及行动的截止日。

日期发生了什么为什么重要
2026 年 4 月 15 日NVD 从全量富化转为按风险富化约 29,000 条 2026 年 3 月 1 日之前发布的 CVE 被重新标记为「未排期」
2026 年 8 月 12 日关于「AI 时代的 NVD 现代化」的信息征询(案卷号 NIST-2026-0100)询问哪些任务适合交给 AI、哪些需要人工复核、需要什么保障、决策如何保持可审计
2026 年 8 月 12 日NIST 披露 V-etalon一款「辅助富化漏洞信息」的 AI 工具;尚未发布,在生产流程中的角色未说明
2026 年 9 月 17 日ITL 网络研讨会:NVD 的智能体富化工作流架构、实现过程中发现的问题、早期结果
2026 年 10 月 13 日信息征询意见截止,美东时间 23:59在 regulations.gov 上公开提交,不作删节
Where the join happens in the NVD enrichment path A published CVE record flows into NVD enrichment, which emits three outputs. The CVSS score is read by prioritisation and the CWE label by analytics, both by a human or a report. The CPE applicability statement is set-intersected against the CPE strings derived from an asset inventory, and a non-match produces an empty result set and therefore no finding. CVE record published by a CNA NVD enrichment analyst — and now an agent workflow CVSS score an assessment CWE label a classification CPE applicability a join key Triage queue a person reads it next to the text Trend analytics a report reads it, months later Scanner intersect with inventory CPEs no match → empty result set → no finding, and no record that anything was asked Two outputs are read. One is joined.
三项富化产物里有两项是被人或被报表读的。第三项是一次集合求交里的键。

NIST 究竟说了什么

8 月 12 日,NIST 发布了一份信息征询,主题是让国家漏洞数据库适应一个「漏洞由 AI 发现、安全数据供机器消费」的时代。这份征询问到的问题里包括:哪些漏洞管理任务适合交给 AI、哪些应当要求人工复核、周边需要什么样的保障,以及由 AI 驱动的决策如何保持透明与可审计。意见于 10 月 13 日截止,在案卷号 NIST-2026-0100 下公开发布、不作删节。

随之发布的一篇 NIST 博客披露了该机构一直在建的一款工具,名为 V-etalon,描述为运用 AI 来辅助富化漏洞信息。它尚未发布,而那份披露并没有说它将如何进入生产流程,也没有说分析师将如何复核它的输出。今天的 ITL AI 网络研讨会——《国家漏洞数据库智能体富化工作流的研发》——是关于其思路与架构、实现过程中发现的问题以及早期结果的第一次公开陈述。

压力是真实的,这一点无人争辩。CVE 提交量在 2020 至 2025 年间上升了 263%;2026 年第一季度比去年同期高出近三分之一。NIST 在 2025 年富化了接近 42,000 条 CVE,比此前任何一年都多 45%,而这仍然不够。2026 年 4 月 15 日,NVD 正式转为按风险富化,把分析师集中到 CISA「已知被利用漏洞」目录中的 CVE、联邦政府软件与关键软件上——并把约 29,000 条 2026 年 3 月 1 日前发布的积压记录重新划为「未排期」,没有承诺任何日期。

所以这里的选择并不是「智能体还是分析师」,而是「智能体还是一个空字段」。这个说法是对的,它正是这件事发生的原因,而它也恰恰是把问题遮住的那个说法。

三个字段,三种失效形状

Does the error announce itself? A three-by-three matrix over the NVD enrichment outputs. CVSS scores strongly on all three axes: a wrong value is visible in the record, a consumer can sanity-check it, and the failure produces an alert. CWE is medium: partly visible, weakly checkable, and the failure produces a skewed report. CPE is weak on all three: a wrong value is invisible, no consumer check exists, and the failure produces nothing at all. Does the error announce itself? Error visible in the record Consumer can sanity-check it What a failure leaves behind CVSS Visible Yes — against the text An alert that is wrong CWE Partly Rarely — nobody looks A skewed report, later CPE Invisible No — it is a key Nothing Announces itself Announces itself slowly Silent
一个总体富化准确率,是在一排失效代价相差若干个数量级的东西上取平均。

NVD 富化会往一条已发布的 CVE 上挂三样东西:一个 CVSS 严重性评分、一个 CWE 弱点分类,以及若干条说明该缺陷适用于哪些产品版本的 CPE 适用性声明。它们通常被当作一条工作线来谈,因为这三样出自同一位分析师之手。但它们不是一条工作线,因为它们被消费的方式不一样。

CVSS 失效得很响

严重性评分是一个人要读的数字,而旁边就摆着同一个人也能读的描述。如果一个智能体把一次无关痛痒的信息泄露打成 9.8 分,会有人在分诊会上说出来——因为分数和支持它的证据出现在同一个视图里。它的失效模式是优先级排错,代价不小,但它会自我宣告:当队列里塞满并不严重的「严重」发现时,人是会注意到的。而且 CVSS 本来就有争议——厂商、CNA 与 NVD 对分数意见相左是家常便饭——所以消费方早就养成了把它当意见而不是事实的习惯。

CWE 失效得很慢

弱点分类喂给的是分析:你的资产里哪些部位出现哪类缺陷、安全开发的力气该往哪儿使、趋势线长什么样。一个错的 CWE 不会弄坏任何单独一次决策。它劣化的是一个语料,而损害会在一年后以「从一群被贴错标签的样本里得出的结论」的形式浮现。让人难受,可以补救,也不太可能是最终撂倒你的那件事。

CPE 失效得无声无息

一条 CPE 适用性声明不是一次评估。它是一个键。你的扫描器拿着从资产清单里推导出的 CPE 字符串,与 CVE 记录上的 CPE 字符串求交,每命中一次就产出一条发现。这个操作是一次连接(join),而连接的失效模式不是给出错误答案——是给出空结果。

想想两种错各自会做什么。一个过宽的 CPE 产出的是误报:一条针对你并不运行的东西的告警冒了出来,有人去查,于是错误在一天之内被发现,因为总得有人去看它。而一个过窄的 CPE——厂商字符串写错了、版本区间少收了一个发行版、产品在大版本之间改了名——产出的是「没有」。没有行,没有发现,没有告警,没有工单,你整条流水线里也不会留下任何一件产物记录下「有人问过这个问题、答案是否」。漏洞仍然留在你的资产里,而你的覆盖率报告说你是干净的——这比什么都不说更糟,因为它是一句肯定的断言。

这种不对称既不新鲜,也不是 AI 造成的。手写的 CPE 一向是整条记录里最不牢靠的部分,漏报问题也有充分的文献记载。新鲜的是这样一个提议:用一套错误彼此相关的流程,把 CPE 的产出量放大若干倍。一个读错了某厂商命名习惯的模型,会在该厂商的每一份公告上以同样的方式读错——于是一堆彼此独立的失误,变成了一个有形状的系统性盲区。

为什么「模型准确率 94%」是个错的数字

任何一次对富化智能体的评测都会产出一个头条准确率数字,而那个数字会是三个字段上的平均。一取平均,你就把三样东西混在了一起:一个「错误会被下一个看它的人抓住」的指标,一个「错误要过一年才开始要紧」的指标,以及一个「错误从构造上就不可见」的指标。这个总体值不是那三样的摘要,而是一个把「到底是哪一样动了」藏起来的数字。

  • CPE 的召回率必须单独报,而且要说清对着什么算。CPE 的精确率——智能体点名的那些产品里有多少是对的——是容易的那个方向,也是 demo 会展示的那个。召回率——真正受影响的产品里,智能体点到了多少——才是预测无声漏报的那个数字;而要测它,需要一份「按定义就不存在于那些没人富化过的记录上」的真值。
  • 版本区间不是字符串,而字符串准确率却按字符串给它打分。「除了上界之外都对」,对上界之上的每一台资产是全错,对之下的每一台是全对。评测的单位必须是本该匹配上的资产,而不是看上去没毛病的记录。
  • 相关性错误会毁掉抽样。随机复核智能体产出的 2%,能诚实地估出错误率,却几乎说不出这些漏掉的是不是聚集在某一家厂商、某一个生态、或某一种命名模式上。报任何数之前,先按厂商把它们聚一次类。
  • 弃答也是一种结果。一个在解不出来时拒绝吐出 CPE 的智能体,比一个吐出最佳猜测的更有用——因为那个空字段保住了「这里需要人或另一个来源」的信号。这套工作流能不能弃答、以及弃答在它的评测里是否得到奖励,是一个比一个百分点的准确率更值钱的设计问题。

最有力的那个反驳,以及它为什么并没有把话说死

反驳很简单:眼下有 29,000 条记录根本没有 CPE。一个九成时候把 CPE 做对的智能体,严格优于一个零成时候做对的字段。拒绝这个智能体,是出于对「出处」的洁癖而选了更差的那一边。

如果「错值」的替代品是一份同样无声的缺席,这话就是对的。但它不是,因为消费方在这两种情形下的行为并不一样。缺失的 CPE 是可读的:容器扫描器、SCA 工具与企业级项目早就能识别它并回退——退到厂商公告、退到生态原生的公告库、退到包管理器元数据、退到商业富化源、退到可达性分析。4 月之后有好几家厂商公开重建的正是这套回退,并告诉客户别再把 NVD 当成完整的了。触发那套行为的,正是那个空字段。

一个「有值但错」的 CPE 会把这个触发器拿掉。这个错误的代价不是一条坏记录;而是那条坏记录如果缺席、本会被唤起的那道补偿性控制被压制了。所以「九成总比什么都没有强」是一次范畴错误:你比的并不是「九成对」对上「零成对」,而是「九成对加上一成不可见」对上「零成对加上十成可见」——而你的整个项目,是搭在第二栏上的。

解法不是拒绝这个智能体。解法是让这两种情形重新可区分,而那只需要一个字段。

10 月 13 日之前值得去要的东西

这份信息征询问的是:由 AI 驱动的决策如何保持透明与可审计。这问题问得对,而它有一个具体、便宜、可检验的答案——而那个答案属于数据模型,不属于一份政策文件。

  • 出处要落到每个值上,不是每条记录上。每一个被富化的值——每一条 CVSS 向量、每一个 CWE、每一条 CPE 匹配——都带上来源:分析师、CNA、工具,或「工具产出经分析师复核」。按记录记出处是不够的,因为真正有意思的恰恰是那些混合的记录:分析师确认了分数,而工具猜了适用性。
  • 工具产出的值要带置信度,并通过 API 暴露为可过滤字段。不是给人读的,是给扫描器拿来配置的:「把置信度低于 X 的工具产 CPE 当作缺失处理」是一条一行的策略,它能把回退行为恢复回来——而这在今天根本写不出来。
  • 「未排期」不能被悄悄覆盖。如果一个工具填上了人工分析师本来永远够不到的记录,这条记录应当永久地把这件事写明。一个悄悄变成「已富化」的状态,会摧毁世上唯一那份「哪些东西从来没被查过」的清单。
  • 按字段公布评测结果,并把 CPE 召回率按厂商拆开。连真值是怎么造出来的一起公布。一个横跨 CVSS、CWE 与 CPE 的总体准确率数字,无论多高,都该被当作「没有回答」。
  • 说清这个智能体读的是什么。一个富化智能体的输入是厂商公告、变更日志与问题追踪器——那是由「对自家产品适用性如何被记录抱有利害关系」的一方写的文本,而且任何能提一个 issue 的人都够得着。这是一条喂给权威记录的不可信输入管线,它的威胁模型值得占上一段。

意见是公开且不删节的,所以一份「只说清一件有用的事」的简短提交,胜过一份长的。对多数组织而言,手上价值最高的那一句话,是具体描述你的扫描器在 cpeMatch 为空与被填满时分别怎么做——因为那正是「这两种状态不可互换」的证据,而这种证据只有运营方拿得出来。

这一周在你自己的项目里该做什么

这些事一件都不必等 NIST,而且不管那个智能体最终会不会上线,其中大部分本来就该做了。

  • 在你自己的流水线里,把「缺席」变成一个独立状态。如果你的漏洞数据模型没法把「这条 CVE 没有适用性数据」与「这条 CVE 不适用于我们」分开表达,那就是一次现在就值得做的 schema 变更。这也正是让你日后能消费出处字段的同一次变更。
  • 做快照,做差分。自己留一份 NVD 记录的历史。当一条上个月还没有 CPE 列表的记录忽然有了,那是一个值得被看见的事件——今天是因为它意味着这条记录被迟迟富化了,不久之后则可能意味着它是被一个工具富化的。
  • 别再只对着 NVD 报覆盖率。它在 4 月就以公告的形式不再是一个完整的富化来源了。用一个不完整的分母算出来的覆盖率指标,与这整篇文章讲的是同一种失效,只是高了一层。
  • 如果你在造消费漏洞数据的智能体,注意刚刚变了什么。一个读 NVD 的修复或分诊智能体,一向读的是人的判断。而它即将读到的,有一部分是另一个模型的输出,并且没有任何标记把两者分开。这是你这个智能体的一条供应链属性,不是一条数据质量的脚注——而这已经是今年第二回,业界悄悄把一个模型摞在了另一个模型未署名的输出之上。

常见问题

NIST 是要用 AI 智能体取代分析师吗?

已公布的内容里没有这么说。NIST 披露了一款在研工具,并介绍了一套智能体富化工作流,而那份信息征询明确在问哪些任务应当要求人工复核。这款工具在生产中的角色尚未说明,而那正是 10 月 13 日之前值得去问的事情之一。

CPE 是什么,为什么在这件事上它比 CVSS 更要紧?

通用平台枚举(CPE)是一套面向产品与版本的结构化命名方案。NVD 的适用性声明列出一个漏洞影响哪些 CPE,而扫描器把它们与从你资产清单推导出的 CPE 做匹配。CVSS 是一个人可以核查的意见;CPE 是决定这条发现在你的工具里究竟存不存在的那个键。

NVD 停止富化 CVE 了吗?

没有完全停。自 2026 年 4 月 15 日起,它按风险富化——CISA KEV 条目、联邦政府软件与关键软件——而约 29,000 条更早的积压记录被重新划为「未排期」。多数 CVE 仍会发布;只是拿到 CVSS、CWE 与 CPE 的变少了。

一个置信度字段真的有用,还是只是装饰?

只有在消费方能对它做过滤时才有用,这也正是这里要的是 API 暴露、而不是记录里的一行备注。有了过滤,「把低置信度的工具产 CPE 当作缺失」就能把今天由空字段触发的那条回退路径恢复回来。没有过滤,它就是装饰。

由智能体生成富化数据是个坏主意吗?

不是。体量上的论证是成立的,而积压造成的伤害正在真实发生。这里的主张要窄得多:这三个富化字段不该被装在同一个准确率数字、同一套出处政策底下发出去,因为其中一个失效时不会留下任何它曾失效过的证据。

我怎么知道这件事是不是已经伤到我了?

你多半无从知道,而这正是要害。手边最接近的检查是回溯式的:拿出最近十个你是从厂商公告、而不是从自己的扫描器那里得知的漏洞,问一句当时 NVD 那条记录上有没有覆盖受影响版本的适用性数据。那个比例就是你的无声漏报率,而这是唯一测得出它的办法。

延伸阅读

本站相关:

来源: