Xros3x/Security-Automation-with-Shuffle-SOAR

GitHub: Xros3x/Security-Automation-with-Shuffle-SOAR

基于 Shuffle SOAR 平台构建的安全自动化流水线,通过 Splunk 检测 SSH 暴力破解并利用双威胁情报源自动富化攻击者 IP,最终向 SOC 派发带有完整上下文的邮件告警。

Stars: 1 | Forks: 0

# 🤖 使用 Shuffle SOAR 的安全自动化 ![Shuffle](https://img.shields.io/badge/-Shuffle_SOAR-FF6F00?&style=for-the-badge&logo=shuffle&logoColor=white) ![Splunk](https://img.shields.io/badge/-Splunk-000000?&style=for-the-badge&logo=Splunk&logoColor=white) ![Docker](https://img.shields.io/badge/-Docker-2496ED?&style=for-the-badge&logo=docker&logoColor=white) ![AbuseIPDB](https://img.shields.io/badge/-AbuseIPDB-D32F2F?&style=for-the-badge&logoColor=white) ![VirusTotal](https://img.shields.io/badge/-VirusTotal-394EFF?&style=for-the-badge&logo=virustotal&logoColor=white) ![Kali](https://img.shields.io/badge/-Kali_Linux-557C94?&style=for-the-badge&logo=kali-linux&logoColor=white) ![Ubuntu](https://img.shields.io/badge/-Ubuntu-E95420?&style=for-the-badge&logo=ubuntu&logoColor=white) ## 目标 构建一个自动化的安全编排、自动化与响应(SOAR)流水线,通过 Splunk SIEM 检测 SSH 暴力破解攻击,并在 Shuffle 中自动触发调查工作流。该工作流会提取攻击者 IP,利用两个独立的威胁情报源(AbuseIPDB 和 VirusTotal)对其进行富化,应用条件逻辑,并向 SOC 发送包含完整情报的邮件告警——复现企业安全运营中心(SOC)中执行的自动化一级(tier-1)分流操作。 ## 为什么这个项目很重要 在真实的 SOC 中,分析师常常被海量告警淹没。SOAR 平台能够自动化重复的调查步骤——拉取威胁情报、关联数据并通知相关人员——从而使分析师能够专注于决策,而不是手动查询。该项目端到端地展示了这种确切的能力。 ## 自动化响应流水线 ``` Hydra SSH Brute Force Attack (Kali) ↓ Splunk SIEM detects failed logins → Alert fires ↓ Splunk Webhook Action → POST to Shuffle ↓ ┌─────────────────────────────────────────────┐ │ SHUFFLE SOAR WORKFLOW │ │ │ │ 1. Webhook receives alert payload │ │ 2. Extract attacker source IP │ │ 3. AbuseIPDB reputation lookup │ │ 4. VirusTotal reputation lookup │ │ 5. Conditional logic evaluates attack │ │ 6. Enriched email alert dispatched to SOC │ └─────────────────────────────────────────────┘ ↓ SOC Analyst receives enriched alert with threat intelligence context attached ``` ## 环境 | 组件 | 详情 | |-----------|---------| | SOAR 平台 | Shuffle(通过 Docker 自托管) | | SIEM | 运行于 Ubuntu 24.04 的 Splunk Enterprise | | Hypervisor | 运行于 HP EliteDesk 的 Proxmox VE | | 攻击机 | Kali Linux 虚拟机 | | 受害端点 | Raspberry Pi 5(SSH 目标) | | 威胁情报 | AbuseIPDB API + VirusTotal API | | 容器化 | Docker + Docker Compose v2 | | 通知 | Gmail SMTP | ## 工具与技术 | 工具 | 用途 | |------|---------| | Shuffle SOAR | 工作流自动化与编排 | | Splunk Enterprise | SIEM 检测与 webhook 触发 | | Docker | 托管 Shuffle 的容器平台 | | AbuseIPDB | IP 信誉威胁情报 | | VirusTotal | 辅助 IP 信誉交叉验证 | | Hydra | SSH 暴力破解攻击模拟 | | Gmail SMTP | 自动化告警发送 | ## 实施过程 ### 1. 通过 Docker 部署 Shuffle 在专用的 Ubuntu 虚拟机上将 Shuffle 部署为容器化应用,将 SOAR 平台与 SIEM 分离开来——这反映了企业架构中编排独立于检测运行的最佳实践。 ``` git clone https://github.com/Shuffle/Shuffle cd Shuffle sudo sysctl -w vm.max_map_count=262144 sudo docker compose up -d ``` ### 2. Webhook 触发器配置 在 Shuffle 中创建了一个 webhook 触发器以接收告警的 payload,随后配置了 Splunk 的 webhook 告警动作,使其在 SSH 暴力破解告警触发时自动 POST 检测数据。 ### 3. Splunk 检测搜索 ``` index=main host="raspberrypi" "Failed password" | rex field=_raw "from (?\d+\.\d+\.\d+\.\d+)" ``` `rex` 命令从原始日志中提取攻击者的源 IP 到一个干净的命名字段中,Splunk 随后会在 webhook 的 payload 中将其传递给 Shuffle。 ### 4. 威胁情报富化 该工作流利用两个独立的数据源对提取的 IP 进行富化: - **AbuseIPDB** — 返回滥用置信度分数、总报告数、国家/地区和使用类型 - **VirusTotal** — 针对其威胁数据库对 IP 进行交叉验证 使用两个数据源展示了威胁情报的纵深防御——单一来源可能存在盲区,因此交叉验证可以提高可信度。 ### 5. 条件逻辑与自动化响应 一个条件节点控制着邮件通知,确保只有在确认检测到攻击时才会触发告警。邮件正文会动态填充攻击详情和实时的威胁情报数据,让接收分析师一眼就能获得完整的上下文。 ## 工作流概览 ![Shuffle 工作流](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3cbe1733ef183903.png) 完整的工作流:Webhook → IP 提取 → AbuseIPDB → VirusTotal → 条件邮件发送。 ## 威胁情报实战 ### AbuseIPDB 富化 ![AbuseIPDB](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/880d178bae183910.png) 当使用已知的恶意公共 IP(一个 Tor 出口节点)进行测试时,AbuseIPDB 返回了 100/100 的滥用置信度分数——这证明该富化功能可以正确识别高风险地址。 ### VirusTotal 富化 ![VirusTotal](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8f88b9a6d1183916.png) VirusTotal 提供了第二个独立的信誉检查,针对其威胁数据库对同一 IP 进行交叉验证。 ## 条件逻辑 ![条件逻辑](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0475798f01183923.png) 该条件控制着自动化邮件何时触发,确保在确认的攻击检测中派发通知,并附带富化后的上下文信息。 ## SIEM 集成 ![Splunk Webhook](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/d96f7ad740183929.png) 当 SSH 暴力破解告警触发时,Splunk 告警的 webhook 动作会自动将检测数据 POST 到 Shuffle——从而完成从 SIEM 到 SOAR 的集成。 ## 自动化告警输出 一旦检测到攻击,SOC 就会自动收到一封包含情报的邮件——无需人工查询。 ![邮件告警列表](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8f9fbfbdb0183936.png) 与其他通知一起到达收件箱的自动化告警。 ![邮件消息详情](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8e72598e89183940.png) 消息内容显示了攻击者 IP、攻击详情以及实时的威胁情报数据(AbuseIPDB 分数、国家/地区、总报告数和使用类型)——让接收分析师一眼就能获得完整的上下文,免除了原本应由一级分析师执行的手动查询工作。 ## 执行历史 ![运行历史](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ad55f01226183947.png) 成功的工作流执行记录证实该流水线能够可靠地端到端运行。 ## 测试与验证 为了证明条件逻辑在两个方向上都能正常工作,该流水线使用两个测试用例进行了验证: | 测试用例 | 源 IP | AbuseIPDB 分数 | 结果 | |-----------|-----------|-----------------|---------| | 已知的恶意公共 IP | Tor 出口节点 | 100/100 | 确认其具有高风险信誉 | | 内部实验室攻击者 | 私有 IP | 0/100 | 正确识别为私有/保留地址 | 这证明了该富化功能能够准确区分已知的恶意公共地址和良性的内部 IP。 ## MITRE ATT&CK 映射 | 技术 | ID | 覆盖范围 | |-----------|-----|----------| | 暴力破解:密码猜测 | T1110.001 | 由 Splunk 检测,由 SOAR 富化 | | 有效账户 | T1078 | SSH 身份验证监控 | ## 展示的技能 - SOAR 平台部署与管理(通过 Docker 部署 Shuffle) - 安全工作流与剧本开发 - 通过 webhook 实现 SIEM 到 SOAR 的集成 - 威胁情报 API 集成(AbuseIPDB、VirusTotal) - 条件自动化与分支逻辑 - 自动化事件通知 - Docker 容器化 - 真实场景下的 SOC 告警分流自动化 ## 真实场景应用 这种自动化复刻了企业 SOC 为分析师减负的方式。SOAR 工作流会瞬间完成对每一个告警中将 IP 手动复制到多个威胁情报网站的过程,并自动提供丰富后的上下文——从而缩短平均响应时间(MTTR),让分析师能够腾出时间进行更有价值的调查工作。 ## 参考 - [Shuffle 文档](https://shuffler.io/docs) - [AbuseIPDB API](https://docs.abuseipdb.com) - [VirusTotal API](https://developers.virustotal.com) - [Splunk Webhook 告警动作](https://docs.splunk.com) - [MITRE ATT&CK](https://attack.mitre.org)
标签:SOAR, SSH爆破检测, 威胁情报, 安全运营, 开发者工具, 扫描框架, 版权保护, 请求拦截