jose-litium/Soar-incident-responses
GitHub: jose-litium/Soar-incident-responses
基于 Google Apps Script 的轻量级 SOAR 工作流,为 Google Workspace 环境提供从事件接收到报告通知的全链路自动化响应。
Stars: 0 | Forks: 0
# SOAR 事件响应自动化
使用 Google Apps Script、Google Docs、Google Sheets、Mailjet 和 Slack 为 Google Workspace 环境提供自动化的事件接收、响应、记录和通知。
## 目录
- [概述](#overview)
- [功能](#features)
- [架构](#architecture)
- [函数参考](#function-reference)
- [配置](#configuration)
- [安装与使用](#installation--usage)
- [模板与示例](#templates--examples)
- [扩展与集成](#extending--integrating)
- [改进与路线图](#improvements--roadmap)
- [许可与致谢](#license--credits)
## 概述
**SOAR 事件响应自动化**是一个开源工作流,用于在 Google Workspace (GWS/GCP) 组织内编排安全事件响应。
此系统可自动化:
- **事件接收**(webhook/HTTP、cURL 或手动触发)
- **IOC(妥协指标)匹配**
- **记录报告(Google Docs)**
- **利益相关者通知(Mailjet/Gmail、Slack)**
- **集中式日志记录(Google Sheets)**
- **可选的响应触发器(EDR、Chronicle、防火墙集成)**
非常适合寻求快速、可审计、零基础设施自动化的安全团队、IT 管理员和 GCP 原生组织。
## 功能
- **多渠道接收:** 来自 SIEM/EDR 的 webhook/HTTP POST、cURL 模拟或手动测试触发。
- **IOC 匹配:** 与最新的 FireHOL/blocklist 数据进行自动比较。
- **自动报告:** 从可自定义的模板生成结构化的 Google Docs。
- **利益相关者通知:** 通过 Mailjet 或 Gmail 备用方案以及 Slack 进行通知(带有严重性颜色和实时链接)。
- **集中式日志记录:** 每一个事件,无论是可操作的还是信息性的,都会记录在 Google Sheet 中。
- **易于扩展:** 用于 Slack、Mailjet 或其他集成的模块化配置。
- **可审计:** 用于合规性和监控的完整工作流日志。
- **支持 Chronicle/EDR/防火墙响应触发器**(通过 API 集成或 playbook 扩展)。
## 架构
SOAR 事件响应自动化工作流包含以下步骤:
1. **事件接收**
- 系统通过 webhook(HTTP POST)、cURL 命令或手动测试触发接收事件数据。
- 提取所有相关属性:用户、IP 地址、位置、警报来源、严重程度、MFA 状态等。
2. **IOC(妥协指标)检查**
- 将源 IP 与最新的 IOC blocklist(例如 FireHOL)进行比较。
- 如果存在该 IP,则该事件被视为*可操作事件*。
3. **升级规则(如果不符合 IOC)**
- 如果没有匹配的 IOC,系统将评估升级逻辑:例如特权用户操作、敏感数据访问、可疑地理位置,或 EDR/Chronicle/防火墙检测。
- 如果满足升级规则,则该事件将作为可操作事件处理。
4. **可操作事件**
- 根据模板生成新的 Google Docs 报告,并填充所有事件详细信息。
- 通过 Mailjet(或 Gmail 备用方案)和 Slack 通知利益相关者,并提供指向报告和日志的直接链接。
- 该事件将附加到 Google Sheet 以进行集中式日志记录。
- (可选)在 Chronicle 或 EDR 中触发自动调查或响应。
5. **仅信息性事件**
- 如果事件既不是 IOC,也不满足升级标准,则会被记录为“仅信息性”。
- 仍会创建 Google Doc 和表格日志条目,以供审计和追溯。
- 通知中会明确指出不需要立即采取安全措施。
6. **审计日志**
- 使用系统的集中式日志记录工具记录每个步骤、操作和潜在错误,以用于合规性和故障排除。
**总结:**
此工作流确保每个潜在事件都根据明确的规则进行记录、记录和升级,同时让利益相关者随时了解情况并保持完全的可审计性。
## 函数参考
**核心函数:**
- `doPost(e)`:**Webhook 入口点** – 以 JSON 格式接收事件,进行标准化处理,并触发整个流程。
- `main()`:**手动触发/测试** – 处理模拟事件,用于测试和初始设置。
- `updateIocIpList()`:**IOC blocklist 更新器** – 下载并将最新的 FireHOL blocklist 存储到脚本属性中。
- `isIocIp(ip)`:检查某个 IP 是否在当前的 IOC blocklist 中。
- `processIncident(incident)`:核心引擎 – 决定事件是否可操作,然后运行报告、通知和日志记录。
- `createIncidentReport(incident)`:根据模板创建新的 Google Doc,替换所有占位符。
- `insertSummaryToDoc(docId, summary, incident)`:将执行摘要、时间线和所有详细信息写入 Doc。
- `sendIncidentNotification(incident, docId, summary, isActionable)`:发送带有样式的电子邮件(Mailjet/Gmail)。
- `sendSlackNotification(incident, docId, isActionable)`:发送格式化的 Slack 警报。
- `logIncidentToSheet(incident, docId)`:将事件附加到 Google Sheet 中。
- `kickoffChronicle(incident)`:(可选)触发 Chronicle/EDR/API playbook 以进行更深入的调查。
- `logActivity(msg, level)`:用于故障排除和审计的集中式日志记录。
## 配置
所有配置(Doc/Sheet ID、电子邮件地址、Slack webhook 等)都位于主脚本文件顶部的单个 `CONFIG` 对象中。
有关以下内容,请参阅 [Configuration.md](Configuration.md):
- 如何获取 Google Doc/Sheet ID
- 如何与 Apps Script 项目共享资源
- 设置 Mailjet(API 密钥)或 Slack(webhook)
- 启用/禁用 Chronicle 或其他集成
## 安装与使用
[Installation and Usage.md](Installation%20and%20Usage.md) 中提供了分步安装、部署和使用指南。
简要步骤如下:
1. **将 Apps Script 项目**复制到您的 Google Workspace 中。
2. 使用您的模板、表格、Slack 和电子邮件设置**更新 `CONFIG`**。
3. **授权**(在编辑器中运行 `main()` 以提示授予权限)。
4. **部署为 Web App**(在初始测试时将访问权限设置为“任何人”)。
5. **通过 `main()` 或 cURL/webhook 进行测试** – 参见 [模拟事件 JSON 示例](mock_incident-json.MD)。
6. **监控日志和输出**(Google Sheet、Docs、Slack、电子邮件)。
## 模板与示例
- [Google Docs 模板示例(推荐结构)](Sample%20Google%20Docs%20Template%20(Recommended%20Structure).md)
- [模拟事件 JSON 示例](mock_incident-json.MD)
## 扩展与集成
- 支持与 **EDR**、**SIEM**、**防火墙**或任何能够发送 HTTP POST 的系统进行轻松集成。
- 要添加更多通知渠道,请参阅 `sendIncidentNotification` 和 `sendSlackNotification`。
- 将逻辑添加到 `processIncident` 以制定新的升级规则、富集或自动修复。
- 使用提供的日志记录功能来维护完整的审计追踪。
有关路线图和想法,请参见 [Improvements.md](improvements.md)。
## 改进与路线图
- 额外的 SIEM/EDR 富集(反向 DNS、geo-IP、用户上下文)
- Slack 交互操作(确认/关闭事件)
- 自动导出 PDF 报告
- DLP/数据访问 playbook 模板
- 更强大的错误处理和监控
## 许可与致谢
- [License.md](License.md)
- [Credits.md](Credits.md)
**开始使用:**
从 [配置](Configuration.md) 和 [安装与使用](Installation%20and%20Usage.md) 指南开始。
使用 [模拟事件 JSON](mock_incident-json.MD) 进行测试,以验证您的部署。
**核心逻辑:**
所有主要逻辑都位于 [`Soar Incident Responses.gs`](Soar%20Incident%20Responses.gs) 中。
## 架构
有关完整的图表和深入说明,请参见 [Architecture.md](Architecture.md)。
下面是显示自动化逻辑的简化流程图(适用于支持 Mermaid 的 Markdown 查看器):
```
---
config:
layout: elk
theme: neo
look: neo
---
flowchart TD
A(["Start"]) --> B["Receive Incident Data"]
B --> C{"Is login IP in IOC list?"}
C -- Yes --> D{"Was MFA used?"}
D -- No --> E["Severity: High"]
D -- Yes --> F["Severity: Medium"]
E --> G["Generate Report, Notify, Log, Status: Open"]
F --> G
C -- No --> H{"Was MFA used?"}
H -- No --> I["Severity: Medium"]
H -- Yes --> J["Severity: Low"]
I --> G
J --> K["Log Event, Status: Closed"]
K --> L(["End"])
G --> L
```
标签:Google Workspace, SOAR, 威胁情报, 安全运营, 库, 应急响应, 开发者工具, 扫描框架, 网络调试, 自动化, 自定义脚本