Saishiva00/Threat-Intelligence-Dashboard
GitHub: Saishiva00/Threat-Intelligence-Dashboard
基于Python和Streamlit构建的威胁情报聚合仪表板,从多个公开情报源实时获取IOC数据和CVE信息并提供可视化分析。
Stars: 0 | Forks: 0
# 🛡️ 威胁情报仪表板
一个真实的网络安全项目,从多个公开情报源聚合实时威胁情报数据,并在交互式 Web 仪表板中展示。
基于 Python + Streamlit 构建。非常适合网络安全岗位简历的项目。
## 🎯 功能
| 功能 | 描述 |
|---|---|
| **实时 IOC 情报源** | 从 AbuseIPDB、OTX 和 URLhaus 获取恶意 IP、域名和哈希值 |
| **IP 信誉检查器** | 输入任意 IP 以获取完整的威胁报告 |
| **CVE 情报源** | 来自 NVD/NIST 的最新漏洞 |
| **可视化分析** | 交互式图表:柱状图、时间轴、世界地图、饼图 |
| **导出** | 将 IOC 下载为 CSV 文件 |
| **搜索与过滤** | 按类型、来源和关键字过滤 IOC |
## 🗂️ 项目结构
```
threat-intel-dashboard/
├── app.py ← Main Streamlit app (UI + navigation)
├── fetcher.py ← API integrations (AbuseIPDB, OTX, URLhaus, NVD)
├── database.py ← SQLite database functions
├── visualizations.py ← Plotly chart functions
├── requirements.txt ← Python dependencies
└── README.md
```
## ⚙️ 安装说明
### 步骤 1 — 克隆项目
```
git clone https://github.com/yourusername/threat-intel-dashboard.git
cd threat-intel-dashboard
```
### 步骤 2 — 创建虚拟环境
```
# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activate
```
### 步骤 3 — 安装依赖
```
pip install -r requirements.txt
```
### 步骤 4 — 获取免费 API 密钥
| API | 获取位置 | 链接 |
|---|---|---|
| AbuseIPDB | 免费注册 → My Account → API | https://www.abuseipdb.com |
| AlienVault OTX | 免费注册 → 个人资料中的 API Key | https://otx.alienvault.com |
| URLhaus | 无需密钥 | — |
| NVD CVE | 无需密钥 | — |
### 步骤 5 — 设置您的 API 密钥
**选项 A — 环境变量(推荐):**
```
# Windows
set ABUSEIPDB_API_KEY=your_key_here
set OTX_API_KEY=your_key_here
# macOS/Linux
export ABUSEIPDB_API_KEY=your_key_here
export OTX_API_KEY=your_key_here
```
**选项 B — 直接编辑 fetcher.py(仅供测试):**
```
ABUSEIPDB_API_KEY = "paste_your_key_here"
OTX_API_KEY = "paste_your_key_here"
```
### 步骤 6 — 运行应用
```
streamlit run app.py
```
在浏览器中打开:**http://localhost:8501**
## 🚀 使用方法
1. 点击侧边栏中的 **"🔄 Fetch All Feeds"** 以加载威胁数据
2. 点击 **"🌐 URLhaus"** 获取即时数据(无需 API 密钥)
3. 浏览 **IOC Browser** 以搜索特定的 IP/域名
4. 使用 **IP Reputation Checker** 调查可疑 IP
5. 查看 **CVE Feed** 了解最新漏洞
6. 查看 **Visual Analytics** 获取图表和世界地图
### 测试 IP
```
185.220.101.45 ← Known malicious (Tor exit node)
45.83.193.218 ← Known C2 server
8.8.8.8 ← Google DNS (should be clean)
1.1.1.1 ← Cloudflare DNS (should be clean)
```
## 🏗️ 架构
```
User (Browser)
│
▼
Streamlit (app.py) ← Web UI layer
│
├── fetcher.py ← Calls external APIs
│ ├── AbuseIPDB API
│ ├── AlienVault OTX API
│ ├── URLhaus API
│ └── NVD CVE API
│
├── database.py ← SQLite storage
│ └── threat_intel.db
│
└── visualizations.py ← Plotly charts
```
**数据流:**
1. 用户点击 "Fetch" → `fetcher.py` 调用 API
2. 解析并清理 API 的 JSON 响应
3. IOC 数据存储在 `threat_intel.db` (SQLite) 中
4. 仪表板从 DB 读取数据,并通过 Plotly 渲染图表
5. 用户可以搜索、过滤、导出
## ☁️ 免费部署 (Streamlit Cloud)
1. 将您的项目推送到 GitHub
2. 前往 **[share.streamlit.io](https://share.streamlit.io)**
3. 连接您的 GitHub 账户
4. 选择您的仓库并将 `app.py` 设置为主文件
5. 在 **Advanced Settings → Secrets** 下,添加:
ABUSEIPDB_API_KEY = "your_key"
OTX_API_KEY = "your_key"
6. 点击 **Deploy** — 您的应用将在 2 分钟内上线!
## 🛠️ 技术栈
| 技术 | 用途 |
|---|---|
| Python 3.10+ | 核心语言 |
| Streamlit | Web 框架 / UI |
| SQLite | 本地数据库 |
| Requests | HTTP API 调用 |
| Pandas | 数据处理 |
| Plotly | 交互式图表 |
## 📄 简历描述
## 👤 作者
Sai shiva | ECE 毕业生 | 有志向的全栈开发者
LinkedIn: www.linkedin.com/in/saishivaakula
GitHub: https://github.com/Saishiva00
## 📜 许可证
本项目为开源项目,仅供教育目的使用。
数据来源:AbuseIPDB、AlienVault OTX、URLhaus (abuse.ch)、NIST NVD
标签:AbuseIPDB, API集成, GPT, IOC聚合, IP信誉查询, Kubernetes, NIST, NVD, Plotly, Python, SOC工具, SQLite, Streamlit, URLhaus, 交互式地图, 代码示例, 仪表盘, 可观测性, 可视化面板, 威胁情报, 字符串匹配, 安全运营, 密码管理, 开发者工具, 开源安全, 恶意哈希, 恶意域名, 情报源, 扫描框架, 数据分析, 数据泄露, 无后门, 求职项目, 漏洞发现, 漏洞管理, 网络威胁, 网络安全, 访问控制, 逆向工具, 隐私保护