logiover/cve-security-advisory-monitor
GitHub: logiover/cve-security-advisory-monitor
一个无需 API Key 即可聚合 NVD、GitHub 与 OSV 漏洞数据并进行去重规范化的 CVE 安全公告监控工具。
Stars: 0 | Forks: 0
# CVE 安全公告监控器 — NVD + GitHub Advisory + OSV 漏洞数据流(无需 API Key)
[](https://apify.com/logiover/cve-security-advisory-monitor)
[](https://apify.com/logiover/cve-security-advisory-monitor)



### ▶️ [在 Apify 上运行 CVE 安全公告监控器 →](https://apify.com/logiover/cve-security-advisory-monitor)
监控来自 **NVD (NIST)**、**GitHub Security Advisories (GHSA)** 和 **OSV.dev** 的 **CVE 与安全公告** — 合并、去重并规范化为一个干净的漏洞数据流。追踪今日新增的 CVE,通过关键字(`log4j`、`wordpress rce`)进行搜索,或查找特定的包(`npm:express`、`pypi:django`)。每一行数据都包含 **CVE ID、CVSS 评分与严重程度、CVSS 向量、CWE 弱点、受影响的包/版本、已修复版本和参考 URL** 等结构化的 JSON 信息 — **无需 API Key、无头浏览器或登录**。
这个 **CVE 监控器** 会查询上述所有数据库,并将重复项折叠为每个漏洞一行数据,而无需解析三种不同格式的数据库,为您提供可用于 DevSecOps、依赖项/SBOM 扫描、威胁情报以及为 AI 安全代理提供最新 CVE 数据基础且随时可进行分类处理的数据流。
## 您将获得 / 输出字段
每个漏洞公告一行数据 — 跨数据源合并并去重后的 **19 个字段**:
- 🆔 **交叉关联的 ID** — `cveId`、`ghsaId`、`osvId`(如果数据源未分配则为空)。
- 🧾 **文本信息** — GHSA 风格的 `summary` 以及完整的 CVE `description`。
- 📅 **时间信息** — `publishedDate` 和 `lastModified`(ISO 8601 格式),外加 `scrapedAt` 时间戳。
- 📊 **CVSS** — `cvssScore`、`cvssSeverity`(LOW/MEDIUM/HIGH/CRITICAL)以及 `cvssVector` 字符串。
- 🏷️ **弱点** — 包含 CWE ID 的 `weaknesses` 数组(例如 `CWE-79`、`CWE-89`)。
- 📦 **受影响与补丁信息** — 包含引入/修复版本范围的 `affected` 产品/包,以及从最早修复版本中提取的 `patchedVersion`。
- 🔗 **出处** — `references` 数组(公告/补丁/厂商 URL),外加 `source` / `sourceFeeds`(漏洞出现的每一个载体)和 `duplicateCount`。
## 使用场景
- **日常 CVE 分类** — 设置 `recent` 模式,配合 `daysBack: 1` 和 `minCvss: 7`,每天早上浮现昨天的高危及以上 CVE,并按严重程度排序。
- **依赖项与 SBOM 监控** — 将您的 lockfile 包输入到 `product` 模式中,当出现未修复的漏洞时,开启工单或让构建失败(使用 `patchedVersion` 作为升级目标)。
- **补丁优先级排序** — 根据 `cvssScore` 以及受影响包的关键程度和补丁可用性,对未解决的公告进行排序。
- **厂商 / 生态系统监控** — 每周运行 `search: "apache struts"` 或 `search: "wordpress plugin"`,以追踪特定厂商或生态系统的新 CVE。
- **威胁情报与 SIEM 数据流** — 将合并、去重后的公告推送到 SIEM 或工单系统中;跨数据源去重可防止重复告警。
- **AI 代理 / RAG 基础** — 将每日 CVE 数据流嵌入到向量存储中,使安全代理在回答 *“X 版本是否容易受到 Y 的攻击?”* 时,能够引用确切的 CVE,而不是过时的训练数据。
## 快速开始
您可以通过 Apify 控制台、CLI、REST API 或 JavaScript / Python 客户端运行此监控器。**留空输入** 将返回最近的 CVE(默认为 `recent` 模式,`daysBack: 1`)。
### 1. Apify 控制台(无需代码)
1. 打开 Actor:**[apify.com/logiover/cve-security-advisory-monitor](https://apify.com/logiover/cve-security-advisory-monitor)**
2. 点击 **免费试用**。
3. 保持输入为空以获取今日的 CVE,或者设置 `mode`(`recent` / `search` / `product` / `bulk`)及其查询条件。
4. 点击 **Start** 并从 **Output** 标签页导出数据(JSON, CSV, Excel, XML)。您可以使用 **Overview** 或 **By severity** 视图。
### 2. Apify CLI
```
npm install -g apify-cli
apify login
apify call logiover/cve-security-advisory-monitor --input='{
"mode": "recent",
"daysBack": 1,
"minCvss": 7,
"maxResults": 500
}'
```
### 3. API / cURL
```
curl -X POST "https://api.apify.com/v2/acts/logiover~cve-security-advisory-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"mode": "search",
"query": "log4j",
"maxResults": 200
}'
```
### 4. JavaScript (apify-client)
```
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('logiover/cve-security-advisory-monitor').call({
mode: 'product',
products: ['npm:express', 'pypi:django', 'maven:org.springframework:spring-core'],
sources: ['osv'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} advisories`);
```
### 5. Python (apify-client)
```
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("logiover/cve-security-advisory-monitor").call(run_input={
"mode": "recent",
"daysBack": 7,
"minCvss": 7,
"sources": ["nvd", "githubAdvisory", "osv"],
"maxResults": 1000,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Got {len(items)} advisories")
```
更多详细示例:[CLI](examples/cli.md) · [API / cURL](examples/api-curl.md) · [JavaScript](examples/javascript.md) · [Python](examples/python.md)。
## 输入
选择一个 `mode` — 其他所有参数均为可选,并取决于所选模式(`recent` 使用 `daysBack`;`search` / `bulk` 使用 `query` / `queries`;`product` 使用 `products`)。
| 字段 | 类型 | 描述 |
|-------|------|-------------|
| `mode` | string (下拉菜单) | `recent`(过去 N 天的新 CVE)、`search`(关键字)、`product`(包)或 `bulk`(多个关键字)。默认为 `recent`。 |
| `daysBack` | integer | `recent` 模式向后追溯的天数 (1–120)。`1` = 今日的 CVE,`7` = 过去一周。 |
| `query` | string | `search` 模式的关键字,与 CVE 描述进行匹配(例如 `log4j`、`wordpress`、`rce`)。 |
| `queries` | array | `bulk` 模式使用的关键字数组(每个关键字都会成为独立的查询)。 |
| `products` | array | `product` 模式下的包,格式为 `ecosystem:package`(例如 `npm:express`、`pypi:django`)。纯名称会自动推断生态系统。 |
| `sources` | array (下拉菜单) | 要查询的数据库:`nvd`、`githubAdvisory`、`osv`。选择越多覆盖面越广 + 跨源去重。默认为 NVD + GitHub Advisory。 |
| `maxResults` | integer | 每个查询/时间窗口保存的公告数量上限 (1–5000)。 |
| `minCvss` | number | 仅保留 CVSS ≥ 此值的公告 (0–10)。`0` = 全部,`7` = 高危及以上,`9` = 严重。 |
| `useApifyProxy` | boolean | 通过 Apify 数据中心代理路由(通过 IP 轮换来分散无 Key 数据源的速率限制)。推荐使用。 |
| `proxyGroups` | array | 覆盖代理组,例如 `["RESIDENTIAL"]`。 |
## 输出
每个漏洞一行数据。示例记录(已截断):
```
{
"query": "last 1d",
"source": "nvd",
"sourceFeeds": ["nvd", "githubAdvisory"],
"cveId": "CVE-2026-12345",
"ghsaId": "GHSA-abcd-efgh-1234",
"osvId": null,
"summary": "SQL injection in package X via parameter Y",
"description": "A SQL injection vulnerability exists in package X when parameter Y is not sanitized ...",
"publishedDate": "2026-07-02T13:00:00.000Z",
"lastModified": "2026-07-02T14:30:00.000Z",
"cvssScore": 9.8,
"cvssSeverity": "CRITICAL",
"cvssVector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"weaknesses": ["CWE-89"],
"affected": [
{ "ecosystem": "pypi", "package": "django", "ranges": [{ "introduced": "0", "fixed": "4.2.1" }] }
],
"patchedVersion": "4.2.1",
"references": [
"https://nvd.nist.gov/vuln/detail/CVE-2026-12345"
],
"duplicateCount": 2,
"scrapedAt": "2026-07-06T12:00:00.000Z"
}
```
| 字段 | 描述 |
|-------|-------------|
| `query` | 生成此行数据的查询/窗口(例如 `last 1d`、关键字或包) |
| `source` / `sourceFeeds` | 优选出字段的主要来源;`sourceFeeds` 包含所有载体(`nvd`、`githubAdvisory`、`osv`)的并集 |
| `cveId` / `ghsaId` / `osvId` | 交叉关联的标识符;如果数据源未分配则为空 |
| `summary` / `description` | 简短的 GHSA 风格摘要以及完整的 CVE 描述 |
| `publishedDate` / `lastModified` | 发布与最后更新的时间戳 (ISO 8601) |
| `cvssScore` / `cvssSeverity` / `cvssVector` | CVSS 基础分、严重程度等级和向量字符串 (v3.1,回退至 v2) |
| `weaknesses` | CWE 弱点 ID(例如 `CWE-79`、`CWE-89`) |
| `affected` | 受影响的产品/包:生态系统、包名及版本范围 (引入/修复) |
| `patchedVersion` | 从最早修复事件中提取的修复版本(如果可用) |
| `references` | 公告、补丁、厂商和 NVD 参考 URL |
| `duplicateCount` | 在合并之前发现同一漏洞的数据源数量 |
| `scrapedAt` | 提取时间戳 (ISO 8601) |
## 集成与自动化
- **定时调度** — 每天早上运行 `recent` 模式 (`daysBack: 1`) 以获取持续的每日 CVE 数据流,或每周运行以进行更广泛的扫描。
- **Webhooks** — 在运行完成时,将新公告 POST 到 SIEM、工单系统或内部 API。
- **Google Sheets / Amazon S3 / 数据库** — 通过 Apify 的内置集成推送结果。
- **Zapier、Make、n8n 和 Pipedream** — 基于此数据流构建告警和修复工作流。
- **AI 代理 (MCP)** — 将该 Actor 封装为一个工具,使安全代理能够通过关键字、包或时间窗口调用它,并获取结构化的公告反馈。
## 导出格式
通过控制台的 **Export** 按钮或 Apify API,从运行的数据集中下载或流式传输结果,支持 **CSV, JSON, JSONL, Excel (XLSX) 和 XML** 格式。
## 常见问题
### 我需要 API Key 或登录吗?
不需要。NVD、GitHub Security Advisories 和 OSV 都开放了无 Key 的访问层级,此 Actor 会利用它们并结合 Apify 数据中心代理的 IP 轮换来分散限制。您只需要一个 Apify 账户。
### 它是 NVD / OSV API 的替代品吗?
是的。每个数据源都有不同的 schema、不同的数据缺口及其自身的速率限制。此 Actor 可作为非官方的 **NVD / OSV API 替代方案** — 它会查询这三个数据源,将其统一规范化为一种 schema,合并重复项并返回一个干净的数据流。
### 如何每天监控新的 CVE?
使用 `recent` 模式并设置 `daysBack: 1`,然后安排 Actor 每天早上运行。添加 `minCvss: 7` 以仅保留高危及以上公告。每次运行都会返回该时间窗口内发布的 CVE。
### 跨数据源去重是如何工作的?
数据行以 CVE ID(或在无 CVE 时使用 GHSA/OSV ID)作为键。在 NVD + GHSA + OSV 中发现的同一漏洞会合并为一行,显示为 `sourceFeeds: ["nvd","githubAdvisory","osv"]` 且 `duplicateCount: 3`。系统会优先选取信息最丰富的字段。
### 我可以查找特定包的漏洞吗?
可以。请在 `product` 模式下使用 `npm:express`、`pypi:django`、`maven:group:artifact` 等。如需精确版本检查,请在后续流程中对 `affected` 版本范围 (引入/修复) 进行后处理。
### 如何将 CVE 数据导出为 CSV 或 JSON?
运行 Actor,然后从控制台或通过 Apify API 将数据集导出为 CSV、JSON、Excel 或 XML。您可以先使用 **Overview** 或 **By severity** 视图来调整列。
### 我能获取多少数据,数据有多新?
每天都会发布数百个新的 CVE,因此 `recent` 模式可提供一致的获取量(`maxResults` 将每个窗口的上限设为 5000)。NVD 和 GitHub Advisory 会近乎实时地发布,在披露与信息完善之间存在微小的延迟。
### 为什么有些 CVSS 分数为空?
并非所有公告都已经评分(尤其是在 NVD 完善信息之前的新 OSV 条目)。`minCvss: 0` 会保留它们;`minCvss: 7` 会将其过滤掉(缺失的分数被视为低于阈值)。
### 我会受到速率限制吗?
无 Key 的数据源层级请求量有限,因此 使用了代理 IP 轮换加上指数退避重试,并在分页之间控制请求节奏。对于非常大的时间窗口,它会以速度换取可靠性。
### 监控 CVE / 公告数据合法吗?
该 Actor 仅通过其无 Key API 查询公开可用的漏洞数据库。数据归各自来源(NIST、GitHub、OSV 维护者)所有 — 请尊重其使用条款和速率限制。
## 相关 Actor
- [Crossref Scraper](https://apify.com/logiover/crossref-scraper) — 用于研究流程的学术元数据、DOI 与引用。
- 浏览完整套件:**[Apify Store 上的所有 logiover 抓取器](https://apify.com/logiover)**。
📄 **仅供文档参考** — 此代码仓库不包含抓取器源代码。Actor 在 Apify 平台上运行。
▶️ **运行地址:** [https://apify.com/logiover/cve-security-advisory-monitor](https://apify.com/logiover/cve-security-advisory-monitor)
基于 [MIT License](LICENSE) 授权 · © 2026 logiover
标签:Apify, CVE, DevSecOps, URL抓取, 上游代理, 依赖扫描, 安全情报, 数字签名, 数据可视化, 数据抓取, 模型提供商, 漏洞监控, 逆向工具