BavariaByte/GIRP-Stack

GitHub: BavariaByte/GIRP-Stack

一个模块化的引导式安全事件响应平台,帮助 SOC 团队通过可视化 Playbook 构建标准化事件上报流程并统一管理工单生命周期。

Stars: 0 | Forks: 0

# GIRP — 引导式事件响应平台 GIRP 是一个专为安全运营中心 (Security Operations Centers) 设计的模块化事件响应平台。它允许管理员通过可视化 playbook 编辑器构建动态的接收表单,并为分析师提供统一的仪表板,用于事件分类、调查和生命周期管理。 ## 模块 | 模块 | 描述 | 默认端口 | |---|---|---| | `Backend-SoCView` | 中央管理 API。处理工单、playbook、用户和平台配置。 | `3000` | | `Backend-InputForm` | 接收 API。管理表单会话并持久化事件提交。 | `4000` | | `FrontEnd-SocViewerVue` | 分析师仪表板。工单管理、时间线、playbook 管理。 | `5173` | | `Frontend-InputForm` | 公共接收表单。为事件报告者提供动态引导式表单界面。 | `4173` | | `FormBuilder` | 可视化 playbook 编辑器。用于设计表单流程的低代码工具。 | `8080` | ## 工作原理 1. 管理员在 **FormBuilder** 中设计事件接收表单,并通过 **SoC Viewer** 发布生成的 playbook。 2. 报告者打开 **Intake Form**,完成引导式问题并提交事件。 3. 提交的内容由 **Intake Backend** 处理,并作为工单写入共享数据库。 4. 分析师在 **SoC Viewer** 中监控和管理工单,由 **SoC Backend** 提供支持。 ## 部署 所有服务均通过仓库根目录下的单个 `docker-compose.yml` 进行编排。同目录下的共享 `.env` 文件负责配置所有模块。MongoDB 作为托管服务包含在内。 ``` cp .env.example .env # 编辑 .env — 参见下方的 Configuration docker compose up -d ``` ## 配置 所有配置均在单个 `.env` 文件中完成。首次启动前必须设置以下变量。 **托管** | 变量 | 描述 | |---|---| | `PLATFORM_URL` | SoC Viewer 前端的公共 URL,例如 `https://socviewer.example.com` | | `INPUTFORM_URL` | 接收表单前端的公共 URL,例如 `https://form.example.com` | | `SOCVIEW_API_URL` | SoC 后端 API 的公共 URL,可供浏览器访问 | | `INPUTFORM_API_URL` | 接收后端 API 的公共 URL,可供浏览器访问 | **数据库** | 变量 | 描述 | |---|---| | `MONGO_ROOT_PASSWORD` | MongoDB root 密码(仅由 Docker 在初始设置时使用) | | `MONGO_APP_USERNAME` | MongoDB 应用程序用户(对 `girp_db` 拥有读写权限) | | `MONGO_APP_PASSWORD` | 应用程序用户的密码 | **安全** | 变量 | 描述 | |---|---| | `CSRF_SECRET` | 用于 CSRF token 派生的密钥。可使用 `openssl rand -hex 32` 生成。 | | `SESSION_JWT_SECRET` | 用于接收会话 JWT 签名的密钥。 | | `SUPER_ADMIN_EMAIL` | 始终被授予管理员权限的电子邮件地址。 | **身份验证** 必须通过 `AUTH_*_ENABLED` 标志启用至少一个提供者。 | 提供者 | 所需变量 | |---|---| | Azure / Entra ID (`AUTH_AZURE_ENABLED=true`) | `AZURE_CLIENT_ID`, `AZURE_TENANT_ID` | | Auth0 (`AUTH_AUTH0_ENABLED=true`) | `AUTH0_OIDC_ISSUER`, `AUTH0_OIDC_AUDIENCE` | | Better-Auth (`AUTH_BETTERAUTH_ENABLED=true`) | `BETTER_AUTH_SECRET`, `BETTER_AUTH_COOKIE` — 可选配 Google 或 Slack OAuth | **通知**(均为可选) 支持 SMTP、Slack、Microsoft Teams、PagerDuty 和通用 webhook。将所有 `NOTIFY_*` 和 `SMTP_*` 变量留空即可完全禁用通知。 ## 许可证 参见 `LICENSE.md`。
标签:API, Docker Compose, GNU通用公共许可证, MITM代理, MongoDB, Node.js, SoC, Vue.js, 事件分类, 事件调查, 低代码, 前后端分离, 可视化Playbook, 安全事件处置, 安全运营中心, 工单管理, 应急响应平台, 开源安全项目, 微服务架构, 版权保护, 生命周期管理, 网络安全, 网络映射, 表单构建, 请求拦截, 隐私保护