NullSpace-BitCradle/Threat_Intelligence_Pipeline
GitHub: NullSpace-BitCradle/Threat_Intelligence_Pipeline
将CVE漏洞自动关联至CWE、CAPEC、OWASP Top 10、MITRE ATT&CK及D3FEND多框架的企业级威胁情报分析系统。
Stars: 1 | Forks: 0
# 威胁情报 Pipeline (TIP)
## 🎯 概述
Threat Intelligence Pipeline (TIP) 是一个企业级漏洞分析系统,可自动检索、处理通用漏洞披露,并将其与相应的通用缺陷枚举、通用攻击模式枚举和分类、OWASP Top 10 2021 类别以及 MITRE ATT&CK & D3FEND 技术进行关联。

*交互式 Sankey 图展示了完整的数据流:CVE → CWE → CAPEC → OWASP → ATT&CK 技术 → D3FEND*
## 💡 目的
**这为什么重要?**
当一个新的 CVE 发布时,安全团队面临着一个关键挑战:*理解它对组织意味着什么以及如何防御它*。仅凭一个 CVE 编号无法告诉你:
- 🎯 **属于哪个 OWASP 类别**?(是注入?还是失效的访问控制?)
- ⚔️ **对手可能使用什么攻击技术**来利用它?
- 🛡️ **我们应该实施哪些防御措施**?
- 🔍 **根本原因是什么**?(CWE 缺陷)
- 💥 **关联了什么攻击模式**?(CAPEC)
此 Pipeline 通过将 CVE 与五个主要安全框架进行关联,**自动回答所有这些问题**,将原始漏洞数据转化为可操作的威胁情报。
**非常适合:**
- 🔒 **安全团队** - 快速评估 CVE 影响并确定修复优先级
- 🎓 **安全研究人员** - 分析漏洞模式和攻击关系
- 📊 **风险分析师** - 将漏洞映射到 OWASP Top 10 以进行合规性报告
- 🛠️ **红/蓝队** - 了解攻击向量和防御措施 (D3FEND)
- 📚 **安全专业的学生** - 学习不同安全框架如何相互连接
**真实示例:** 你听说了 CVE-2024-27768。无需跨多个数据库手动研究,该工具会立即显示它是 CWE-22(路径遍历),映射到 OWASP A05:2021(安全配置错误),识别 CAPEC 攻击模式,揭示相关的 ATT&CK 技术,并建议 D3FEND 对抗措施——所有这些都通过交互式可视化呈现。
## 🚀 主要特性
- **完整历史数据**:单次运行即可获取从 1999 年至今的所有 CVE(308,619+ 个 CVE)
- **OWASP Top 10 2021 映射**:通过 CWE 映射自动将 CVE 关联到 OWASP 安全类别
- **MITRE D3FEND 集成**:自动将攻击技术映射到防御性对抗措施
- **自适应速率限制**:根据 API 响应调整的智能速率限制,并能优雅地处理 429 错误
- **进度跟踪与恢复**:可配置的进度保存功能,支持从中断处恢复
- **企业级性能**:连接池、高级缓存、并行处理
- **健壮的错误处理**:自定义异常、重试策略、自动恢复
- **全面监控**:实时指标、健康检查、详细报告
- **智能 API 管理**:指数退避、抖动和动态延迟调整
- **请求跟踪**:带有请求 ID 关联的上下文感知日志记录
- **健康监控**:包含数据库、API 和资源监控的系统健康检查
- **Prometheus 指标**:包含 Counters、Gauges、Histograms 和 Summaries 的完整指标收集
- **交互式 Web 界面**:功能齐全的 Web UI,提供 CVE 分析、OWASP Top 10 可视化、MITRE ATT&CK 矩阵和实时监控
- **配置验证**:带有详细错误报告的 JSON schema 验证
- **灵活配置**:基于 JSON 的配置,支持环境变量
- **综合测试套件**:125+ 个 pytest 测试,包含覆盖率报告和类型检查
- **单命令操作**:使用一个命令运行整个 Pipeline
## 📦 安装
**前置条件:** Python 3.10+ 和 NVD API 密钥(推荐)
```
git clone https://github.com/NullSpace-BitCradle/Threat_Intelligence_Pipeline.git
cd Threat_Intelligence_Pipeline
pip install -r requirements.txt
python setup.py
```
**注意:** 推荐使用 Python 3.12 或 3.13 以获得最佳兼容性。Python 3.14+(预发布版)的包支持可能有限。
## 🎯 快速开始
```
# 运行完整 pipeline (抓取自 1999 年以来的所有 CVE)
python run_pipeline.py
# 检查系统状态
python run_pipeline.py --status
# 健康监控
python run_pipeline.py --health-check
python run_pipeline.py --metrics
# 启动 web 界面
python run_pipeline.py --web-interface
# 高级选项
python run_pipeline.py --force # Force update even if not needed
python run_pipeline.py --cve-only # Process CVEs only (with resume capability)
python run_pipeline.py --cve-only --clear-progress # Start CVE retrieval from beginning
python run_pipeline.py --db-only # Update databases only
python run_pipeline.py --verbose # Enable verbose logging
```
## 📊 CVE 数据覆盖范围
**完整历史覆盖:**
- **CVE 总数**:308,619+ 个漏洞,时间跨度从 1999 年至今
- **年份范围**:1999-2025(完整的 NVD 数据库)
- **单次运行**:一次执行检索所有 CVE(约 15 分钟)
- **恢复能力**:可以使用进度跟踪从中断处恢复
- **自适应性能**:自动调整以适应 API 速率限制
**按年份的数据分布:**
- **1999-2005**:早期漏洞数据(1,000-5,000 个 CVE/年)
- **2006-2010**:安全意识增长期(5,000-7,000 个 CVE/年)
- **2011-2015**:快速扩张期(8,000-10,000 个 CVE/年)
- **2016-2020**:漏洞报告高峰期(17,000-20,000 个 CVE/年)
- **2021-2025**:当前时期(23,000-38,000 个 CVE/年)
**性能特性:**
- **智能速率限制**:可配置的延迟(默认 0.5s-30s),根据 API 响应自适应调整
- **进度跟踪**:可配置的保存间隔(默认:每 5,000 个 CVE),用于恢复能力
- **错误恢复**:可配置的重试次数,带有指数退避和抖动
- **内存高效**:分批处理 CVE 以处理大型数据集
## 🔧 调度
**Linux/Mac (Cron):**
```
# 凌晨 2 点每日更新
0 2 * * * cd /path/to/Threat_Intelligence_Pipeline && python run_pipeline.py
```
**Windows (Task Scheduler):**
- 创建一个任务以每日运行 `python run_pipeline.py`
- 将工作目录设置为 Threat_Intelligence_Pipeline 文件夹
## 🔑 NVD API 密钥设置
**为了获得最佳性能,这是必需的** - 如果没有它,你会很快达到速率限制。
1. 获取你的 API 密钥:[NVD API Key Request](https://nvd.nist.gov/developers/request-an-api-key)
2. 设置为环境变量:
```
# Linux/Mac
export NVD_API_KEY="your-api-key-here"
# Windows
set NVD_API_KEY=your-api-key-here
# 或创建 .env 文件
echo NVD_API_KEY=your-api-key-here > .env
```
## 📊 系统状态与监控
### 命令行监控
```
# 系统健康检查
python run_pipeline.py --health-check
# 显示 metrics
python run_pipeline.py --metrics
# Pipeline 状态
python run_pipeline.py --status
```
### Web 界面监控
```
# 启动 web 界面
python run_pipeline.py --web-interface --web-port 8080
# 访问监控 endpoints
curl http://localhost:8080/health # Health status
curl http://localhost:8080/metrics # Prometheus metrics
curl http://localhost:8080/status # Pipeline status
curl http://localhost:8080/requests # Request tracking
```
### 可用指标
- **API 指标**:请求计数、持续时间、成功率
- **数据库指标**:操作计数、性能、错误率
- **CVE 处理**:处理时间、成功率、吞吐量
- **系统指标**:内存使用、CPU、磁盘空间
- **错误指标**:按类别和严重程度划分的错误计数
- **缓存指标**:命中/未命中率、性能
## 🏗️ 架构
**包结构:**
- **`tip.core`**:核心处理组件
- **CVE Processor**:处理 CVE → CWE → CAPEC → ATT&CK → D3FEND 映射及 OWASP 关联
- **OWASP Processor**:将 CWE ID 映射到 OWASP Top 10 2021 安全类别
- **Database Manager**:下载并处理 CAPEC、CWE、ATT&CK、D3FEND、OWASP 数据
- **Pipeline Orchestrator**:管理 Pipeline 执行和监控
- **`tip.monitoring`**:可观测性与监控
- **Health Checker**:系统健康监控和告警
- **Metrics Collector**:兼容 Prometheus 的指标收集
- **Request Tracker**:请求 ID 关联和上下文感知日志记录
- **Web Interface**:交互式 Web UI,提供 CVE 分析、OWASP Top 10、MITRE ATT&CK 和 D3FEND 可视化
- **`tip.utils`**:实用工具组件
- **Config Manager**:配置管理和验证
- **Error Handler**:自定义异常、结构化日志记录、恢复策略
- **Rate Limiter**:使用令牌桶和滑动窗口算法的 API 速率限制
- **Performance Optimizer**:HTTP 会话管理、缓存、线程池
- **Validation**:数据验证和完整性检查
- **`tip.database`**:数据库工具
- **Database Optimizer**:数据库性能和优化
**数据流:** 数据库更新 → CVE 检索 → CVE 处理 → 输出生成
**监控流:** 健康检查 → 指标收集 → 请求跟踪 → Web 界面
## 🔧 配置
**主配置:** `config.json` - API 设置、数据库 URL、处理参数、日志记录
**配置验证:**
- JSON schema 验证确保配置正确性
- 对无效配置提供详细的错误报告
- 启动时自动验证
**环境变量:**
- `NVD_API_KEY`:你的 NVD API 密钥,用于获得最佳性能
- `LOG_LEVEL`:覆盖日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
**关键配置选项:**
```
{
"api": {
"nvd": {
"rate_limit": {
"base_delay": 0.5,
"max_delay": 30.0,
"backoff_multiplier": 2.5,
"max_retries": 5
}
},
"d3fend": {
"enabled": true
}
},
"processing": {
"cache_size": 1000,
"cache_ttl": 3600,
"max_connections": 100,
"connection_pool_size": 20
},
"progress_tracking": {
"save_interval": 5000,
"log_interval": 10000
},
"error_handling": {
"enable_circuit_breaker": true,
"enable_retry": true,
"enable_recovery": true
}
}
```
## 📁 项目结构
```
Threat_Intelligence_Pipeline/
├── run_pipeline.py # 🎯 Main entry point
├── setup.py # 🛠️ Setup script for initialization
├── config.json # 📋 Configuration file
├── requirements.txt # 📦 Dependencies
├── pyproject.toml # 📦 Project configuration (includes pytest config)
├── LICENSE # 📄 License
├── lastUpdate.txt # 🕒 Last update timestamp (generated)
├── cve_progress.json # 📊 CVE retrieval progress (temporary, auto-cleaned)
├── src/ # 📁 Source code package
│ └── tip/ # 🐍 Main package
│ ├── __init__.py # Package initialization
│ ├── py.typed # PEP 561 marker for type hints
│ ├── core/ # 🎯 Core functionality
│ │ ├── __init__.py
│ │ ├── pipeline_orchestrator.py # 🎭 Unified orchestration
│ │ ├── cve_processor.py # ⚙️ Unified CVE processing
│ │ ├── owasp_processor.py # 📊 OWASP Top 10 mapping
│ │ └── database_manager.py # 🗄️ Unified database management
│ ├── monitoring/ # 📊 Monitoring & metrics
│ │ ├── __init__.py
│ │ ├── health_check.py # 🏥 Health monitoring
│ │ ├── metrics.py # 📈 Metrics collection
│ │ ├── request_tracker.py # 📊 Request tracking
│ │ └── web_interface.py # 🌐 Web API interface
│ ├── utils/ # 🛠️ Utilities
│ │ ├── __init__.py
│ │ ├── config.py # ⚙️ Configuration management
│ │ ├── config_validator.py # ✅ Configuration validation
│ │ ├── error_handler.py # 🛡️ Error handling
│ │ ├── error_recovery.py # 🔄 Error recovery
│ │ ├── rate_limiter.py # 🚦 API rate limiting
│ │ ├── validation.py # ✅ Data validation
│ │ └── performance_optimizer.py # ⚡ Performance optimization
│ └── database/ # 🗄️ Database utilities
│ ├── __init__.py
│ └── database_optimizer.py # 🚀 Database optimization
├── tests/ # 🧪 Test suite
│ ├── __init__.py
│ ├── conftest.py # Pytest fixtures
│ ├── test_validation.py # Validation tests
│ ├── test_rate_limiter.py # Rate limiting tests
│ ├── test_metrics.py # Metrics tests
│ ├── test_owasp_processor.py # OWASP processor tests
│ ├── test_database_optimizer.py # Database optimizer tests
│ └── test_performance_optimizer.py # Performance tests
├── database/ # 📊 CVE database files (generated)
│ ├── CVE-1999.jsonl
│ ├── CVE-2000.jsonl
│ └── ... (all years)
├── resources/ # 🗃️ Database resources (generated)
│ ├── capec_db.json # CAPEC attack patterns
│ ├── cwe_db.json # CWE weaknesses
│ ├── owasp_db.json # OWASP Top 10 mappings
│ ├── techniques_db.json # MITRE ATT&CK techniques
│ └── defend_db.jsonl # MITRE D3FEND countermeasures
├── results/ # 📈 Results and summaries (generated)
│ ├── new_cves.jsonl
│ └── update_summary.json
├── logs/ # 📝 Log files (generated)
│ ├── tip.log
│ └── tip_errors.json
└── docs/ # 🌐 Web interface
├── index.html
├── css/
├── js/
└── mitre/
```
## 🌐 Web 界面
### 交互式 CVE 分析与可视化
Web 界面提供了一个用于 CVE 分析的综合仪表板,包含 OWASP Top 10、MITRE ATT&CK 和 D3FEND 的交互式可视化:
```
# 启动集成 web 界面
python run_pipeline.py --web-interface --web-port 8080
# 在浏览器中打开:
# http://localhost:8080
```
**特性:**
- **CVE 输入与分析**:输入 CVE 并立即获得关联分析
- **OWASP Top 10 2021 可视化**:显示安全分类的交互式类别细分
- **交互式 MITRE ATT&CK 矩阵**:CVE → CWE → CAPEC → 攻击技术的可视化映射
- **实时数据处理**:与 CWE、CAPEC、OWASP 和 MITRE ATT&CK 数据进行实时关联
- **Sankey 图可视化**:显示漏洞关系(包括 OWASP 类别)的交互式流程图
- **D3FEND 集成**:防御技术映射和可视化
#### 📸 截图
**OWASP Top 10 类别细分**

*显示受影响的 OWASP 安全类别及其 CVE 数量的交互式卡片*
**MITRE ATT&CK 矩阵**

*显示 CVE 分析中高亮攻击技术的 MITRE ATT&CK Navigator*
**MITRE D3FEND 对抗措施**

*从攻击模式映射的防御技术*
### API 端点
```
# 监控 endpoints
curl http://localhost:8080/health # Health status
curl http://localhost:8080/metrics # Prometheus metrics
curl http://localhost:8080/status # Pipeline status
curl http://localhost:8080/requests # Request tracking
curl http://localhost:8080/config # Configuration info
# 控制 endpoints
curl -X POST http://localhost:8080/api/run # Run pipeline
curl -X POST http://localhost:8080/api/update-databases # Update databases
curl -X POST http://localhost:8080/api/process-cves # Process CVEs
```
## 🆕 近期增强
### 完整历史数据访问
- **完整 CVE 数据库**:现在可以在单次运行中检索从 1999 年至今的所有 308,619+ 个 CVE
- **自适应速率限制**:智能速率限制,从 0.5s 开始,根据 API 响应最高调整至 30s
- **进度跟踪**:每 5,000 个 CVE 保存一次进度,以便在中断后恢复
- **智能错误处理**:5 次重试尝试,带有指数退避、抖动和动态延迟调整
- **单次运行完成**:不再需要多次运行脚本 - 约 15 分钟内获取所有内容
### 专业包结构
- **清晰的组织**:所有 Python 模块组织成逻辑包(`core`、`monitoring`、`utils`、`database`)
- **更好的可维护性**:相关功能分组在一起,便于开发和调试
- **可扩展架构**:易于在适当位置添加新模块
- **Python 最佳实践**:遵循标准 Python 打包约定
- **整洁的根目录**:根目录中仅保留必要文件
### OWASP Top 10 2021 集成
- **自动 OWASP 映射**:通过 CWE 关联将 CVE 映射到 OWASP Top 10 2021 安全类别
- **官方映射**:使用全面的 MITRE CWE-1344 和 OWASP 发布的映射(200+ 个 CWE 到 OWASP 的关联)
- **增强的 CWE 提取**:使用正则回退从正确的 NVD API weaknesses 字段中提取 CWE ID
- **交互式可视化**:显示受影响 OWASP 类别及其 CVE 数量的美观类别卡片
- **Sankey 图集成**:流程图中的粉色 OWASP 节点显示安全分类
- **父级 CWE 支持**:包含父级 CWE 关系以实现全面的 OWASP 覆盖
### 集成 Web 界面
- **统一体验**:单个命令同时启动数据处理和 Web 界面
- **交互式 CVE 分析**:实时 CVE 输入和关联分析
- **OWASP Top 10 选项卡**:带有交互式类别细分和统计信息的专用选项卡
- **MITRE ATT&CK 可视化**:显示 CVE → CWE → CAPEC → 攻击技术的交互式矩阵
- **综合数据服务**:自动提供所有必需的静态文件和数据库
- **现代 UI**:简洁、响应式的界面,带有实时数据处理
### 生产就绪特性
- **API 速率限制**:使用牌桶和滑动窗口算法防止速率限制违规
- **健康监控**:针对数据库、API 和资源监控的全面系统健康检查
- **请求跟踪**:带有请求 ID 关联的上下文感知日志记录,便于调试
- **Prometheus 指标**:包含 Counters、Gauges、Histograms 和 Summaries 的完整指标收集系统
- **配置验证**:带有详细错误报告的 JSON schema 验证
- **Web 界面**:用于监控、控制和指标导出的 REST API
### 监控与可观测性
- 实时健康状态监控
- 性能指标收集和导出
- 请求关联和调试
- 错误率跟踪和告警
- 系统资源监控
### 卓越运营
- 用于容错的熔断器模式
- 带有退避策略的自适应速率限制
- 全面的错误恢复机制
- 生产级日志记录和监控
- 基于 Web 的运维界面
- 长时间运行操作的恢复能力
### 测试与质量保证
- **综合测试套件**:125+ 个涵盖所有主要组件的测试
- **Pytest 集成**:带有 fixtures 和 markers 的现代测试框架
- **覆盖率报告**:使用 pytest-cov 跟踪测试覆盖率
- **类型提示**:带有 py.typed 标记的完整类型注解支持
- **严格的 Mypy 配置**:在运行前捕获类型错误
## 🔧 故障排除
### 常见问题
**问:Pipeline 因 429 错误停止 - 我该怎么办?**
答:Pipeline 现在会自动处理此问题!它使用自适应速率限制,并将通过指数退避进行重试。只需让它运行 - 它将在大约 15 分钟内完成所有 308,619 个 CVE。
**问:如果 Pipeline 中断,我可以恢复吗?**
答:可以!Pipeline 会定期保存进度(可在 `config.json` 中配置,默认:每 5,000 个 CVE)。如果中断,只需再次运行 `python run_pipeline.py --cve-only`,它将从上次中断的地方恢复。
**问:如果我想重新下载所有内容,如何重新开始?**
答:使用 `python run_pipeline.py --cve-only --clear-progress` 清除进度文件并从头开始。
**问:Pipeline 看起来很慢 - 这正常吗?**
答:是的!检索 308,619 个 CVE 需要时间。自适应速率限制开始时很快(0.5s 延迟),但会根据需要增加延迟以遵守 API 限制。这是正常的,可确保你获取所有数据。
**问:我需要 NVD API 密钥吗?**
答:强烈建议使用!如果没有它,你会更快达到速率限制。在此处免费获取:[NVD API Key Request](https://nvd.nist.gov/developers/request-an-api-key)
### 性能提示
- **使用 NVD API 密钥**以获得最佳性能
- **在非高峰时段运行**以获得更好的 API 响应时间
- **确保稳定的互联网连接**以进行约 15 分钟的下载
- **监控日志**以查看进度(每 10,000 个 CVE)
## 🧪 开发与测试
### 运行测试
该项目包含一个包含 125+ 个测试的综合测试套件:
```
# 运行所有测试
pytest
# 运行并显示详细输出
pytest -v
# 运行特定测试文件
pytest tests/test_validation.py
# 运行并生成覆盖率报告
pytest --cov=src/tip --cov-report=html
# 运行匹配模式的测试
pytest -k "test_rate"
```
### 测试覆盖率
测试套件涵盖:
- **验证工具** - CVE、CWE、CAPEC、技术 ID 验证
- **速率限制** - 令牌桶和滑动窗口算法
- **指标收集** - Counters、Gauges、Histograms、Summaries
- **OWASP 处理器** - CWE 到 OWASP Top 10 的映射
- **数据库优化器** - 缓存和 JSONL 文件操作
- **性能优化器** - 线程池、批处理、缓存
### 代码质量
```
# 使用 mypy 进行类型检查
mypy src/tip
# 项目在 pyproject.toml 中使用了严格的 mypy 配置
```
## 🤝 贡献
1. Fork 本仓库
2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)
3. 运行测试以确保一切正常 (`pytest`)
4. 提交你的更改 (`git commit -m 'Add some amazing feature'`)
5. 推送到分支 (`git push origin feature/amazing-feature`)
6. 打开一个 Pull Request
## 📄 许可证
本项目根据 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。
## 🙏 致谢
- **原作者**:[Galeax](https://github.com/Galeax) 的初步设计和实现促成了本项目。
- **NVD (National Vulnerability Database)** 提供 CVE 数据
- **MITRE Corporation** 提供 CAPEC、CWE、ATT&CK 和 D3FEND 框架
- **OWASP Foundation** 提供 OWASP Top 10 2021 安全风险类别和 CWE 映射
- **开源社区** 提供优秀的工具和库
**🎉 Threat Intelligence Pipeline - 以企业级的性能和可靠性简化漏洞分析!**
标签:ATT&CK映射, CAPEC, CVE自动化, CWE关联, D3FEND防御, DNS枚举, OWASP Top 10, 企业安全, 威胁建模, 威胁情报, 安全合规, 安全态势感知, 开发者工具, 情报管道, 数据关联分析, 时序数据库, 漏洞优先级, 漏洞分析, 网络代理, 网络安全工具, 网络资产管理, 自定义请求头, 路径探测, 逆向工具, 速率限制处理