SHAROZ221/ThreatIntel

GitHub: SHAROZ221/ThreatIntel

一个基于 Python Flask 的轻量级威胁情报聚合平台,帮助 SOC 分析师集中管理、查询、富化与导出各类失陷指标(IOC)。

Stars: 7 | Forks: 0

# 🔍 ThreatIntel 聚合器 ### 多源威胁情报与 IOC 管理平台 ![Python](https://img.shields.io/badge/Python-3.8+-3776AB?style=flat-square&logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-3.0-000000?style=flat-square&logo=flask&logoColor=white) ![AbuseIPDB](https://img.shields.io/badge/API-AbuseIPDB-orange?style=flat-square) ![Status](https://img.shields.io/badge/Status-Active-00ff88?style=flat-square) ![Type](https://img.shields.io/badge/Type-Threat%20Intel%20%2F%20OSINT-red?style=flat-square) *一个基于 Python 的威胁情报平台,可聚合 IOC,查询实时信誉 API,并提供一个 Web dashboard,用于搜索、添加、管理和导出威胁指标——专为 SOC 分析师工作流而构建。* ## 🔍 什么是 ThreatIntel Aggregator? 在安全运营中心 (SOC) 中,分析师需要不断在多个来源中查询**失陷指标 (IOC)** —— 恶意 IP、域名和文件哈希 —— 以确定威胁风险。 该工具将此流程集中化。它将 IOC 存储在本地数据库中,允许您即时搜索和过滤它们,利用实时的 **AbuseIPDB** 信誉数据丰富 IP 信息,并通过简洁的 Web dashboard 展示所有内容。 这映射了现实世界中的 SOC 工具(如 MISP、OpenCTI 和 ThreatConnect)—— 但它是完全使用 Python 从头构建的。 ## ⚙️ 工作原理 ``` Analyst submits IOC (IP / Domain / Hash) │ ▼ Search threats.db ──► Found? ──► Display result + risk score │ Not found? │ ▼ AbuseIPDB API Lookup (for IPs) │ ▼ Store result ──► Display enriched intelligence │ ▼ Export ──► Download full IOC list as CSV ``` 所有 IOC 都会存储其类型、类别和风险评分。Dashboard 会显示实时统计数据,并允许分析师添加、搜索、删除或导出指标。 ## 🧩 支持的 IOC 类型 | 类型 | 示例 | 用例 | |------|---------|----------| | IP 地址 | `192.168.1.1` | 恶意主机、C2 服务器 | | 域名 | `evil-domain.xyz` | 钓鱼、恶意软件分发 | | 文件哈希 | `d41d8cd98f00b204...` | 恶意软件样本识别 | ## 🚀 快速开始 **1. 克隆仓库** ``` git clone https://github.com/SHAROZ221/ThreatIntel.git cd ThreatIntel ``` **2. 安装依赖** ``` pip install -r requirements.txt ``` **3. 设置您的 AbuseIPDB API key** 在根目录下创建一个 `.env` 文件: ``` ABUSEIPDB_API_KEY=your_api_key_here ``` 在 [abuseipdb.com](https://www.abuseipdb.com/register) 获取免费的 API key **4. 初始化数据库** ``` python init_db.py ``` **5. (可选) 填充示例数据** ``` python seed_data.py ``` **6. 运行应用** ``` python app.py ``` **7. 打开 dashboard** ``` http://localhost:5000/ ``` ## 📊 Dashboard 功能 Web dashboard 提供: - **实时统计** —— 总 IOC 数量,按 IP / 域名 / 哈希进行细分 - **IOC 搜索** —— 查找任何指标,支持可选的类型过滤 - **添加新威胁** —— 提交指标、类型、类别和风险评分 - **删除指标** —— 移除已解决或误报的条目 - **近期威胁表** —— 按最近添加时间排序的完整 IOC 列表 - **IOC 类型图表** —— 显示 IP / 域名 / 哈希数量实时细分的环形图 - **风险分布图表** —— 显示低 / 中 / 严重范围内 IOC 数量的柱状图 - **导出为 CSV** —— 一键将完整的 IOC 列表下载为 `.csv` 文件 ## 📤 导出功能 Dashboard 包含一个 **导出 CSV** 按钮,可在两处使用 —— 顶部导航栏和威胁表标题旁边。 点击它将立即下载一个名为 `threatintel-iocs-YYYY-MM-DD.csv` 的文件,其中包含当前所有指标,格式如下: ``` id,indicator,type,category,risk_score 1,"185.220.101.45",IP,C2 Server,92 2,"evil-phish-domain.xyz",Domain,Phishing,78 3,"d41d8cd98f00b204e9800998ecf8427e",Hash,Malware,85 ``` 这对于以下场景非常有用: - 与其他分析师或团队共享 IOC 列表 - 导入到 SIEM 工具,如 Splunk 或 Microsoft Sentinel - 保留威胁数据库的离线备份 - 在事件响应期间进行报告和记录 导出完全在客户端运行 —— 无需服务器请求。 ## 📁 项目结构 ``` ThreatIntel/ ├── app.py → Flask web server, all routes & dashboard logic ├── init_db.py → Creates the SQLite threats database & schema ├── seed_data.py → Populates DB with sample IOCs for testing ├── view_data.py → CLI utility to inspect database contents ├── test.py → Test suite for core functionality ├── templates/ │ └── index.html → Web dashboard UI (with charts and CSV export) ├── threats.db → SQLite IOC database (auto-generated) └── .env → API keys (not committed — see .gitignore) ``` ## 🗄️ 数据库 Schema ``` CREATE TABLE threats ( id INTEGER PRIMARY KEY AUTOINCREMENT, indicator TEXT NOT NULL, -- The IOC value (IP, domain, hash) type TEXT NOT NULL, -- 'IP', 'Domain', or 'Hash' category TEXT NOT NULL, -- e.g. 'Malware', 'Phishing', 'C2' risk_score INTEGER NOT NULL -- 0–100 severity rating ) ``` ## 🧰 构建技术 - **Flask** —— Web 框架和路由 - **SQLite3** —— 轻量级 IOC 存储(无需外部 DB) - **AbuseIPDB API** —— 实时 IP 信誉和滥用分数查询 - **python-dotenv** —— 通过 `.env` 安全管理 API key - **Chart.js** —— Dashboard 上的实时环形图和柱状图 - **Inter & JetBrains Mono** —— Dashboard UI 的简洁排版 - **HTML / CSS / JS** —— 带有 CSV 导出功能的 Dashboard 前端 ## 🔐 安全说明 切勿提交您的 `.env` 文件或暴露您的 API key。`.gitignore` 默认配置为排除 `.env`。如果您不小心暴露了 key,请立即在 [abuseipdb.com](https://www.abuseipdb.com) 重新生成。 **Sharoz** · BCA 第三年 · 网络安全 (SOC 方向) [github.com/SHAROZ221](https://github.com/SHAROZ221)
标签:Flask, IOC管理, Python, 后端开发, 威胁情报, 安全运营, 开发者工具, 扫描框架, 无后门, 逆向工具