DhruviTailor1337/Threat-Intelligence
GitHub: DhruviTailor1337/Threat-Intelligence
这是一个集开源情报采集、风险评分、SIEM可视化分析及自动化阻断于一体的端到端威胁情报平台。
Stars: 0 | Forks: 0
# 威胁情报
# 🛡️ Threat Intelligence Platform (TIP)
### Infotact 技术实习项目 — 金融与银行网络安全项目
## 📌 概述
一个端到端的 **Threat Intelligence Platform**,具有以下功能:
1. **摄取** 来自 3 个公共 OSINT 源的恶意 IP、域名和 URL
2. **规范化** 并在 MongoDB 中对每个指标进行风险评分
3. **同步** 到 ELK Stack (Elasticsearch + Kibana) SIEM 以进行可视化分析
4. 通过 `iptables` 自动**阻止** HIGH/CRITICAL 级别的 IP(或模拟模式)
5. 通过 Slack 和电子邮件向 SOC 分析师**发出警报**
6. 通过单个命令**回滚**误报阻止
## 🗂️ 项目结构
```
threat_intelligence_platform/
├── osint/
│ └── aggregator.py # OSINT feed ingestion (AlienVault, URLhaus, EmergingThreats)
├── siem/
│ ├── normalizer.py # Risk scoring + Elasticsearch sync
│ └── logstash.conf # Logstash MongoDB→ES pipeline
├── enforcer/
│ ├── enforcer.py # Dynamic iptables policy enforcer + rollback
│ └── alerting.py # Slack / email alerting module
├── dashboard/
│ └── kibana_dashboard.ndjson # Kibana dashboard import file
├── tests/
│ └── test_tip.py # Pytest unit tests
├── docker-compose.yml # MongoDB + ELK Stack
├── main.py # Orchestration runner
├── requirements.txt
└── README.md
```
## ⚙️ 前置条件
| 工具 | 版本 | 用途 |
|------|---------|---------|
| Python | 3.10+ | 核心语言 |
| Docker + Docker Compose | 最新版 | MongoDB & ELK Stack |
| Linux (root) | 任意发行版 | iptables 强制执行(可选) |
## 🚀 快速开始
### 步骤 1 — 克隆并安装依赖项
```
git clone https://github.com/YOUR_USERNAME/threat-intelligence-platform.git
cd threat-intelligence-platform
pip install -r requirements.txt
```
### 步骤 2 — 启动 MongoDB + ELK Stack
```
docker-compose up -d
# 等待约 60 秒以让 Elasticsearch 初始化
```
### 步骤 3 — 配置环境(可选)
```
cp .env.example .env
# 使用 API keys 和 Slack webhook 编辑 .env
```
### 步骤 4 — 运行完整流水线(一次性)
```
python main.py --once
```
### 步骤 5 — 导入 Kibana Dashboard
```
Open http://localhost:5601
→ Stack Management → Saved Objects → Import
→ Select: dashboard/kibana_dashboard.ndjson
```
## 🔄 4 周开发路线图
### 第 1 周 — OSINT 摄取与数据库设计
- [x] 设置 Linux 环境 + Python venv
- [x] `osint/aggregator.py` — 连接到 AlienVault OTX、URLhaus、EmergingThreats
- [x] MongoDB schema,通过在 `indicator` 上设置唯一索引进行去重
- [x] 将所有摄取活动记录到 `logs/aggregator.log`
### 第 2 周 — 规范化与 SIEM 集成
- [x] `siem/normalizer.py` — 基于标签的风险评分引擎 (0–100)
- [x] 严重性标签:LOW / MEDIUM / HIGH / CRITICAL
- [x] Elasticsearch 批量推送并包含索引映射
- [x] `siem/logstash.conf` — Logstash MongoDB→ES 实时同步流水线
- [x] Kibana dashboard JSON 导出(5 个面板)
### 第 3 周 — 动态策略执行引擎
- [x] `enforcer/enforcer.py` — 守护进程每 30 秒轮询一次 MongoDB
- [x] 通过 `iptables` 自动阻止 `risk_score >= 70` 的 IP
- [x] 适用于非 root / Windows 环境的完整模拟模式
- [x] 每个阻止操作都记录到 `block_log` 集合(审计跟踪)
- [x] 每次操作后更新 MongoDB `blocked` 标志
### 第 4 周 — 告警、回滚与最终报告
- [x] `enforcer/alerting.py` — Slack webhook + SMTP 电子邮件告警
- [x] 回滚命令:`python enforcer/enforcer.py rollback `
- [x] 批量回滚:`python enforcer/enforcer.py rollback-last 5`
- [x] 阻止日志查看器:`python enforcer/enforcer.py log`
- [x] `tests/test_tip.py` — 涵盖所有模块的 8 个单元测试
- [x] `main.py` — 定时每小时运行的流水线程序
## 🧪 运行测试
```
pytest tests/ -v
```
预期输出:
```
tests/test_tip.py::TestRiskScoring::test_base_score_no_tags PASSED
tests/test_tip.py::TestRiskScoring::test_ransomware_tag_adds_25 PASSED
tests/test_tip.py::TestRiskScoring::test_score_capped_at_100 PASSED
tests/test_tip.py::TestRiskScoring::test_severity_critical PASSED
tests/test_tip.py::TestRiskScoring::test_severity_high PASSED
tests/test_tip.py::TestRiskScoring::test_severity_medium PASSED
tests/test_tip.py::TestRiskScoring::test_severity_low PASSED
tests/test_tip.py::TestEnforcer::test_block_ip_simulate PASSED
tests/test_tip.py::TestEnforcer::test_unblock_ip_simulate PASSED
tests/test_tip.py::TestEnforcer::test_enforce_once_no_targets PASSED
tests/test_tip.py::TestEnforcer::test_enforce_once_blocks_high_risk PASSED
tests/test_tip.py::TestAggregator::test_emerging_threats_parse PASSED
tests/test_tip.py::TestAggregator::test_skips_comments PASSED
```
## 🔒 回滚机制
```
# 回滚特定的 IP
python enforcer/enforcer.py rollback 1.2.3.4
# 回滚最近 5 个被阻止的 IP
python enforcer/enforcer.py rollback-last 5
# 查看完整的阻止审计日志
python enforcer/enforcer.py log
```
## 📊 MongoDB Schema
```
{
"indicator": "1.2.3.4",
"type": "ip",
"source": "AlienVault_OTX",
"tags": ["malware", "botnet"],
"risk_score": 90,
"severity": "CRITICAL",
"first_seen": "2024-01-15T10:00:00Z",
"last_seen": "2024-01-15T12:30:00Z",
"blocked": true
}
```
## 🌐 使用的 OSINT 源
| 源 | URL | 类型 |
|------|-----|------|
| AlienVault OTX | reputation.alienvault.com | 恶意 IP |
| Abuse.ch URLhaus | urlhaus.abuse.ch | 恶意 URL |
| Emerging Threats | rules.emergingthreats.net | 受损 IP |
## 🔑 环境变量 (.env)
```
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxx/yyy/zzz
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your@email.com
SMTP_PASS=your_app_password
ALERT_EMAIL_TO=soc@yourcompany.com
```
## 📋 PCI-DSS 合规说明
- 所有防火墙规则更改都带有时间戳记录在 `block_log` 中
- 回滚机制为 SOC 分析师提供了误报纠正功能
- MongoDB 为每个指标存储不可变的 `first_seen` 时间戳
- ELK Stack 提供可供审计的可搜索事件历史
## 👨💻 作者
Infotact 实习项目 — 金融与银行网络安全方向
班加罗尔,卡纳塔克邦
标签:AlienVault, AMSI绕过, Docker, Docker Compose, Elasticsearch, ELK Stack, ESC4, iptables, IP 封禁, Logstash, MongoDB, Mutation, nuclei, OSINT, Pytest, Python, Slack 通知, TIP, URLhaus, 内容过滤, 可视化, 告警系统, 回滚机制, 威胁情报, 威胁检测, 安全运营, 安全防御评估, 开发者工具, 扫描框架, 无后门, 网络安全, 自动化响应, 虚假阳性处理, 请求拦截, 越狱测试, 逆向工具, 金融网络安全, 隐私保护, 风险评分