gresstechs/threat_intel_platform

GitHub: gresstechs/threat_intel_platform

一个集成多源威胁情报与机器学习的自动化关联平台,旨在通过智能分类和告警优先级排序减轻 SOC 分析师的警报疲劳问题。

Stars: 0 | Forks: 0

# 自动化威胁情报关联平台 ## 概述 一个自动化威胁情报关联平台,集成了三个开源威胁情报源 — **AlienVault OTX**、**VirusTotal** 和 **AbuseIPDB** — 并结合集成机器学习(Random Forest + XGBoost),以提高威胁检测准确性并减轻安全运营中心(SOC)分析师的工作量。 本项目直接解决了 Sundaramurthy 等人 (2022) 记录的 SOC 信息过载问题,在该问题中,分析师每天处理 12,000+ 个警报,误报率高达 85%。通过 ML 关联多源情报,该平台的目标是实现 **40% 的分析师工作量减少** 和 **>95% 的威胁分类准确性**。 ## 研究问题 ## 项目目标 | # | 目标 | 成功标准 | |---|-----------|-------------------| | O1 | 集成 OTX、VirusTotal 和 AbuseIPDB API,实现标准化及 PostgreSQL 存储 | 每个指标 < 5 秒 | | O2 | 用于多类威胁分类的集成 ML 模型(Random Forest + XGBoost) | 准确率 > 95%,F1 > 0.93 | | O3 | 自动化警报优先级排序系统 | 工作量减少 ≥ 40% | | O4 | Grafana 实时监控仪表板 | 8+ 个面板,响应时间 < 2 秒 | | O5 | 5 个自动化 MITRE ATT&CK 响应 Playbook | 执行成功率 > 90% | ## 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Threat Intelligence Platform │ ├──────────────┬──────────────────┬──────────────────────────────┤ │ Data Sources │ Correlation │ Response & Visualisation │ │ │ Engine │ │ │ OTX API ───►│ │ Grafana Dashboards (8+) │ │ VT API ───►│ Normaliser ───►│ Alert Prioritisation │ │ Abuse ───►│ ML Classifier │ MITRE ATT&CK Playbooks (5) │ │ │ (RF + XGBoost) │ Jenkins CI/CD Pipeline │ ├──────────────┴──────────────────┴──────────────────────────────┤ │ PostgreSQL Database │ │ threat_indicators | correlation_results | ingestion_log │ └─────────────────────────────────────────────────────────────────┘ ``` ## 仓库结构 ``` threat-intel-platform/ ├── src/ │ ├── api/ │ │ ├── otx_client.py # AlienVault OTX API v1 client │ │ ├── virustotal_client.py # VirusTotal API v3 client │ │ └── abuseipdb_client.py # AbuseIPDB API v2 client │ ├── core/ │ │ ├── normaliser.py # Unified ThreatIndicator schema │ │ ├── db.py # PostgreSQL schema & CRUD │ │ └── config.py # Configuration management │ ├── ml/ │ │ ├── feature_engineering.py # Feature extraction pipeline │ │ ├── model_trainer.py # RF + XGBoost training │ │ └── predictor.py # Inference & scoring │ ├── automation/ │ │ ├── alert_prioritiser.py # Alert ranking algorithm │ │ └── playbooks/ # 5 MITRE ATT&CK playbooks │ └── main.py # CLI orchestrator ├── tests/ │ └── test_platform.py # 42+ unit tests (pytest) ├── dashboards/ │ └── grafana/ # Grafana dashboard JSON configs ├── docs/ │ └── D1.3_api_integration.docx # Technical documentation ├── jenkins/ │ └── Jenkinsfile # CI/CD pipeline definition ├── .env.example # Environment variable template ├── .gitignore ├── requirements.txt └── README.md ``` ## 快速开始 ### 前置条件 - Python 3.12+ - PostgreSQL 14+ - OTX、VirusTotal 和 AbuseIPDB 的 API 密钥(免费层) ### 安装 ``` # 1. 克隆仓库 git clone https://github.com/gresstechs/threat-intel-platform.git cd threat-intel-platform # 2. 创建虚拟环境 python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows # 3. 安装依赖 pip install -r requirements.txt # 4. 配置环境 cp .env.example .env # 编辑 .env 填入您的 API keys 和数据库凭据 ``` ### 数据库设置 ``` # 创建 PostgreSQL 数据库 psql -U postgres -c "CREATE DATABASE threat_intel;" psql -U postgres -c "CREATE USER threat_user WITH PASSWORD 'yourpassword';" psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE threat_intel TO threat_user;" ``` Schema 将在首次运行时通过 `db.py` 自动创建。 ### 使用方法 ``` # 查询单个 indicator 在所有三个 feeds 中的信息 python src/main.py --indicator 198.51.100.1 --type ip # 运行批量摄入循环 (OTX pulses + AbuseIPDB blacklist) python src/main.py --ingest # 打印数据库统计信息 python src/main.py --stats ``` ## 运行测试 ``` # 运行带 coverage 的完整测试套件 pytest tests/ -v --cov=src --cov-report=term-missing # 预期输出:42 passed ``` ## 技术栈 | 组件 | 技术 | |-----------|-----------| | 语言 | Python 3.12 | | 数据库 | PostgreSQL 14 | | ML 框架 | scikit-learn, XGBoost | | CI/CD | Jenkins | | 仪表板 | Grafana | | API 客户端 | requests, tenacity | | 测试 | pytest, pytest-cov | | 配置 | python-dotenv | ## 进度 | 交付物 | 状态 | 截止日期 | |-------------|--------|----------| | D1.1 文献综述 | ✅ 已完成 | 第 4 周 | | D1.2 伦理审批 | ✅ 已完成 | 第 3 周 | | D1.3 API 集成模块 | ✅ 已完成 | 第 6 周 | | D1.4 PostgreSQL 数据库 | 🔄 进行中 | 第 8 周 | | D2.1 训练数据集 | ⏳ 待定 | 第 10 周 | | D2.2 ML 模型(准确率 >95%) | ⏳ 待定 | 第 14 周 | | D3.1 警报优先级排序 | ⏳ 待定 | 第 16 周 | | D3.2 Jenkins CI/CD | ⏳ 待定 | 第 18 周 | | D3.3 响应 Playbook | ⏳ 待定 | 第 20 周 | | D4.1 Grafana 仪表板 | ⏳ 待定 | 第 20 周 | | D5.1 性能报告 | ⏳ 待定 | 第 22 周 | | D5.2 评估报告 | ⏳ 待定 | 第 23 周 | | D6.1 学位论文 | ⏳ 待定 | 第 26 周 | ## 安全性 - API 密钥仅存储在 `.env` 中 — 绝不提交到版本控制 - `.env` 已列入 `.gitignore` - 所有 API 访问均为只读(不向外部服务提交数据) - 测试使用模拟数据 — 单元测试期间不进行实时 API 调用 - 平台专为**防御性安全**设计 ## 学术背景 - **专业:** MSc Applied Computing,桑德兰大学 (University of Sunderland) - **模块:** PROM03 — MSc Dissertation - **时间线:** 2026 年 2 月 – 8 月(26 周) - **基于:** CTI 实习,实现了 99.88% 的恶意软件检测准确率(单源) - **扩展至:** 基于 ML 分类的多源关联 ## 许可证 本项目为学术研究目的而开发。 © 2026 Chidera Progress Nwaokwa — 桑德兰大学 (University of Sunderland)。 未获授权不得用于商业用途。
标签:AbuseIPDB, AMSI绕过, Apex, Ask搜索, CISA项目, Cloudflare, Grafana, HTTP/HTTPS抓包, IP 地址批量处理, MITRE ATT&CK, PostgreSQL, SOAR, VirusTotal, XGBoost, 分类算法, 告警关联, 威胁情报, 威胁检测, 安全数据分析, 安全编排与自动化, 安全规则引擎, 安全运营中心, 开发者工具, 异常检测, 态势感知, 情报源集成, 机器学习, 网络安全, 网络映射, 自动化分类, 自动化响应, 误报率降低, 随机森林, 隐私保护, 集成学习