muchdogesec/arango_cve_processor
GitHub: muchdogesec/arango_cve_processor
一个用于将 CVE 漏洞数据与 EPSS、KEV、ATT&CK 等外部威胁情报源进行自动化关联和丰富化的 Python 脚本。
Stars: 2 | Forks: 0
# Arango CVE Processor
[](https://codecov.io/gh/muchdogesec/arango_cve_processor)
## 开始之前

Arango CVE Processor 内置于 [Vulmatch](https://www.vulmatch.com) 中,该工具也负责下载 CVE 对象(这是 ACVEP 运行所需的)。因此,[Vulmatch](https://www.vulmatch.com) 可能更符合您的需求。
## 太长不看

一个小型脚本,用于将 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://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, 二进制发布, 关联分析, 威胁情报, 开发者工具, 开源工具, 数字签名, 数据丰富, 无后门, 漏洞管理, 网络安全, 网络调试, 脚本, 自动化, 逆向工具, 隐私保护