RyanJBush/soc-threat-detection-and-incident-response-platform
GitHub: RyanJBush/soc-threat-detection-and-incident-response-platform
基于 FastAPI 和 React 构建的全栈 SOC 平台,使用合成安全遥测数据展示威胁检测、告警分诊和事件响应的完整蓝队工作流。
Stars: 0 | Forks: 0
# SOC 威胁检测与事件响应平台
## 1. 项目名称
**SOC 威胁检测与事件响应平台**
## 2. 项目摘要
本项目是一个全栈 SOC 作品集平台,用于摄取合成安全事件、运行基于 Python 的检测,以及管理从告警到事件的响应工作流。它包含一个带有检测逻辑、分诊/事件 API 和运营指标的 FastAPI 后端,以及一个用于分析师工作流的 React 仪表板。其目标是通过透明、可审查的代码库,展示实际的检测工程和 SOC 运营。
## 3. 本项目解决的安全问题
SOC 团队需要一种真实的方式来展示端到端的蓝队工作流:事件摄取、威胁检测、告警分诊、升级和响应跟踪。本仓库使用合成遥测数据提供了该 pipeline,以便审查人员可以在同一系统中评估检测逻辑、分诊决策和事件处理。
## 4. 核心功能
- 事件摄取 endpoint,支持单事件、批量摄取、流式摄取、回放和预设场景。
- 检测引擎,实现了基于规则和基于异常的逻辑(包括置信度评分和证据捕获)。
- 告警创建,支持去重/关联、严重程度、解释、MITRE 技术元数据和推荐的后续步骤。
- 分析师分诊操作:状态流转、分配、注释、时间线条目以及真/假阳性反馈。
- 事件工作流:创建事件、关联告警、更新事件状态以及查看事件审计时间线。
- 用于 SOC KPI 的指标 endpoint(包括打开/高严重性计数、MTTD、MTTR 和检测覆盖率)。
- 跨越 Admin、Analyst、Detection Engineer 和 Viewer 角色的基于角色的访问控制 (RBAC)。
- 前端视图:仪表板、事件、告警、告警调查、事件、检测/任务以及狩猎查询。
## 5. 技术栈
- **后端:** Python, FastAPI, SQLAlchemy
- **数据/处理:** PostgreSQL, pandas, scikit-learn
- **前端:** React + Vite, React Router, Recharts
- **安全/搜索服务:** JWT 认证,可选的 Elasticsearch 事件索引
- **开发工作流:** Docker Compose, Makefile, pytest, ruff, ESLint
## 6. 检测与事件响应工作流
1. 通过 `/api/events` 摄取事件(单个、批量、流式、回放、场景或模拟运行)。
2. 将检测任务排队并处理它们,以生成检测和告警。
3. 使用关联 ID 和去重时间窗口将重复信号关联为活跃告警。
4. 在 UI/API 中对告警进行分诊(状态更新、分配、调查注释、反馈、时间线)。
5. 将相关告警升级为事件,并跟踪事件生命周期(`open` → `investigating` → `contained` → `closed`)。
6. 通过指标和仪表板摘要监控 SOC 性能。
## 7. 架构概述
- **API 层 (`backend/app/routers`)**:auth、events、detections、alerts、incidents、jobs、hunting、metrics、platform。
- **检测/服务层 (`backend/app/services`)**:检测目录、检测引擎、任务编排、MITRE enrichment、审计日志、feature flags、场景植入。
- **数据层 (`backend/app/models.py`)**:organizations、users、events、detections、alerts、incidents、notes、analyst feedback、jobs、audit logs。
- **UI 层 (`frontend/src`)**:SOC 仪表板和面向分析师的页面,用于摄取、调查、分诊和响应。
## 8. 设置与安装说明
### 选项 A:Docker
```
make dev
```
### 选项 B:本地开发
```
make install
make backend-dev
make frontend-dev
```
### 演示凭据
- `admin / admin123`
- `analyst / analyst123`
- `deteng / deteng123`
- `viewer / viewer123`
### 快速验证流程
1. 启动服务。
2. 在 `http://localhost:5173` 登录前端。
3. 使用 **Events** 页面摄取事件或植入场景。
4. 在 **Alerts**、**Alert Detail**、**Incidents**、**Detections** 和 **Dashboard** 中查看生成的结果。
## 9. 安全用例示例
- 从重复的失败认证尝试中检测并对暴力登录行为进行分诊。
- 调查可疑的登录异常,例如异常的登录时间和不可能的旅行模式。
- 跟踪潜在的权限提升或账户操纵活动。
- 当存在 `threat_intel_match` 元数据时,展示 IOC 风格的事件。
- 将多个相关的告警关联并升级为单一的事件响应案例。
## 10. 展示的技能
- 在 Python 中进行检测工程(规则、异常逻辑、置信度评分、去重/关联)。
- SOC 告警分诊和事件响应流程的设计与实现。
- 安全事件摄取和日志分析工作流的开发。
- 分析师工具:仪表板、调查视图、时间线 artifact 和 KPI 跟踪。
- 具有 JWT 认证和 RBAC 权限的安全 API 设计。
- 使用 FastAPI、PostgreSQL 和 React 进行全栈交付。
## 11. 简历项目描述
构建了一个基于 FastAPI、PostgreSQL 和 React 的全栈 **SOC 威胁检测与事件响应平台**,用于摄取合成安全遥测数据、运行基于规则/异常的检测、生成关联告警,并通过事件升级管理分析师分诊。实现了 SOC 指标(MTTD/MTTR、覆盖率、假阳性信号)、RBAC、狩猎查询和调查 artifact,以展示实际的检测工程和蓝队响应工作流。
## 12. 未来改进
- 添加更多场景包,并扩展对其他攻击行为的检测覆盖率。
- 使用分析师反馈记录改进告警调优工作流。
- 扩展狩猎功能,超越当前基于选择器的类 Sigma 查询处理。
- 为更多前端视图添加分页/过滤控件,以处理更庞大的数据集。
**范围说明:** 本项目专为作品集和学习使用而设计,使用的是合成数据,不应将其视为生产级别的 SIEM 替代品。
标签:AMSI绕过, AV绕过, FastAPI, incident response, PostgreSQL, React, SOC平台, Syscalls, 威胁检测, 安全运营, 扫描框架, 测试用例, 请求拦截, 逆向工具