构建 CVE 与漏洞情报 Agent:用一个 API 打通 CISA KEV、NVD、EPSS 与 MITRE ATT&CK

每个安全团队都被 CVE 淹没。真正的信号不是严重程度——而是一个漏洞是否正在被利用、以及被利用的可能性有多大。本文教你构建一个融合 NVD、CISA KEV、EPSS 与 ATT&CK 的 Agent,来回答「我该先打哪个补丁?」。
一句话总结
- •只看 CVSS 严重程度会高估:大多数「严重」CVE 从未被利用。真正的优先级排序需要在其之上叠加 CISA KEV(已知被利用)+ EPSS(被利用的概率)。
- •四个数据源:NVD(CVE 记录 + CVSS)、CISA KEV(权威的「在野被利用」清单)、EPSS(每日更新的 0–1 利用概率评分)、MITRE ATT&CK(提供战术/技术背景)。
- •API Pick 的 Cybersecurity Search 把这四者全部包在一个 POST 端点之后——每次调用 10 credits,只在成功时计——于是 Agent 无需四套抓取器即可获得融合后的漏洞情报。
- •Agent 范式:拉取 CVE,核对是否在 KEV 名单中,读取 EPSS 评分,映射到 ATT&CK 技术,然后按「被利用优先 → EPSS → CVSS」排序。
- •这是检索,不是扫描器:它告诉你关于某个漏洞「已知什么、可能怎样」,用于为人工分诊排序——而不是去授权自动化行动。
严重程度是错误的排序键
一个按 CVSS 评分打补丁的漏洞管理项目,忙碌却低效。美国国家漏洞数据库(NVD)列出了成千上万个高危和严重 CVE;其中绝大多数从未被利用。与此同时,一个带有可用在野利用程序的「中危」漏洞却躺在待办列表里。安全 Agent 该回答的问题不是「这能糟到什么地步」——而是「今天,我该先打哪个补丁」。
回答这个问题,需要把四个数据源融合在一起。每一个都是免费且公开的;每一个都有自己的格式与更新节奏。
四个数据源
NVD——CVE 记录
NIST 的国家漏洞数据库。这是带有 CVSS 向量、受影响产品(CPE)和参考链接的权威 CVE 清单,是「这是个什么漏洞」的基线层。优势:权威且完整。短板:只看 CVSS 会高估严重程度。
CISA KEV
已知被利用漏洞目录——CISA 那份权威清单,列出已确认在野被利用的 CVE,并为美国联邦机构标注修复截止日期。一个 CVE 若上了 KEV,它就插队到最前。优势:漏洞管理中信号最强的单一标记。
EPSS
FIRST.org 的利用预测评分系统:一个每日更新的 0–1 概率,表示某个 CVE 在未来 30 天内被利用的可能性。它把「可能被利用」变成「有多大可能」。优势:能映射到真实攻击者行为的概率化排序。
MITRE ATT&CK
对手战术与技术的知识库。它把一个漏洞映射到其在杀伤链中的角色。优势:把一个 CVE 变成一段可供你的检测与响应方案使用的「行动叙事」。
一个端点,融合情报
Cybersecurity Search 把 NVD、CISA KEV、EPSS 与 MITRE ATT&CK 包在一个 POST 端点之后——每次调用 10 credits,只在成功时计。传入一个 CVE ID 或一句自然语言查询;结果会以融合后、已为 LLM 预成形的形式返回。把它与 Web Search(获取厂商安全公告)和 Extract(拉取完整公告页面)搭配使用。
import httpx, os
API, HEADERS = "https://api.apipick.com/v1", {"x-api-key": os.environ["APIPICK_KEY"]}
def vuln_intel(query: str):
r = httpx.post(f"{API}/search/cybersecurity",
headers=HEADERS, json={"query": query})
r.raise_for_status()
return r.json()["results"]
# "what should I patch first across NVD + KEV + EPSS + ATT&CK?"
records = vuln_intel("actively exploited Apache and VMware vulnerabilities this month")
# Rank: KEV-listed first, then by EPSS, then CVSS. Feed the ranked,
# cited list to your LLM to summarize the worklist for an analyst.自建 vs. 采购
| 自己接起来 | API Pick | |
|---|---|---|
| 数据源 | NVD + KEV + EPSS + ATT&CK,分散各处 | 四者,已融合 |
| 格式 | 4 套 schema + EPSS CSV | 1 种 JSON 结构 |
| 新鲜度 | 你自己排 4 个同步任务 | 每次调用即实时 |
| 面向 LLM | 每一种都要你归一化 | 预成形 + 来源 URL |
| 成本 | 基础设施 + 维护 | 10 credits/次,只在成功时计 |
你能构建什么
除了补丁优先级助手:一个每日 KEV 监视 Agent,当你技术栈中的某个 CVE 登上被利用清单时发出告警;一个分诊机器人,把扫描器导出结果变成一份排序好、带引用的工作清单;一个分析师副驾,用通俗语言解释某个 CVE 的 ATT&CK 含义。范式一致——融合检索、按「被利用优先」排序、附带来源做综合。领一把免费密钥(100 credits,无需绑卡),把你的 Agent 指向它。
常见问题
为什么 CVSS 严重程度不足以用于补丁优先级排序?
因为严重程度衡量的是潜在影响,而非被利用的可能性。有成千上万个 CVE 被评为高危或严重,但其中只有一小部分曾在野被真正利用。如果你只按 CVSS 打补丁,就会把精力花在攻击者根本不会碰的漏洞上,却漏掉那个评级仅为中危、却正被积极利用的漏洞。现代做法是在 CVSS 之上叠加 CISA KEV(它是否已知被利用?)和 EPSS(它被利用的概率有多大?),来给真正重要的东西排序。
EPSS 是什么,我该怎么用?
EPSS(Exploit Prediction Scoring System,利用预测评分系统)来自 FIRST.org,为每个 CVE 提供一个每日更新的 0 到 1 评分,估计它在未来 30 天内被利用的概率。一条常见策略是:凡在 CISA KEV 上的立即修补,其次是 EPSS 高于约 0.1(或你按风险调校的阈值)的,再用 CVSS 给其余的分诊。由于 EPSS 每天更新,Agent 应当重新拉取而不是缓存。
MITRE ATT&CK 又补充了什么?
背景。ATT&CK 梳理对手的战术与技术(初始访问、权限提升、数据外泄等)。把一个 CVE 与利用它的技术关联起来,能帮助分析师理解其在杀伤链(kill-chain)中的含义——不只是「这个可被利用」,而是「这会促成横向移动」,而后者会改变你的优先级排序以及要新增哪些检测。
这个 Agent 能自动打补丁或拦截流量吗?
不能——你也不该这么接。这是一个情报检索层:它融合关于某个漏洞「已知什么」,来为人工分诊排序。自动化修复需要变更管控、测试以及一位人类负责人。请用这个 Agent 产出一份排序好、带引用的工作清单;让你的补丁/SOAR 流水线和工程师去执行。
数据有多新?
随着 CVE 被发布、被利用被确认,NVD 和 CISA KEV 会持续更新;EPSS 每日重新计算。端点查询的是实时来源,因此一次 Agent 运行反映的是当下状态。为留存审计轨迹,请把决策那一刻的 EPSS 评分与 KEV 状态连同时间戳一并存档。
本文涉及的 API
Sarah Choy 是 API Pick 的 CEO,专注于为 AI Agent 与 LLM 工作流构建可用于生产的 API。