Farah-Adam/soc-threat-investigation-platform
GitHub: Farah-Adam/soc-threat-investigation-platform
一个基于Flask的轻量级模块化SOC模拟平台,集成日志分析、网络扫描、流量检测与威胁情报关联,帮助安全从业者实践真实威胁调查工作流。
Stars: 4 | Forks: 0
# 🔐 SOC 威胁调查平台
一个模块化的安全运营中心 (SOC) 模拟平台,旨在复现真实的网络安全威胁检测工作流,包括日志分析、网络扫描、数据包检查和威胁情报关联。
## 🧠 项目意义
现代 SOC 团队依赖多种工具 (SIEM、IDS、威胁情报平台) 来检测和响应攻击。
本项目演示了如何使用 Python 在统一系统中实现这些能力,并提供以下方面的实践经验:
* 威胁检测流水线
* 攻击模式识别
* 网络侦察分析
* 事件调查工作流
## 🚀 核心能力
* 🔍 从系统日志中检测暴力破解和凭证攻击
* 🌐 通过多线程端口扫描识别暴露的服务
* 📡 分析网络流量以检测 SQLi、XSS 和反向 shell
* 🧠 将 IP 与真实的威胁情报源进行关联
* 🖥 提供统一的 SOC 仪表板及报告功能
## 🏗 架构
本项目遵循**模块化单体架构**,其中:
* 独立的检测引擎作为模块运行
* Flask 作为编排层
* SQLite 用于轻量级数据持久化
## 🎯 现实相关性
本平台模拟了以下岗位的核心职责:
* SOC 分析师
* 安全工程师
* 事件响应人员
它反映了真实环境中使用的工作流,例如:
* 日志分析 → 检测
* 网络扫描 → 暴露面评估
* 数据包检查 → 威胁验证
* 威胁情报 → 关联
## 快速开始
```
# 1. 安装 dependencies
pip install flask werkzeug
# 2. 启动 server
python app.py
# 3. 在 browser 中打开
http://localhost:5000
```
## 项目结构
```
soc_platform/
├── app.py ← Flask backend (main entry point)
├── requirements.txt
├── modules/
│ ├── log_analyzer.py ← Phase 1: brute-force / SSH detection
│ ├── network_scanner.py ← Phase 2: TCP port scan + banner grab
│ ├── packet_analyzer.py ← Phase 3: SQLi / XSS / ReverseShell
│ └── threat_intel.py ← Phase 4: IP reputation matching
├── templates/
│ └── index.html ← Full dashboard UI
├── uploads/ ← Uploaded log / pcap files
└── reports/ ← Exported JSON reports
```
## API 端点
| Method | Endpoint | Description |
|--------|-----------------------|--------------------------------|
| GET | / | 仪表板 UI |
| GET | /api/log/demo | 在演示数据上运行日志分析 |
| POST | /api/log/analyze | 分析上传的 auth.log |
| POST | /api/scan | 扫描目标 IP/主机名 |
| GET | /api/packet/demo | 在演示数据上运行数据包分析 |
| POST | /api/packet/analyze | 分析上传的 .pcap 文件 |
| POST | /api/threat/check | 根据威胁情报源检查 IP |
| POST | /api/report/export | 导出完整的调查 JSON |
## 模块
### 模块 1 — 日志分析器
- 上传任意 auth.log / syslog 文件
- 检测暴力破解(滑动 60 秒时间窗口)
- 检测失败登录后的成功登录(严重)
- 检测无效用户名扫描
### 模块 2 — 网络扫描器
- 输入任意 IP 或主机名
- 并发扫描前 24 个常见端口
- 抓取服务 banner(SSH 版本、Apache、MySQL...)
- 对每个开放端口进行风险评级并提供解释
### 模块 3 — 数据包分析器
- 上传来自 Wireshark 的 .pcap 文件或运行内置演示
- 检测:SQLi、XSS、CMDi、PathTraversal、ReverseShell、Obfuscation
- 在扫描前解码 base64 和 URL 编码的 payload
### 模块 4 — 威胁情报
- 输入 IP(每行一个)进行检查
- 与本地黑名单匹配(可扩展接入实时 API)
- 显示威胁类别、来源和国家
### 事件报告
- 根据所有已完成的模块运行自动生成
- 可下载为 JSON 格式
- 可通过浏览器打印为 PDF
## 使用实时 API 扩展威胁情报
```
# 在 modules/threat_intel.py 中,添加:
import requests
def check_abuseipdb(ip, api_key):
r = requests.get(
'https://api.abuseipdb.com/api/v2/check',
headers={'Key': api_key, 'Accept': 'application/json'},
params={'ipAddress': ip, 'maxAgeInDays': 90}
)
return r.json()['data']
```
标签:CISA项目, Flask, Python, SQLite, SQL注入检测, XSS检测, 云存储安全, 免杀技术, 关联分析, 凭据攻击, 反弹Shell检测, 后端开发, 威胁情报, 子域名枚举, 安全事件响应, 安全仪表盘, 安全工程, 安全运营中心, 开发者工具, 插件系统, 攻击模式识别, 数据包检测, 数据统计, 无后门, 暴力破解检测, 端口扫描, 系统安全, 红队行动, 网络安全, 网络扫描, 网络映射, 逆向工具, 隐私保护