anuj-gupta03/project1-threat-intelligence-platform
GitHub: anuj-gupta03/project1-threat-intelligence-platform
一个整合多源 OSINT 情报采集、风险评分、SIEM 可视化与 Linux 防火墙策略执行的威胁情报平台。
Stars: 0 | Forks: 0
# 高级威胁情报平台与动态策略执行器
这是 Infotact 网络安全项目 1 的一个安全默认实现。该平台收集公开的威胁情报,对指标进行标准化、去重并分配风险评分,将其存储在 MongoDB 中,导出到 Elasticsearch/Kibana,并可以通过专用的 Linux iptables 链来管理高风险 IP 封禁。
## 已实现的功能
- 四个 OSINT 集成:Feodo Tracker、ThreatFox、URLhaus 以及可选的 AlienVault OTX
- IP 和域名标准化、解反义化、验证以及 MongoDB 去重
- 支持交叉验证的 0-100 风险评分
- FastAPI SOC 仪表板和只读 API
- 导出到 Elasticsearch 以供 Kibana 分析
- 优先试运行的策略执行
- 专用的 TIP_BLOCKLIST iptables 链
- 私有、保留及配置的 CIDR 保护
- 分析师回滚和不可变的策略操作历史记录
- 可选的 Webhook 告警
- Docker Compose 实验环境、自动化测试和 GitHub Actions CI
## 架构
```
flowchart LR
F1[Feodo Tracker] --> C[Python Collector]
F2[ThreatFox] --> C
F3[URLhaus] --> C
F4[AlienVault OTX] --> C
C --> N[Normalize and deduplicate]
N --> M[(MongoDB)]
M --> A[FastAPI SOC Dashboard]
M --> S[Elasticsearch Sync]
S --> K[Kibana]
M --> P[Policy Enforcer]
P --> G{Safety gates}
G -->|Dry run| L[Audit log]
G -->|Explicit apply on Linux| I[Dedicated iptables chain]
I --> L
L --> M
```
## 快速开始
要求:带有 Compose 功能的 Docker Desktop 以及大约 2 GB 的可用内存。
1. 复制环境模板:
Copy-Item .env.example .env
2. 启动 MongoDB、Elasticsearch、Kibana 和 SOC 仪表板:
docker compose up -d mongo elasticsearch kibana api
3. 收集公开情报:
docker compose --profile jobs run --rm collector
4. 将其导出到 Elasticsearch:
docker compose --profile jobs run --rm siem-sync
5. 查看界面:
- SOC 仪表板:http://127.0.0.1:8000
- API 文档:http://127.0.0.1:8000/docs
- Kibana:http://127.0.0.1:5601
6. 在不更改防火墙的情况下预览策略决策:
docker compose --profile jobs run --rm enforcer-dry-run
Docker 执行器被特意设置为仅进行试运行。
要进行离线安全演示,请运行 `docker compose run --rm api seed-demo`。它只会插入保留的 TEST-NET 地址 203.0.113.66;策略引擎必须将其作为非全局地址拒绝。
## AlienVault OTX
创建一个 OTX API 密钥,并将其仅放在本地 .env 文件中:
```
TIP_OTX_API_KEY=your_key_here
```
切勿提交 .env。这三个 abuse.ch 数据源无需凭证即可工作,因此 OTX 是可选的。
## Kibana 设置
首次 SIEM 同步后:
1. 打开 Kibana 并进入 Stack Management,然后进入 Data Views。
2. 使用 tip-indicators 创建一个名为 TIP Indicators 的 data view。
3. 将 last_seen 设置为时间字段。
4. 使用 tip-policy-actions 创建第二个名为 TIP Policy Actions 的 data view。
5. 构建 Lens 面板,以显示按严重程度划分的指标、热门来源、随时间变化的风险以及应用的封禁/回滚操作。
有关确切的面板定义,请参阅 docs/KIBANA_DASHBOARD.md。
## 实际防火墙执行
仅限在授权的、一次性的 Linux 实验虚拟机内执行此操作。请先审查 MongoDB 候选对象和试运行输出。
执行器需要两个独立的批准:
- TIP_FIREWALL_ENABLED=true
- 显式的 --apply 命令标志
在 Linux 主机上的示例:
```
python3 -m venv .venv
. .venv/bin/activate
pip install -e .
export TIP_MONGO_URI='mongodb://127.0.0.1:27017'
export TIP_FIREWALL_ENABLED=true
sudo -E .venv/bin/tipctl enforce --apply
```
每 60 秒持续监控一次:
```
sudo -E .venv/bin/tipctl enforce --apply --watch --interval 60
```
回滚误报:
```
sudo -E .venv/bin/tipctl rollback 1.2.3.4 --apply
```
该实现仅创建 TIP_BLOCKLIST 并将其附加到 INPUT。它绝不会清空防火墙或编辑无关的规则。
## API
- GET /health
- GET /summary
- GET /indicators
- GET /indicators?severity=critical&type=ip
- GET /policy/actions
由于这是一个孤立的实习实验室环境,因此该 API 没有身份验证。请将其绑定在 localhost。在任何共享部署之前,请添加身份验证和 TLS。
## 风险模型
- 数据源置信度:最高 70 分
- 独立来源交叉验证:最高 20 分
- 时效性:最高 10 分
- 严重阈值:默认为 85
仅仅高分本身是不够的。防火墙模块还会拒绝私有、保留、回环、多播以及明确列入白名单的地址。
## 开发
```
python -m venv .venv
. .venv/bin/activate
pip install -e '.[dev]'
pytest
ruff check src tests
bandit -q -r src
```
## 项目文档
- docs/FOUR_WEEK_PLAN.md - 冲刺和 GitHub 贡献计划
- docs/THREAT_MODEL.md - 滥用案例和缓解措施
- docs/KIBANA_DASHBOARD.md - 仪表板构建
- docs/DEMO.md - 评估演示
- docs/OPERATIONS.md - 收集、执行、回滚和恢复
## 重要评估说明
# 实习规范要求在四周内都要有可见的 GitHub 提交。请勿在一次最终提交中上传整个项目。请遵循 docs/FOUR_WEEK_PLAN.md 中的分支和提交时间表。
# project1-threat-intelligence-platform
标签:AV绕过, Elasticsearch, FastAPI, MongoDB, 威胁情报, 安全运营, 开发者工具, 扫描框架, 版权保护, 网络信息收集, 自动化防御, 越狱测试, 逆向工具