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, 安全事件处置, 安全运营中心, 工单管理, 应急响应平台, 开源安全项目, 微服务架构, 版权保护, 生命周期管理, 网络安全, 网络映射, 表单构建, 请求拦截, 隐私保护