Batina-Jennifer/soc-automation-project

GitHub: Batina-Jennifer/soc-automation-project

基于 Wazuh、Shuffle 和 TheHive 构建的混合云 SOC 自动化流水线,实现从端点威胁检测到 IoC 富化与自动工单创建的全链路编排。

Stars: 2 | Forks: 0

# ☁️ 混合云 SOC 自动化:分布式 SIEM 到 SOAR 的事件响应流水线 本项目旨在设计、部署和配置一个分布式的、多层的安全运营中心 (SOC) 事件响应流水线。该项目将本地端点测试沙箱与云端托管的安全基础设施连接起来,演示了组织如何最大程度地减少告警疲劳并优化平均响应时间 (MTTR)。
通过将本地遥测传感器与 Wazuh (SIEM)、Shuffle (SOAR SaaS) 和 TheHive 5(事件管理)集成,该流水线完全实现了威胁分拣生命周期的自动化。该架构捕获端点漏洞利用,通过公共 WAN 将遥测数据传输到云原生虚拟实例,通过威胁情报 API 解析并丰富入侵指标 (IoC),并在 10 秒内自动生成结构化的事件响应案例。
## 🪛 工具与技术 - Google Cloud Platform (GCP) - Oracle VirtualBox - Wazuh (SIEM) - Shuffle (SOAR) (SaaS) - TheHive 5 (IM) - Sysmon & Powershell - Mimikatz - VirusTotal v3 API
![工作流](https://raw.githubusercontent.com/Batina-Jennifer/soc-automation-project/main/) (注意:本项目使用了 Windows 11。) ## 🏗️ 架构与工作流 它由云端的两个服务器组成——本项目托管在 GCP 中的 wauzh-managerthe-hive。整个架构类似于下图所示: ![架构](https://raw.githubusercontent.com/Batina-Jennifer/soc-automation-project/main/) ## ⚙️ 初始设置 1. 在 GCP 账户中配置两个 Google Compute Engine (GCE) 虚拟机实例:wazuh-manager(托管中央 SIEM 服务器)和 the-hive(托管由 Elasticsearch 和 Apache Cassandra 活动后端集群提供支持的 TheHive 5)。
以下是使用 GREP 命令快速检查所有活动服务的方法: ![所有服务运行中]() 以下是初始设置后 Wazuh-Manager 仪表盘的预览: ![Wazuh 初步预览](https://raw.githubusercontent.com/Batina-Jennifer/soc-automation-project/main/) 以下是初始设置后 The-Hive 仪表盘的预览: ![The-Hive 初步预览](https://raw.githubusercontent.com/Batina-Jennifer/soc-automation-project/main/) 2. 在本地主机系统(Windows 11 物理机)上,确保正在运行 Oracle VirtualBox,且其中配置了 Windows 11 客户机操作系统沙箱,该沙箱包含已部署的 Microsoft Sysmon,并运行着指向 WAN 端口 1514 上的 wazuh-manager GCP 实例公网 IP 地址的活动 Wazuh Agent。
3. 登录 Shuffle SaaS 账户 并验证集成 webhook URI 是否已生成并准备好接收 JSON payload。
## ℹ️ 描述 告警疲劳是现代企业 SOC 团队面临的最关键挑战之一。当触发高严重性安全事件时,安全分析师传统上需要花费大量宝贵的分拣时间来提取指标,转向开源威胁情报 (OSINT) 存储库进行信誉检查,并在单独的案例管理器中手动记录调查细节。此过程会增加平均检测时间 (MTTD) 并限制响应有效性。
此实现构建了一个结构化的 SOAR Playbook 自动化循环,以处理端到端的遥测生命周期。当资产上发生恶意行为时,遥测数据会通过加密隧道逃离本地 VirtualBox 网络边界并到达云端 SIEM。Wazuh 解析日志,并通过 webhook 将自定义集成 payload 传递给 Shuffle SaaS。Shuffle 编译正则表达式以分离出高保真度的文件哈希值,触发对 VirusTotal v3 API 的查询,并将结果直接映射到针对 TheHive 5 的经过身份验证的 REST API 调用中,从而建立一个经过丰富的安全案例以供分拣。
## 👩🏼‍💻 配置自动化组件 ### 第 1 部分:配置云端 SIEM 集成 Hook 1. 通过 SSH 登录到 GCP 上的 wazuh-manager 实例,并打开全局管理器配置文件: sudo nano /var/ossec/etc/ossec.conf 2. 滚动到底部并添加一个专门的“integration”块,指向 Shuffle webhook URI,并专门过滤高保真度的端点检测规则。
3. 重启 SIEM 服务以完成出站 Hook 的配置:sudo systemctl restart wazuh-manager
### 第 2 部分:映射 SOAR Playbook 引擎 1. 打开物理机上的浏览器并登录 Shuffle SaaS 工作流设计器。将一个 webhook 节点拖到画布上,以捕获 Wazuh 发送的原始 JSON 数据块。 2. 链接一个文本操作工具节点,使用自定义的正则表达式 组,旨在剔除并分离原始文件指标: [0-9a-fA-F]{64}(针对 SHA-256 字符串索引)。 3. 使用 API 密钥对 VirusTotal v3 API 操作块进行身份验证,并将 Regex 捕获组的输出参数直接映射到哈希查询变量字段中。 4. 将 TheHive 应用程序节点拖到画布上,并将配置 schema 从简单布局切换到高级模式,以格式化直接的 JSON POST API 主体。 ### 第 3 部分:解决严格的 API 和数据格式限制 在集成期间,发往 TheHive 5 的跨平台 API 调用可能会返回 BadRequest / Invalid JSON formatting 异常。要绕过这些限制,请仔细查看 Shuffle 内部的高级数据 schema: 1. 动态标签附加:像 MITRE ATT&CK 标签这样的字段必须包装在结构化的数组括号内,而不是文本变量中: ["T1003"] 2. 严格的参数类型转换:传递像 “$exec.severity” 这样的动态评估字符串会触发验证失败 (error.expected.jsnumber)
完全删除该字符串并输入一个独立的纯整数:3(分配硬编码的中等严重性数据库排名)。 3. 标志提取:显式传递不带引号的布尔基元:false(确保与 TheHive 的告警模型兼容)。
工单会动态继承其中等严重性(级别 3)参数,附加自动化的 MITRE 标签 T1003,并显示完整的系统日志详细信息以及计算机主机名,以便分析师立即进行响应。
(注意:最新版本的 Elasticsearch 默认启用了安全功能(设置为 true),可以在 xpack.security.... 下找到。由于 Web 界面是未受保护的 HTTP,这会阻止 thehive 与其连接。为了解决这个问题,在本项目中请使用 sudo nano /etc/elasticsearch/elasticsearch.yml 编辑配置文件并将它们设置为 false)。 ## 💻 通过攻击模拟进行验证 1. 在 VirtualBox 中打开 Windows 11 客户机操作系统,以管理员身份打开 PowerShell,并执行 Mimikatz 二进制文件以模拟凭证转储攻击(MITRE ATT&CK T1003)。注意:在此步骤之前必须关闭防病毒保护。 2. 本地 Sysmon 实例记录了进程执行异常,Wazuh Agent 立即将遥测数据流式传输到云仪表板。 3. 切换到物理主机浏览器并检查 Shuffle 执行历史记录窗口(“奔跑的人”图标)。实时运行的工作流会自动从灰色变为绿色,从而验证 webhook 是否捕获了数据包、解析了哈希值并成功查询了 VirusTotal。 ![Shuffle 集成]() 4. 导航到端口 9000 上云端托管的 TheHive 界面。在活动告警队列下,将自动弹出一个经过丰富的工单。 ![Mimikatz 告警]() 5. 该工作流具有电子邮件集成功能,可以向负责的 SOC 分析师发送电子邮件,以保持“人机协同”,分析师将对此进行进一步的分拣并根据需要进行记录/报告。
![测试电子邮件集成]() ## 🗒️ 结语 - 威胁向量: MITRE ATT&CK T1003(通过 Mimikatz 进行操作系统凭证转储) - 机制: 本地 Sysmon 收集 -> 加密 WAN 传输 -> 云端 SIEM 处理 -> Webhook 转发。 - 编排: Regex 文件哈希解析、VirusTotal 信誉检查以及严格的整数/数组数据类型验证。 - 结果: 消除了手动案例记录;未经验证的端点日志会在 10 秒内自动丰富并转化为可操作的告警。 - 未来策略: 将模块化节点转换为自定义 Python 脚本以实现高级字符串屏蔽,并实施 Agentic SOC 模块以自动起草补救 Playbook。 (注意:在不使用时,请停止运行虚拟机实例,以避免产生额外成本的资源消耗。任何 CSP(如 AWS、GCP、Azure、Vultr、DigitalOcean 等)均可用于此目的。)
标签:CIDR查询, SOAR, TheHive, Wazuh, 威胁情报, 安全运营, 开发者工具, 扫描框架, 自动化响应