Adilfiroz24/sentinel-soc
GitHub: Adilfiroz24/sentinel-soc
一个基于 Flask + React 的全栈安全运营中心平台,集成了实时告警、MITRE ATT&CK 映射、SOAR 剧本、威胁情报和合规报告等企业级 SOC 核心功能。
Stars: 0 | Forks: 0
# 🛡️ Sentinel-SOC — 事件响应平台
一个全栈、SOC 风格的安全运营中心平台:包含 Flask + Socket.IO
后端和 React + Tailwind 前端。它展示了企业级 SOC 的日常运作方式 —— RBAC、实时告警、MITRE ATT&CK 覆盖率、SOAR
Playbook、班次管理、MFA、威胁情报、UEBA、审计日志、合规
报告、后台任务以及 Swagger 文档。
## 📁 项目结构
```
sentinel-soc/
├── backend/ Flask app factory, REST API, Socket.IO, Celery, seed data
│ └── app/
│ ├── api/ auth, analysis, simulation, containment, report, settings, ai_analyst
│ ├── core/ log_generator, log_parser, ioc_extractor, timeline
│ ├── models/ SQLAlchemy models + RBAC permission map
│ ├── services/ report_builder (ReportLab), threat_intel
│ └── data/ mitre_attack.json (132 techniques / 14 tactics)
└── frontend/ React 18 + React Router 6 + Tailwind + Recharts
```
## 🚀 快速开始
### 1. 后端 (Python 3.10+)
```
cd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env .env.local # optional: edit secrets/API keys
python run.py
```
API 启动于 **http://localhost:5000**。SQLite 数据库、表以及
种子数据(用户、Playbook、示例告警、UEBA、MITRE)将在首次
运行时自动创建。
- Swagger / OpenAPI 文档:**http://localhost:5000/api/docs**
- 健康检查:**http://localhost:5000/api/health**
### 2. 前端 (Node 18+)
```
cd frontend
npm install
npm start # opens http://localhost:3000
```
### 3. 后台 Worker(可选 — 需要 Redis)
```
cd backend
celery -A app.celery worker --loglevel=info
celery -A app.celery beat --loglevel=info # scheduled SLA + threat-intel jobs
```
如果 Redis/Celery 未运行,API 仍然可以正常工作 —— 后台任务将回退
到同步执行,因此不会导致任何崩溃。
## 👤 演示凭据
| 用户名 | 密码 | 角色 | 等级 |
|----------|--------------|---------|------|
| admin | admin123 | admin | 3 |
| manager | manager123 | manager | 3 |
| john | analyst123 | tier3 | 3 |
| sarah | analyst123 | tier2 | 2 |
| mike | analyst123 | tier1 | 1 |
## 🔑 环境变量 (`backend/.env`)
在本地使用时,所有密钥都是可选的。如果没有配置,平台将在
模拟/启发式模式下运行。
| 变量 | 用途 |
|----------|---------|
| `JWT_SECRET_KEY` | JWT 签名密钥 |
| `DATABASE_URL` | Postgres URL (默认为本地 SQLite) |
| `OPENAI_API_KEY` | 启用实时 AI Analyst(否则使用启发式引擎) |
| `ABUSEIPDB_API_KEY` / `VIRUSTOTAL_API_KEY` / `ALIENVAULT_API_KEY` | 实时威胁情报(否则使用模拟数据) |
| `REDIS_URL` | Celery broker/result backend |
| `SMTP_*` | 邮件通知 |
| `SLACK_WEBHOOK_URL` / `DISCORD_WEBHOOK_URL` | 聊天通知 |
## ✨ 功能清单
- ✅ 跨越 5 个角色的 RBAC,并针对每个 endpoint 进行权限检查
- ✅ 通过 Socket.IO 实现实时告警 (`new_alert`, `alert_updated`, `alert_assigned`, `sla_breach`)
- ✅ MITRE ATT&CK 覆盖率热力图 + 技术 → 告警联动(132 项技术)
- ✅ 5 个攻击场景,每个场景生成 50–100 个事件
- ✅ 班次管理 + 倒计时 + 交接报告
- ✅ SOAR Playbook(网络钓鱼、恶意软件、勒索软件、暴力破解)
- ✅ 企业级仪表盘(EPS、MTTD、MTTR、SLA、图表、地理位置、热门攻击者)
- ✅ 针对告警和日志的搜索/过滤/排序
- ✅ 对每一个操作进行审计日志记录
- ✅ MFA(TOTP + 二维码 + 备份代码)
- ✅ 威胁情报(AbuseIPDB / VirusTotal / AlienVault OTX,带有降级回退)
- ✅ UEBA 异常评分
- ✅ 通过 ReportLab 生成合规性 PDF(ISO 27001 / SOC 2 / GDPR)
- ✅ Swagger/OpenAPI 文档
- ✅ Celery + Redis 后台任务
- ✅ 支持浅色模式切换的深色主题
## 🧱 架构说明
- **无状态 JWT 认证** — token 携带身份信息;每个 endpoint 均使用
`jwt_required(optional=True)` 并通过 RBAC 装饰器解析用户,因此
缺失/无效的 token 将返回清晰的 401 错误,而不是 422 错误。
- **优雅降级** — 每个 endpoint 都将逻辑封装在 try/except 中并
返回结构化的 JSON,因此即使某个调用失败,仪表盘也能继续工作。
- Socket.IO 的 **线程异步模式** 意味着不需要 eventlet/gevent 构建步骤。
- **SQLite → PostgreSQL** 只需通过设置 `DATABASE_URL` 即可完成切换。
标签:Flask, React, SOAR, Syscalls, 安全运营中心, 搜索引擎查询, 网络映射, 逆向工具