Tester623/incident-response-playbook-engine

GitHub: Tester623/incident-response-playbook-engine

一个轻量级开源 SOAR 平台,让安全分析师通过可视化流程图创建并自动执行事件响应剧本,实时跟踪告警处置全流程。

Stars: 0 | Forks: 0

# 事件响应剧本引擎 [![Python](https://img.shields.io/badge/Python-3.11+-3776AB?style=flat&logo=python&logoColor=white)](https://python.org) [![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688?style=flat&logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com) [![React](https://img.shields.io/badge/React-18-61DAFB?style=flat&logo=react&logoColor=black)](https://react.dev) [![ReactFlow](https://img.shields.io/badge/ReactFlow-11-FF0072?style=flat)](https://reactflow.dev) [![SOAR](https://img.shields.io/badge/SOAR-Platform-blueviolet?style=flat)](https://en.wikipedia.org/wiki/Security_orchestration) [![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat&logo=docker&logoColor=white)](https://docker.com) 一个**轻量级 SOAR**(安全编排、自动化与响应)平台,安全分析师可以在其中以流程图的形式可视化地创建事件响应剧本,手动或根据传入的告警自动触发它们,并实时跟踪执行情况。 模拟企业级 SOAR 工具,如 Palo Alto XSOAR、Splunk SOAR 和 IBM Resilient。 ## 架构 ``` graph TB subgraph Frontend["Frontend (React + Vite)"] UI[Dashboard / Editor / Alert Queue] RF[ReactFlow Visual Editor] SSE[SSE Client] end subgraph Backend["Backend (FastAPI)"] API[REST API] ENG[Execution Engine] TRIG[Trigger Service] COND[Condition Evaluator] AR[Action Runner] end subgraph Integrations["Mock Integrations"] VT[VirusTotal] ABUSE[AbuseIPDB] FW[Firewall] AD[Active Directory] SNOW[ServiceNow] SLACK[Slack] EMAIL[Email] EDR[CrowdStrike EDR] end subgraph Storage["Storage"] DB[(SQLite)] end UI --> API SSE -.->|Server-Sent Events| API API --> ENG API --> TRIG ENG --> COND ENG --> AR AR --> Integrations API --> DB ENG --> DB TRIG --> DB ``` ## 剧本执行流程 ``` sequenceDiagram participant Alert participant TriggerService participant Engine participant ActionRunner participant ConditionEval participant DB participant SSE Alert->>TriggerService: Incoming alert TriggerService->>DB: Find matching playbook TriggerService->>Engine: Start execution Engine->>DB: Create execution record Engine->>SSE: Emit "started" loop For each step alt Action Step Engine->>ActionRunner: Run action ActionRunner-->>Engine: Result + output Engine->>DB: Update step result Engine->>SSE: Emit "step_completed" else Condition Step Engine->>ConditionEval: Evaluate expression ConditionEval-->>Engine: true/false Engine->>SSE: Emit "step_completed" else End Step Engine->>DB: Mark complete Engine->>SSE: Emit "completed" end end ``` ## 功能 - **可视化剧本编辑器** - 使用 ReactFlow 的拖拽式流程图构建器 - **12 个模拟集成操作** - IP 富化、防火墙拦截、AD 操作、工单管理、通知 - **自动化告警分类** - 传入的告警根据类型和严重程度自动匹配剧本 - **实时执行跟踪** - Server-Sent Events 流式传输逐步进度 - **基于条件的分支** - 带有复合表达式 (AND/OR) 的 If/else 逻辑 - **5 个预构建剧本** - 钓鱼、暴力破解、恶意软件/C2、数据泄露、漏洞 - **15 个示例告警** - 预加载并在启动时自动触发 - **SOC 仪表盘** - 执行统计、成功率、MTTR 图表 - **操作库** - 所有可用操作的分类目录 - **JWT 身份验证** - 基于角色的访问权限(Admin / Analyst / Viewer),可选登录 - **审计日志** - 所有剧本、执行和告警操作的完整审计追踪 - **导出/导入剧本** - 支持 JSON 和 YAML 导出,实现跨实例移植 - **剧本复制** - 一键克隆现有剧本 - **告警去重** - 5分钟滑动窗口防止重复处理告警 - **步骤重试与超时** - 可为每个步骤配置重试次数和超时时间 - **并行步骤执行** - 用于并发执行操作的 Fork/join 模式 - **执行重试** - 从头重新运行失败或已取消的执行 - **WebSocket 支持** - 通过 SSE 和 WebSocket 进行实时更新 - **Toast 通知** - 为所有用户操作提供应用内反馈 - **过滤视图** - 对告警和剧本进行搜索、严重程度和状态过滤 ## 快速开始 ``` git clone https://github.com/yourusername/incident-response-playbook-engine.git cd incident-response-playbook-engine docker compose up # 打开 http://localhost:3000 # Dashboard 会立即显示实时 executions ``` **零 API key。零配置。所有集成均在本地模拟。** ### 本地开发 **后端:** ``` cd backend pip install -r requirements.txt uvicorn main:app --reload --port 8000 ``` **前端:** ``` cd frontend npm install npm run dev ``` ## API 端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/playbooks` | 列出所有剧本 | | `GET` | `/api/playbooks/{id}` | 获取剧本及其步骤 | | `POST` | `/api/playbooks` | 创建新剧本 | | `PUT` | `/api/playbooks/{id}` | 更新剧本 | | `DELETE` | `/api/playbooks/{id}` | 删除剧本 | | `GET` | `/api/executions` | 列出执行记录 | | `GET` | `/api/executions/{id}` | 获取执行详情 | | `GET` | `/api/executions/{id}/live` | 用于实时更新的 SSE 流 | | `POST` | `/api/executions/trigger` | 手动触发执行 | | `POST` | `/api/executions/{id}/cancel` | 取消正在运行的执行 | | `GET` | `/api/alerts` | 告警队列 | | `POST` | `/api/alerts/ingest` | 接入新告警(自动触发) | | `GET` | `/api/actions` | 操作库 | | `GET` | `/api/analytics/summary` | 仪表盘统计 | | `GET` | `/api/analytics/mttr` | 平均响应时间 | | `POST` | `/api/auth/register` | 注册新用户 | | `POST` | `/api/auth/login` | 登录(返回 JWT) | | `GET` | `/api/auth/me` | 当前用户信息 | | `GET` | `/api/audit` | 审计日志(可过滤) | | `GET` | `/api/playbooks/{id}/export` | 导出剧本 (JSON/YAML) | | `POST` | `/api/playbooks/import` | 导入剧本 | | `POST` | `/api/playbooks/{id}/duplicate` | 复制剧本 | | `POST` | `/api/executions/{id}/retry` | 重试失败的执行 | | `WS` | `/api/executions/{id}/ws` | WebSocket 实时更新 | ## 预构建剧本 | 剧本 | 触发器 | 关键操作 | |----------|---------|-------------| | 钓鱼邮件响应 | `type=phishing` | IP 富化、防火墙拦截、工单管理 | | 暴力破解 / 凭据攻击 | `type=brute_force` | IP 富化、AD 禁用、密码重置 | | 恶意软件 / C2 通信 | `type=c2` | IP + 哈希富化、端点隔离、取证 | | 疑似数据泄露 | `type=data_exfil` | IP 富化、隔离、漏洞扫描 | | 漏洞扫描发现 | `type=vulnerability, severity=CRITICAL` | 工单管理、升级上报 | ## 测试 ``` cd backend python -m pytest tests/ -v ``` 64 个测试涵盖: - 条件评估器(比较、点路径、复合 AND/OR、边缘情况) - 触发器服务(匹配逻辑、列表条件、多字段) - 执行引擎(操作执行、分支、上下文累积、事件) - API 端点(CRUD、告警接入、分析) - 身份验证(注册、登录、JWT、角色) - 审计日志(操作跟踪、过滤) - 剧本功能(导出/导入 JSON+YAML、复制、搜索) - 告警去重(滑动窗口) - 执行重试(重新运行失败的执行) ### 默认凭据 | 用户名 | 密码 | 角色 | |----------|----------|------| | `admin` | `admin` | Admin | | `analyst` | `analyst` | Analyst | | `viewer` | `viewer` | Viewer | 身份验证是可选的 —— 该应用无需登录即可运行。 ## 技术栈 | 层级 | 技术 | |-------|-----------| | 后端 | Python 3.11+、FastAPI、SQLAlchemy (异步)、SQLite | | 前端 | React 18、Vite、TailwindCSS、ReactFlow、Recharts | | 实时通信 | Server-Sent Events (SSE) | | 容器化 | Docker、Docker Compose | | 测试 | pytest、pytest-asyncio | | CI | GitHub Actions | ## 展示的技能 - **安全编排、自动化与响应 (SOAR)** - 完整的剧本生命周期 - **剧本设计与自动化逻辑** - 带分支的可视化编辑器 - **事件响应工作流自动化** - 从告警分类到解决 - **ReactFlow 可视化编程接口** - 自定义节点类型、边路由 - **用于实时更新的 Server-Sent Events** - 实时执行跟踪 - **FastAPI 异步执行引擎** - 并发剧本执行 - **Docker 容器化** - 多服务 compose 设置 - **JWT 身份验证与 RBAC** - 基于角色的访问控制 - **审计追踪** - 完整的操作审计日志记录 - **告警去重** - 智能重复抑制 ## 许可证 MIT
标签:AV绕过, FastAPI, React, SOAR, Syscalls, 剧本引擎, 可视化编排, 安全规则引擎, 请求拦截, 逆向工具