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 环境提供自动化的事件接收、响应、记录和通知。
Google Apps Script Mailjet Slack
## 目录 - [概述](#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, 威胁情报, 安全运营, 库, 应急响应, 开发者工具, 扫描框架, 网络调试, 自动化, 自定义脚本