darshanbg23/Threat-Intel-Platform
GitHub: darshanbg23/Threat-Intel-Platform
一个面向初学者的威胁情报教育项目,演示了从OSINT源收集、处理数据到Elasticsearch可视化展示的简化版SIEM数据流转过程。
Stars: 0 | Forks: 0
# 威胁情报平台
一个面向初学者的网络安全实习项目,用于收集、处理和可视化威胁情报数据。
## 项目概述
本项目展示了如何出于学习目的构建威胁情报管道。它包含两个模块:
1. **Week 1** - 从多个 OSINT 来源收集威胁数据并将其存储在 MongoDB 中
2. **Week 2** - 处理数据,应用风险评分,并与 Elasticsearch 和 Kibana 集成
本实现演示了一个适合教育目的的简化版 SIEM(安全信息和事件管理)管道。
## 项目流程
```
OSINT Sources
↓
Fetch Data (Week 1)
↓
Clean & Store in MongoDB (Week 1)
↓
Normalize Data (Week 2)
↓
Add Risk Scoring (Week 2)
↓
Send to Elasticsearch (Week 2)
↓
Visualize in Kibana (Week 2)
```
## 系统架构
### Week 1 管道
```
OSINT Sources → Fetch → Clean → MongoDB
```
### Week 2 管道
```
MongoDB → Normalize → Score → Elasticsearch → Kibana
```
Week 2 将 Week 1 存储在 MongoDB 中的威胁数据作为其主要数据源。
## 包含内容
### Week 1:数据收集与存储
侧重于从公共来源收集威胁情报:
- 从多个 OSINT 来源获取数据(AlienVault OTX、VirusTotal、AbuseIPDB)
- 验证和清理数据(IP 格式验证、去除重复项)
- 将验证后的指标存储在 MongoDB 中
- 将结果导出为 CSV 和 JSON 格式
**输出:** 存储在 MongoDB 中的威胁指标;在 `reports/` 目录下的 CSV 和 JSON 导出文件
### Week 2:数据处理与 SIEM 集成
丰富并可视化 Week 1 的威胁数据:
- 标准化威胁指标结构以保持一致性
- 基于置信度指标应用风险评分
- 与 Elasticsearch 集成以实现索引和搜索功能
- 在 Kibana 中提供交互式可视化和仪表盘
**输出:** 可通过 Kibana 界面访问的已索引威胁情报
## 目录结构
```
Threat Intelligence Platform/
│
├── Week1/ ← Data Collection & Storage
│ ├── main.py ← Run the pipeline
│ ├── cleaner.py ← Clean and validate data
│ ├── database.py ← MongoDB operations
│ ├── exporter.py ← Export to CSV/JSON
│ ├── feeds/ ← OSINT source connectors
│ │ ├── alienvault_otx.py
│ │ ├── virustotal.py
│ │ └── abusech.py
│ ├── reports/ ← Output files
│ ├── requirements.txt
│ └── README.md ← Week 1 guide
│
├── Week2/ ← Processing & SIEM Integration
│ ├── pipeline.py ← Run the pipeline
│ ├── normalizer.py ← Normalize data
│ ├── scorer.py ← Add risk scoring
│ ├── elastic_handler.py ← Elasticsearch integration
│ ├── docker-compose.yml ← ELK stack
│ ├── setup_mongodb.py ← Sample data
│ ├── requirements.txt
│ └── README.md ← Week 2 guide
│
└── README.md ← This file
```
## 使用的技术
| 技术 | 用途 |
|-----------|---------|
| **Python** | 主要编程语言 |
| **MongoDB** | 数据存储 (NoSQL) |
| **Elasticsearch** | 搜索和索引 |
| **Kibana** | 数据可视化和仪表盘 |
| **Docker** | 容器编排 |
## 快速开始
### 前置条件
- Python 3.8+
- Docker 和 Docker Compose
- MongoDB(可在 Docker 中运行)
### 第 1 步:运行 Week 1(数据收集)
```
cd Week1
# 设置
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# 确保 MongoDB 正在运行
# 然后运行 pipeline
python main.py
```
这将会:
- 从 OSINT 来源获取数据
- 清理并验证数据
- 存储在 MongoDB 中
- 导出为 CSV 和 JSON
### 第 2 步:运行 Week 2(处理与可视化)
```
cd ../Week2
# 设置
pip install -r requirements.txt
# 启动 Docker 服务 (MongoDB, Elasticsearch, Kibana)
docker-compose up -d
# 等待 30 秒以启动服务
# 然后运行 pipeline
python pipeline.py
```
这将会:
- 从 MongoDB 获取数据
- 规范化并进行评分
- 发送至 Elasticsearch
- 为 Kibana 做好准备
### 第 3 步:在 Kibana 中查看
1. 打开:**http://localhost:5601**
2. 转到 **Stack Management** → **Index Patterns**
3. 为 `threat-intel` 创建模式
4. 转到 **Discover** 探索您的数据
5. 在仪表盘上创建可视化
## 学习成果
本项目教授:
- 数据管道架构与设计
- OSINT(开源情报)收集方法
- 数据验证与去重技术
- NoSQL 数据库操作(MongoDB)
- 风险评分与威胁分类
- SIEM 基础知识与集成模式
- Elasticsearch 索引与查询优化
- Kibana 仪表盘创建与可视化
- Docker 容器化与编排
## 项目特性
- 来自 3 个 OSINT 源的多源数据摄取
- IP 地址验证(IPv4 和 IPv6)
- 重复检测与移除
- 风险评分(高/中/低类别)
- 端到端自动化数据管道
- Elasticsearch 集成以实现可扩展索引
- 交互式 Kibana 仪表盘用于威胁可视化
- 基于 Docker 的部署,易于设置
## 工作原理
### 数据收集(Week 1)
```
1. Fetch from AlienVault OTX
2. Fetch from VirusTotal
3. Fetch from AbuseIPDB
4. Combine all data
5. Validate and clean
6. Remove duplicates
7. Store in MongoDB
8. Export to files
```
### 数据处理(Week 2)
```
1. Load from MongoDB
2. Normalize format
3. Score by risk level
4. Connect to Elasticsearch
5. Create index
6. Insert documents
7. Access in Kibana
```
## 故障排除
**MongoDB 无法启动?**
- 确保 MongoDB 正在运行:`docker ps`
- 检查端口 27017 是否可用
**Elasticsearch 连接错误?**
- 等待 30 秒让服务启动
- 重启:`docker-compose restart elasticsearch`
**Kibana 中没有数据?**
- 确保 Week 1 已成功运行
- 运行 `python setup_mongodb.py` 创建样本数据
- 再次运行 `python pipeline.py`
有关更多详细信息,请参阅 Week1/ 和 Week2/ 中的独立 README 文件
## 项目特点
- **初学者级别的实现** - 代码优先考虑清晰度和学习体验,而非生产环境的优化
- **以教育为重点** - 旨在演示概念和最佳实践
- **全面的文档** - 每个文件夹和项目根目录中都有详细的 README 文件
- **容器化架构** - 使用 Docker Compose 简化服务部署
- **最少的依赖** - 仅需必要的库和工具
## 后续步骤
完成项目后,您可以:
1. 添加更多 OSINT 来源(AbuseIPDB、Shodan 等)
2. 创建自定义 Kibana 仪表盘
3. 为高风险威胁添加电子邮件警报
4. 与真实的 SIEM 平台集成
5. 部署到云(AWS、Azure、GCP)
## 文件指南
| 文件 | 功能 |
|------|-------------|
| `Week1/README.md` | Week 1 详细指南 |
| `Week2/README.md` | Week 2 详细指南 |
| `Week1/main.py` | 运行 Week 1 管道 |
| `Week2/pipeline.py` | 运行 Week 2 管道 |
| `docker-compose.yml` | 启动 ELK 栈 |
## 支持与文档
获取详细信息:
- Week 1 设置与执行:参见 `Week1/README.md`
- Week 2 设置与执行:参见 `Week2/README.md`
- 项目结构概览:参见本 README.md
每个模块都包含特定的故障排除指南和使用示例。
标签:AbuseIPDB, Ask搜索, Elasticsearch, ELK, ESC4, GitHub, IoC, Logstash, MongoDB, OSINT, VirusTotal, 威胁情报, 威胁指标, 安全信息与事件管理, 安全可视化, 安全运营, 实时处理, 密码管理, 开发者工具, 扫描框架, 搜索引擎爬取, 数据清洗, 数据管道, 数据规范化, 网络安全, 网络安全实习项目, 请求拦截, 越狱测试, 软件工程, 逆向工具, 隐私保护, 风险评分