BL3IP/soar-shuffle-playbook
GitHub: BL3IP/soar-shuffle-playbook
基于 Shuffle SOAR 平台的开源安全自动化编排项目,提供可疑 IP 自动富化、评分与遏制处置的 playbook。
Stars: 0 | Forks: 0
# 19 — SOAR 自动化 (Shuffle) — 自动富化与遏制
一个通过 Docker 部署的 **Shuffle** SOAR 平台,外加一个 **自动富化 → 决策 → 遏制** 的 playbook,它可以富化可疑 IP 并采取遏制行动 —— 这是 SOC 自动化的核心。
## 目标
搭建一个开源的 SOAR,并构建一个告警响应 playbook,它可以自动富化指标并决定是否对其进行遏制 —— 从而消除手动分类的繁琐工作。
## 包含内容
| 路径 | 内容描述 |
|------|-----------|
| [`playbook/auto_enrich_contain.py`](./playbook/auto_enrich_contain.py) | playbook 逻辑(富化 + 评分 + 遏制) |
| [`playbook/test_auto_enrich_contain.py`](./playbook/test_auto_enrich_contain.py) | pytest 测试套件(确定性) |
| [`docs/workflow-design.md`](./docs/workflow-design.md) | Shuffle 工作流设计 + 导入步骤 |
| [`artifacts/shuffle-deployment.txt`](./artifacts/shuffle-deployment.txt) | 证据:所有 Shuffle 容器均已运行 |
| [`artifacts/playbook-run-example.json`](./artifacts/playbook-run-example.json) | 一次真实的 CONTAIN 运行 |
## 精确设置命令
```
# 1) 部署 Shuffle (SOAR)
git clone https://github.com/Shuffle/Shuffle.git
wsl -d docker-desktop sysctl -w vm.max_map_count=262144 # for OpenSearch
cd Shuffle ; docker compose up -d # UI at https://localhost:3443
# 2) 运行 playbook 逻辑(并进行测试)
cd C:\Users\banlv\cyber\19-soar-automation
& "C:\Users\banlv\AppData\Local\Programs\Python\Python312\python.exe" -m venv .venv
.\.venv\Scripts\python.exe -m pip install pytest
.\.venv\Scripts\python.exe -m pytest playbook\ -q
.\.venv\Scripts\python.exe playbook\auto_enrich_contain.py 45.33.32.156
```
## 运行验证
**Shuffle 已部署** — 所有 4 个容器均处于 Up 状态,UI 在 `:3001`/`:3443` 上返回 **HTTP 200**
([证明](./artifacts/shuffle-deployment.txt)):
```
shuffle-frontend Up 0.0.0.0:3001->80, 0.0.0.0:3443->443
shuffle-backend Up 0.0.0.0:5001->5001
shuffle-opensearch Up 0.0.0.0:9200->9200
shuffle-orborus Up
```
**Playbook — 5/5 测试通过**,并且实时运行会根据真实的富化数据做出实际决策:
```
45.33.32.156 -> CONTAIN (score 3; 120 known CVEs) -> block_ip + notify SOC
185.220.100.240 -> INVESTIGATE (score 2; tag 'tor') -> create_ticket
8.8.8.8 / 1.1.1.1 -> MONITOR (clean) -> no action
```
## 截图
参见 [`./screenshots/`](./screenshots)。添加:Shuffle UI (https://localhost:3443) 以及一次 playbook 运行截图。
## 我的自定义扩展
- 一个**可移植的、经过单元测试**的 playbook(富化/评分/遏制),以便在接入 Shuffle 的 UI 应用之前,可以离线开发和验证决策逻辑。
- 真实的、无需密钥的富化(Shodan InternetDB)驱动实时的 CONTAIN/INVESTIGATE/MONITOR 判定。
- 完整的部署运行手册,包括针对 Docker Desktop/WSL2 的 OpenSearch `vm.max_map_count` 修复方案。
## 简历要点
- 部署了 **Shuffle** 开源 SOAR(Docker,包含 OpenSearch 的 4 服务技术栈),并进行了端到端的平台验证。
- 构建并单元测试了一个**自动富化与遏制** playbook,它对实时 IP 富化数据进行评分并触发拦截/通知/工单操作(5/5 测试通过;在一个包含 120 个 CVE 的主机上进行了实时 CONTAIN 操作)。
- 记录了等效的 Shuffle 工作流(webhook → HTTP 富化 → 条件判断 → 遏制)。
## 进阶想法
- 在 Shuffle 中原生构建工作流,并通过 SIEM(项目 01)的 webhook 进行触发。
- 添加真实的遏制应用(防火墙/EDR API),并为破坏性操作增加审批步骤。
- 将威胁情报简报(项目 09)作为每日的富化数据源。
状态: ✅ 完成并已测试
```
✅ PROJECT COMPLETE & FULLY TESTED in its isolated folder. All works. Ready for portfolio.
```
标签:Docker, FTP漏洞扫描, Python, SOAR, 威胁情报, 安全编排, 安全规则引擎, 安全运营, 安全防御评估, 开发者工具, 扫描框架, 无后门, 自动化响应, 请求拦截, 逆向工具