GP7846/threat-intelligence-platform

GitHub: GP7846/threat-intelligence-platform

面向金融银行业的自动化威胁情报平台,持续聚合多源 OSINT 数据并基于风险评分通过 iptables 自动执行封禁策略。

Stars: 0 | Forks: 0

# 🛡️ 高级威胁情报平台 (TIP) v2.0 ### 金融与银行业网络安全 — 动态策略执行器 一个构建于 Ubuntu Linux 之上的企业级、自动化威胁情报平台。 该系统持续从多个威胁情报源聚合 OSINT,在 MongoDB 中进行标准化和风险评分,并通过 `iptables` 自动执行内核级防火墙策略 —— 无需任何人工干预。 ## 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ OSINT FEEDS │ │ FeodoTracker │ Abuse.ch SSLBL │ AlienVault OTX │ └───────────────────────┬─────────────────────────────────────┘ │ raw indicators ▼ ┌─────────────────────────────────────────────────────────────┐ │ VALIDATION & NORMALISATION │ │ IP/Domain validation │ Deduplication │ Risk Scoring │ └───────────────────────┬─────────────────────────────────────┘ │ clean documents ▼ ┌───────────────────────────────────┐ │ MongoDB │ │ indicators collection │ │ • risk_score (0–100) │ │ • is_blocked flag │ │ • multi-source tracking │ └───────────┬──────────┬────────────┘ │ │ ▼ ▼ ┌──────────────┐ ┌──────────────────────────────────────┐ │ Elasticsearch│ │ DYNAMIC POLICY ENFORCER │ │ (Kibana) │ │ Reads high-risk unblocked IPs │ │ optional │ │ → iptables -A INPUT -s -j DROP │ └──────────────┘ │ → Updates DB is_blocked = True │ │ → Discord / Slack alert │ └──────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────┐ │ FLASK DASHBOARD (port 5000) │ │ Stat cards │ Charts │ Live table │ │ Emergency rollback UI │ └──────────────────────────────────────┘ ``` ## 技术栈 | 组件 | 技术 | 用途 | |-----------|-----------|---------| | 情报源收集 | Python (Requests) | 抓取 OSINT API 和 CSV 数据源 | | 数据存储 | MongoDB + PyMongo | 具有去重功能的 NoSQL 存储 | | 风险评分 | 自定义算法 | 多源加权评分 | | 防火墙执行 | Linux iptables + subprocess | 内核级 IP 封禁 | | SIEM 同步 | Elasticsearch 8 + Bulk API | 可搜索的威胁全景 | | 仪表板 | Flask + Chart.js + DataTables | 实时 SOC 可观测性 | | 告警 | Discord 和 Slack Webhooks | 封禁事件推送通知 | | 测试 | pytest + unittest | 单元 + 集成 + 冒烟测试 | ## 安装说明 ``` # Clone 仓库 git clone https://github.com/YOUR_USERNAME/threat-intelligence-platform.git cd threat-intelligence-platform # 创建并激活虚拟环境 python3 -m venv venv source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 配置环境变量 cp .env.example .env nano .env # Fill in your API keys and webhook URLs # 确保 MongoDB 正在运行 sudo systemctl start mongod # (可选)确保 Elasticsearch 正在运行以进行 ELK sync sudo systemctl start elasticsearch ``` ## 运行平台 ### 启动主守护进程(运行 iptables 需要 root 权限) ``` sudo ./venv/bin/python3 main.py ``` 守护进程每 **5 分钟** 运行一次完整的 pipeline 周期: 1. 从所有 OSINT 情报源收集数据 2. 验证并对指标进行去重 3. 结合风险评分存储/更新至 MongoDB 4. 自动封禁风险评分 ≥ BLOCK_THRESHOLD 的 IP(默认:70) 5. 同步至 Elasticsearch(如果可用) ### 启动 SOC 仪表板 ``` python3 dashboard/app.py # 自动在 http://localhost:5000 打开 ``` ### 紧急 IP 回滚(SOC 分析师) ``` # 解封单个 IP sudo python3 -m enforcer.rollback 185.220.101.45 # 解封所有 TIP-managed 规则(完全回滚) sudo python3 -m enforcer.rollback --all ``` ### API 回滚(通过仪表板 UI) 仪表板内置了一个回滚表单。输入 IP 并点击 **INITIATE ROLLBACK**。 这将使用 `{"ip": "x.x.x.x"}` 调用 `POST /api/rollback`。 ## REST API 端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | GET | `/` | SOC 主仪表板 | | GET | `/api/threats` | 所有指标的 JSON 列表 | | GET | `/api/stats` | 聚合的平台统计数据 | | GET | `/api/blocked` | 所有当前被封禁的 IP | | POST | `/api/rollback` | 解封 IP(请求体:`{"ip":"..."}`) | ## 风险评分算法 | 报告来源数量 | 基础分数 | |-------------------|-----------| | 1 个来源 | 40 | | 2 个来源 | 65 | | 3 个及以上来源 | 85 | **+10 额外加分**(如果威胁类型匹配):`ransomware`, `apt`, `botnet`, `qakbot`, `banking-trojan`, `malicious_ssl`, `emotet`, `trickbot`, `cobalt-strike` **最高分:100** 当评分 ≥ `BLOCK_THRESHOLD`(默认 70,可通过 `.env` 配置)时触发自动封禁。 ## 运行测试 ``` # 所有测试(unit + integration + smoke) python3 -m pytest tests/ -v # 不使用 pytest 快速运行 python3 tests/test_feeds.py ``` 测试覆盖范围: - IP / 域名验证器(单元测试) - 风险评分算法(单元测试) - Feodo Tracker 情报源 schema 验证(实时) - SSL Blacklist 情报源解析(实时) - 端到端 pipeline 冒烟测试(需要 MongoDB) ## OSINT 情报源 | 情报源 | 类型 | 是否需要 API Key | |------|------|-----------------| | [Feodo Tracker](https://feodotracker.abuse.ch) | 僵尸网络 C2 IP (JSON) | 否 | | [Abuse.ch SSLBL](https://sslbl.abuse.ch) | 恶意 SSL IP (CSV) | 否 | | [AlienVault OTX](https://otx.alienvault.com) | IP 和域名 (JSON API) | 是(免费) | ## 合规与日志记录 所有操作均记录在 `logs/` 目录中: | 日志文件 | 内容 | |----------|----------| | `system.log` | 主守护进程 pipeline 事件 | | `feeds.log` | 各情报源的收集结果 | | `firewall.log` | iptables 封禁 / 回滚审计追踪 | | `alerts.log` | Discord / Slack webhook 发送记录 | | `dashboard.log` | 仪表板和 API 访问日志 | 这些日志可作为 PCI-DSS 合规报告的**不可变审计记录**。 ## 用户角色 | 角色 | 主要用途 | |---------|-------------| | **SOC 分析师** | 监控仪表板,审查威胁表格,发起回滚 | | **安全工程师** | 审查防火墙日志,调整 BLOCK_THRESHOLD,添加新的情报源 | | **合规专员** | 导出日志作为 PCI-DSS 审计证据 | *专为金融与银行业务的自主 SOC 运营而构建。*
标签:ESC4, iptables, MongoDB, OSINT, 威胁情报, 安全规则引擎, 开发者工具, 逆向工具, 防火墙策略