muchdogesec/arango_cve_processor

GitHub: muchdogesec/arango_cve_processor

一个用于将 CVE 漏洞数据与 EPSS、KEV、ATT&CK 等外部威胁情报源进行自动化关联和丰富化的 Python 脚本。

Stars: 2 | Forks: 0

# Arango CVE Processor [![codecov](https://codecov.io/gh/muchdogesec/arango_cve_processor/graph/badge.svg?token=90YNSA54ZD)](https://codecov.io/gh/muchdogesec/arango_cve_processor) ## 开始之前 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/54d5d45910113308.png) Arango CVE Processor 内置于 [Vulmatch](https://www.vulmatch.com) 中,该工具也负责下载 CVE 对象(这是 ACVEP 运行所需的)。因此,[Vulmatch](https://www.vulmatch.com) 可能更符合您的需求。 ## 太长不看 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a013c9d6b1113320.png) 一个小型脚本,用于将 CVE 丰富化到其他来源,所有数据均存储为 STIX 2.1 对象。 ## 概述 在 DOGESEC,我们在产品中处理大量的 CVE 数据。[cve2stix](https://github.com/muchdogesec/cve2stix) 从 CVE 数据生成核心 STIX 2.1 Vulnerability 对象。 然而,我们还有许多其他来源(EPSS、KEV、ATT&CK...)希望用来丰富这些数据。 我们构建了 Arango CVE Processor 来处理这些丰富数据的生成和维护。 简而言之,Arango CVE Processor 是一个脚本,它: 1. 读取 ArangoDB 中导入的 CVE STIX 数据 2. 创建 STIX 对象以表示 CVE 和其他数据集之间的关系 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a560fc61c9113334.jpg) [来源](https://miro.com/app/board/uXjVL5tH2Ro=/) ## 使用说明 ### 安装脚本 ``` # 克隆最新代码 git clone https://github.com/muchdogesec/arango_cve_processor # 创建 venv cd arango_cve_processor python3 -m venv arango_cve_processor-venv source arango_cve_processor-venv/bin/activate # 安装 requirements pip3 install -r requirements.txt ``` ### 配置选项 Arango CVE Processor 有多种设置,这些设置在 `.env` 文件中定义。 要创建该文件的模板: ``` cp .env.example .env ``` 要了解有关如何设置这些变量及其作用的更多信息,请阅读 `.env.markdown` 文件。 ### 运行 ``` python3 arango_cve_processor.py \ MODE \ -- MODE OPTIONS ``` 以下模式可用; * `cve-cwe` * 将 vulnerability 对象链接到 CWE 对象 * `cve-capec`(需先运行 `cve-cwe`) * 将 vulnerability 对象链接到 CAPEC 对象 * `cve-attack`(需先运行 `cve-capec`) * 将 vulnerability 对象链接到 ATT&CK 对象 * `cve-epss` * 创建/更新链接到 CVE 的 report 对象,表示运行时间范围内的一个或多个 EPSS 评分 * `cve-kev`(需先运行 `cve-cwe`) * 创建/更新链接到 CVE 的 report 对象,表示 CISA KEV 数据 * `cve-vulncheck-kev`(需先运行 `cve-cwe`) * 创建/更新链接到 CVE 的 report 对象,表示 Vulncheck KEV 数据 * `cpematch` * 创建/更新 grouping 对象(以及链接的 software 对象),表示与 CPE 关联的 CPE Matches。 所有模式都有不同的选项,但以下选项在所有模式中均可用 * `--database`(必需):要在其中找到您想链接的对象的 arangoDB 数据库名称。它必须包含集合 `nvd_cve_vertex_collection` 和 `nvd_cve_edge_collection` * `--ignore_embedded_relationships`(可选,布尔值)。默认值为 `false`。如果传入 `true`,这将阻止生成任何嵌入式关系。这是一个 stix2arango 功能,即为每个对象内的 `_ref` 和 `_refs` 属性创建 STIX SRO(例如,如果 `_ref` 属性 = `identity--1234`,则将在具有该 `_ref` 属性的对象与 `identity--1234` 之间创建 SRO)。如有需要,请参阅 stix2arango 文档以了解更多详情,本质上这是对 stix2arango 实现的相同 `--ignore_embedded_relationships` 设置的封装 * `--ignore_embedded_relationships_sro`(可选):布尔值,如果传入 `true`,将阻止从 SRO 对象(`type` = `relationship`)生成任何嵌入式关系。默认值为 `false` * `--ignore_embedded_relationships_smo`(可选):布尔值,如果传入 `true`,将阻止从 SMO 对象(`type` = `marking-definition`、`extension-definition`、`language-content`)生成任何嵌入式关系。默认值为 `false` 要查看每种模式可用的选项,您可以使用帮助标志 (`-h`) 运行,例如, ``` python3 arango_cve_processor.py \ cve-epss -h ``` ``` python3 arango_cve_processor.py \ cve-cwe -h ``` ### 示例 处理 `2024-02-01` 之后修改的所有 CVE 的 CVE -> CWE 关系 ``` python3 arango_cve_processor.py \ cve-cwe \ --database vulmatch_database \ --modified_min 2024-02-01 \ --ignore_embedded_relationships true \ --ignore_embedded_relationships_sro true \ --ignore_embedded_relationships_smo true ``` 获取 2024 年每一天 CVE 的所有 EPSS 评分 ``` python3 arango_cve_processor.py \ cve-epss \ --database vulmatch_database \ --start_date 2024-01-01 \ --end_date 2024-12-31 \ --ignore_embedded_relationships true \ --ignore_embedded_relationships_sro true \ --ignore_embedded_relationships_smo true ``` 更新 `2024-02-01` 之后修改的所有 CPE Matches ``` python3 arango_cve_processor.py \ cpematch \ --database vulmatch_database \ --updated_after 2024-02-01 \ --ignore_embedded_relationships true \ --ignore_embedded_relationships_sro true \ --ignore_embedded_relationships_smo true ``` ## 回填数据 [stix2arango 包含一组实用脚本,可用于回填此测试所需的所有数据源](https://github.com/muchdogesec/stix2arango/tree/main/utilities)。 ## 工作原理 如果您想详细了解此脚本的逻辑如何工作,请查阅 `/docs` 目录。 ## 实用的辅助工具 * 生成 STIX 2.1 扩展:[stix2 Python Lib](https://stix2.readthedocs.io/en/latest/) * 对象的 STIX 2.1 规范:[STIX 2.1 docs](https://docs.oasis-open.org/cti/stix/v2.1/stix-v2.1.html) * [ArangoDB 文档](https://www.arangodb.com/docs/stable/) ## 支持 [通过 DOGESEC 社区提供有限支持](https://community.dogesec.com/)。 ## 许可证 [Apache 2.0](/LICENSE)。
标签:ArangoDB, Cloudflare, CVE, CVE 处理器, EPSS, GPT, KEV, MITRE ATT&CK, Python, STIX, STIX 2.1, Vulmatch, 二进制发布, 关联分析, 威胁情报, 开发者工具, 开源工具, 数字签名, 数据丰富, 无后门, 漏洞管理, 网络安全, 网络调试, 脚本, 自动化, 逆向工具, 隐私保护