Aravind-Arige/Threat-Intelligence-Platform-TIP-
GitHub: Aravind-Arige/Threat-Intelligence-Platform-TIP-
面向金融和银行环境的自动化威胁情报平台,实现从多源 OSINT 采集、CVSS 风险评分、SIEM 可视化到动态防火墙封禁的完整链路。
Stars: 0 | Forks: 0
# 🛡️ 威胁情报平台 (TIP)
面向金融和银行环境的生产级网络安全平台。
自动从多个 OSINT 来源收集威胁情报,使用 CVSS 对齐的风险引擎对指标进行评分,强制执行动态防火墙规则,并在 Kibana SIEM 仪表板中可视化所有内容。
## 📁 项目结构
```
threat-intelligence-platform/
├── config/
│ ├── config.yaml # Central configuration — add your API keys here
│ └── mongo-init.js # MongoDB collection and index initialization
├── week1_osint/
│ ├── feed_collector.py # OSINT collectors: AlienVault OTX, AbuseIPDB, URLhaus
│ └── db_handler.py # MongoDB interface with deduplication and audit logging
├── week2_siem/
│ ├── normalizer.py # Risk scoring engine (0–10, CVSS v3 aligned)
│ └── elk_pusher.py # MongoDB → Elasticsearch sync for Kibana
├── week3_enforcer/
│ ├── rule_engine.py # iptables rule engine with whitelist and dry-run support
│ └── policy_daemon.py # Continuous enforcement daemon with signal handling
├── week4_dashboard/
│ ├── rollback_manager.py # CLI: list / unblock / reblock / flush / history
│ ├── alert_manager.py # Email + Slack alerting with daily summaries
│ └── kibana_dashboard.json # Import-ready Kibana 8.x dashboard
├── tests/
│ └── test_all.py # 27 unit tests across all 4 weeks (all passing)
├── docs/
│ └── API_SETUP.md # Free API registration guide
├── docker-compose.yml # MongoDB + Elasticsearch + Kibana stack
├── requirements.txt # Python dependencies
└── README.md
```
## ⚡ 快速开始
### 前置条件
- Ubuntu / Kali Linux
- Docker + Docker Compose
- Python 3.10+
- 最低 4GB RAM(用于 Elasticsearch)
### 步骤 1 — 修复 Elasticsearch 的系统内存
这需要在启动 Docker 之前运行。执行一次即可:
```
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
```
### 步骤 2 — 克隆并配置
```
git clone https://github.com/Aravind-Arige/Project1.git
cd Project1
```
将您的免费 API 密钥添加到 `config/config.yaml`:
```
nano config/config.yaml
```
填写以下 API 密钥(完整的注册说明见 `docs/API_SETUP.md`):
| API | config.yaml 中的密钥字段 | 获取地址 | 必需 |
|-----|--------------------------|-----------------|----------|
| AlienVault OTX | `apis.alienvault_otx.api_key` | https://otx.alienvault.com | ✅ 是 |
| AbuseIPDB | `apis.abuseipdb.api_key` | https://www.abuseipdb.com/api | ✅ 是 |
| VirusTotal | `apis.virustotal.api_key` | https://www.virustotal.com | ⚪ 可选 |
| URLhaus | 无需密钥 | https://urlhaus.abuse.ch | ⚪ 免费/无需密钥 |
### 步骤 3 — 安装 Python 依赖
```
# 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装所有必需的包
pip3 install requests pymongo "elasticsearch==8.11.0" pyyaml aiohttp beautifulsoup4 python-dateutil validators schedule APScheduler colorlog pytest --break-system-packages
```
### 步骤 4 — 启动基础设施
```
docker-compose up -d
```
等待约 60 秒,然后验证所有容器是否健康:
```
docker ps
```
三个容器(`tip_mongodb`、`tip_elasticsearch`、`tip_kibana`)都应该显示 **healthy**。
### 步骤 5 — 运行管道
**重要提示:请始终从项目根目录运行所有命令。**
```
# 第1周 — 从OSINT源收集威胁指标(约2-3分钟)
python3 week1_osint/feed_collector.py
# 第2周 — 规范化并对所有指标进行风险评分
python3 week2_siem/normalizer.py
# 第2周 — 将数据推送到Elasticsearch以供Kibana使用
python3 week2_siem/elk_pusher.py
# 第3周 — 启动策略执行守护进程(按Ctrl+C停止)
python3 week3_enforcer/policy_daemon.py
# 第4周 — 列出所有被阻止的IP
python3 week4_dashboard/rollback_manager.py list
# 第4周 — 解除阻止特定IP(示例)
python3 week4_dashboard/rollback_manager.py unblock 105.247.69.196 --actor "SOC_Analyst"
# 第4周 — 查看完整审计历史
python3 week4_dashboard/rollback_manager.py history
```
### 步骤 6 — 打开 Kibana
访问:**http://localhost:5601**
1. 点击 ☰ → **Discover** → **Create data view**
2. 名称:`TIP Threats` | 索引模式:`tip-threats` | 时间戳:`@timestamp`
3. 点击 **Save data view to Kibana**
4. 搜索 `severity: HIGH` 查看高风险指标
5. 如果没有结果,将时间范围更改为 **Last 7 days**
## 🧪 运行测试
```
pytest tests/test_all.py -v
```
预期输出:**27 passed, 19 subtests passed**
## 🔧 快速参考
| 命令 | 描述 |
|---------|-------------|
| `docker-compose up -d` | 启动 MongoDB + Elasticsearch + Kibana |
| `docker-compose down` | 停止容器(数据保留) |
| `docker-compose down -v` | 停止容器并删除所有数据 |
| `python3 week1_osint/feed_collector.py` | 收集威胁指标 |
| `python3 week2_siem/normalizer.py` | 规范化并风险评分指标 |
| `python3 week2_siem/elk_pusher.py` | 同步数据到 Elasticsearch/Kibana |
| `sudo python3 week3_enforcer/policy_daemon.py` | 启动防火墙强制执行守护进程 |
| `python3 week4_dashboard/rollback_manager.py list` | 列出所有被阻止的 IP |
| `python3 week4_dashboard/rollback_manager.py unblock 105.247.69.196 --actor "SOC_Analyst"` | 解封特定 IP |
| `python3 week4_dashboard/rollback_manager.py history` | 查看完整审计历史 |
| `python3 week4_dashboard/rollback_manager.py reblock --actor "Name"` | 重新封禁 IP |
| `python3 week4_dashboard/rollback_manager.py flush --actor "Name" --confirm` | 紧急解封所有 IP |
| `pytest tests/test_all.py -v` | 运行所有单元测试 |
## 🏗️ 架构
```
[AlienVault OTX] ──┐
[AbuseIPDB] ──┼──► [feed_collector.py] ──► [MongoDB]
[URLhaus] ──┤ │
[VirusTotal] ──┘ [normalizer.py]
│
[elk_pusher.py] ──► [Elasticsearch] ──► [Kibana :5601]
│
[policy_daemon.py] ──► [iptables firewall rules]
│
[rollback_manager.py] + [alert_manager.py]
```
## 📊 预期结果
| 指标 | 值 |
|--------|-------|
| 收集的指标 | ~7,500–8,500 |
| HIGH 严重性 IP | ~500 |
| 通过的单元测试 | 27/27 |
| Kibana 仪表板 | http://localhost:5601 |
## 🔒 安全说明
- 策略守护进程默认以 `dry_run: true` 模式运行 — 记录将被阻止的内容,但不应用实际的 iptables 规则
- 要启用实时阻止,请在 `config/config.yaml` 中设置 `dry_run: false` 并使用 `sudo` 运行
- 所有阻止和解封操作都记录在 PCI-DSS 合规的审计日志中
- 私有 IP 范围(`10.x.x.x`、`192.168.x.x`、`172.16.x.x`、`127.x.x.x`)始终被列入白名单
## 📄 许可证
MIT 许可证 — 可免费用于教育和商业用途。
标签:AbuseIPDB, APT, Cloudflare, CVSS, Docker, Elasticsearch, ESC4, HTTP工具, IOC, iptables, masscan, MITRE ATT&CK, MongoDB, nuclei, OSINT, Python, Slack, TIP, URLhaus, 代理支持, 僵尸网络, 告警, 命令控制, 回滚管理, 威胁情报共享, 威胁情报平台, 威胁指标, 子域名变形, 安全运营, 安全防御评估, 密码管理, 恶意IP, 恶意URL, 恶意软件, 扫描框架, 数据采集, 无后门, 无线安全, 版权保护, 策略引擎, 网络安全, 网络安全挑战, 网络调试, 自动化, 请求拦截, 越狱测试, 逆向工具, 邮件告警, 金融安全, 银行安全, 防火墙, 隐私保护, 风险评分