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, 安全运营中心, 搜索引擎查询, 网络映射, 逆向工具