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 技术进行关联。 ![CVE Data Flow Visualization](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/c5e7a03ee8155309.png) *交互式 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 Top 10 Visualization](https://raw.githubusercontent.com/NullSpace-BitCradle/Threat_Intelligence_Pipeline/main/images/OWASP_Top_10.png) *显示受影响的 OWASP 安全类别及其 CVE 数量的交互式卡片* **MITRE ATT&CK 矩阵** ![MITRE ATT&CK Matrix](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/73c33c561a155341.png) *显示 CVE 分析中高亮攻击技术的 MITRE ATT&CK Navigator* **MITRE D3FEND 对抗措施** ![MITRE D3FEND](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/b7beb7cd3d155346.png) *从攻击模式映射的防御技术* ### 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, 企业安全, 威胁建模, 威胁情报, 安全合规, 安全态势感知, 开发者工具, 情报管道, 数据关联分析, 时序数据库, 漏洞优先级, 漏洞分析, 网络代理, 网络安全工具, 网络资产管理, 自定义请求头, 路径探测, 逆向工具, 速率限制处理