seyifalode-cmd/soar-playbooks
GitHub: seyifalode-cmd/soar-playbooks
为 SOC 团队提供一套供应商中立的安全自动化响应 playbook 模板,覆盖钓鱼、可疑登录、恶意软件和云配置错误场景,内置威胁情报富集脚本和强制人工审核决策点。
Stars: 0 | Forks: 0
# soar-playbooks
## 什么是 SOAR?
**SOAR 平台** 是构建在您的 SIEM 和安全工具之上的一层,允许 SOC 团队将其响应流程编纂为自动化工作流。分析师无需在压力下手动检查 VirusTotal、查询身份提供者、创建工单并发送通知,SOAR playbook 会自动执行这些机械化的步骤,并向分析师呈现预先丰富(enriched)的摘要以及需要做出的明确决策。
试想一下这样一位外科医生:他必须在动刀之前亲自准备手术室、消毒工具并查找患者的病历;而另一位外科医生走进来时,发现一切均已准备就绪,从而可以完全将精力集中在只有人类才能做出的判断上。这两者之间的差异便是 SOAR 的价值所在。
本仓库中提及的 SOAR 平台包括:
- **Cortex XSOAR** (Palo Alto Networks) — 企业级、基于 Python 的自动化
- **Splunk SOAR** (前身为 Phantom) — 具有可视化画布的事件驱动型 playbook
本仓库中的 playbook 均以供应商中立的格式编写——其逻辑、决策点和富集(enrichment)步骤同样适用于上述任一平台(以及其他诸如 Microsoft Sentinel Automation、Google Chronicle SOAR 或自定义编排框架)。
## 为什么“人在回路”至关重要
自动化提升了 SOC 团队的响应速度。但是,**缺乏判断的速度会带来风险**。
本仓库中的每一个 playbook,在执行任何以下操作之前,都包含一个强制性的**人在回路(HITL)决策点**:
- **破坏性操作** — 删除数据、阻止访问、隔离主机
- **不可逆操作** — 撤销会话、隔离成千上万用户的邮箱
- **影响业务的操作** — 使服务器下线、更改云资源权限
HITL 闸门并**不**意味着响应缓慢。这些 playbook 中的每个闸门均经过精心设计,以确保:
1. 分析师收到的是经过全面富集和预先汇总的案例 — 而非原始日志数据
2. 决策过程是二元的(批准 / 拒绝 / 修改范围)
3. 超时机制会自动升级上报,而不会导致工作流停滞
## Playbook 索引
| # | Playbook | 触发条件 | MITRE ATT&CK | 严重程度 |
|---|----------|---------|--------------|----------|
| 01 | [钓鱼邮件响应](playbooks/01_phishing_email_response.md) | 来自邮件安全平台的高可信度钓鱼告警 | [T1566](https://attack.mitre.org/techniques/T1566/) · [T1566.001](https://attack.mitre.org/techniques/T1566/001/) · [T1566.002](https://attack.mitre.org/techniques/T1566/002/) | HIGH |
| 02 | [可疑登录响应](playbooks/02_suspicious_login_response.md) | 来自 IdP 的不可能旅行或异常登录告警 | [T1078](https://attack.mitre.org/techniques/T1078/) · [T1078.004](https://attack.mitre.org/techniques/T1078/004/) | HIGH |
| 03 | [恶意软件 / 端点响应](playbooks/03_malware_endpoint_response.md) | EDR HIGH/CRITICAL 级别检测 — 恶意软件、勒索软件、C2、凭据转储 | [T1059](https://attack.mitre.org/techniques/T1059/) · [T1486](https://attack.mitre.org/techniques/T1486/) · [T1490](https://attack.mitre.org/techniques/T1490/) | CRITICAL |
| 04 | [云错误配置响应](playbooks/04_cloud_misconfiguration_response.md) | CSPM 发现 — 公开存储桶、宽松的 IAM、开放的安全组 | [T1530](https://attack.mitre.org/techniques/T1530/) · [T1078.004](https://attack.mitre.org/techniques/T1078/004/) | HIGH–CRITICAL |
## 富集脚本
在自动化富集阶段,playbook 会调用 `enrichment/` 目录下的三个 Python 脚本。每个脚本均包含详细的注释,能够优雅地处理错误,并从环境变量中读取凭据 — **不存在任何硬编码的机密信息**。
| 脚本 | 用途 | 用于 |
|--------|---------|---------|
| [`virustotal_lookup.py`](enrichment/virustotal_lookup.py) | 查询 VirusTotal v3 API 以获取 hash、IP 或 URL 的信誉 | PB 01, 02, 03 |
| [`ip_geo_enrich.py`](enrichment/ip_geo_enrich.py) | 对 IP 进行地理定位,检测 VPN/Tor/数据中心,计算不可能旅行 | PB 02, 03, 04 |
| [`misp_lookup.py`](enrichment/misp_lookup.py) | 查询 MISP 威胁情报实例以获取任意类型的 IOC | PB 01, 02, 03 |
### 所需的环境变量
```
# VirusTotal
export VT_API_KEY="your_virustotal_api_key"
# MISP
export MISP_URL="https://misp.yourdomain.com"
export MISP_API_KEY="your_misp_automation_key"
# 可选 — ip_geo_enrich.py
export HIGH_RISK_COUNTRIES="KP,IR,BY,CU,SY" # ISO country codes
export IMPOSSIBLE_TRAVEL_SPEED_KPH="900" # Default: 900 km/h
```
### 独立运行脚本
```
# 安装唯一的依赖
pip install requests
# 直接运行任意脚本以进行测试
python enrichment/virustotal_lookup.py
python enrichment/ip_geo_enrich.py
python enrichment/misp_lookup.py
```
## 流程图 / 图表
`diagrams/` 目录中包含每个 playbook 对应的 Mermaid 流程图。这些图表可以在 GitHub 上原生渲染,也可以导入到 Confluence、Notion 或任何支持 Mermaid 的文档平台中。
| 图表 | Playbook |
|---------|---------|
| [01_phishing_email_response.md](diagrams/01_phishing_email_response.md) | 钓鱼邮件响应 |
| [02_suspicious_login_response.md](diagrams/02_suspicious_login_response.md) | 可疑登录响应 |
| [03_malware_endpoint_response.md](diagrams/03_malware_endpoint_response.md) | 恶意软件 / 端点响应 |
| [04_cloud_misconfiguration_response.md](diagrams/04_cloud_misconfiguration_response.md) | 云错误配置响应 |
## 仓库结构
```
soar-playbooks/
├── playbooks/ # Markdown playbooks — one per use case
│ ├── 01_phishing_email_response.md
│ ├── 02_suspicious_login_response.md
│ ├── 03_malware_endpoint_response.md
│ └── 04_cloud_misconfiguration_response.md
├── diagrams/ # Mermaid flowcharts for each playbook
│ ├── 01_phishing_email_response.md
│ ├── 02_suspicious_login_response.md
│ ├── 03_malware_endpoint_response.md
│ └── 04_cloud_misconfiguration_response.md
├── enrichment/ # Python enrichment scripts
│ ├── virustotal_lookup.py
│ ├── ip_geo_enrich.py
│ └── misp_lookup.py
├── docs/ # Supporting documentation
└── README.md
```
## 如何映射到 SOAR 平台
### Cortex XSOAR
- 每个 playbook 映射到在可视化画布中构建的 **XSOAR Playbook**
- 富集脚本映射到 **Integration commands** 或 **Automation scripts**
- HITL 闸门映射到 **Manual Task** 或 **Ask** 步骤,通过 PagerDuty/Slack 提醒分析师
- 工单映射到包含完整 War Room 日志的 **Incident** 对象
### Splunk SOAR
- 每个 playbook 映射到可视化编辑器中的 **Playbook**
- 富集脚本映射到集成资产上的 **App Actions**
- HITL 闸门映射到 **Prompt** 块,该块会暂停执行并发送 Teams/邮件通知
- 证据收集在附加到案例的 **Vault** 中
## 作者
**Oluwaseyi Michael Falode**
检测工程师 | 云与网络安全
- Email: [seyi.falode@yahoo.com](mailto:seyi.falode@yahoo.com)
- LinkedIn: [linkedin.com/in/oluwaseyi-falode](https://linkedin.com/in/oluwaseyi-falode)
- GitHub: [github.com/seyifalode-cmd](https://github.com/seyifalode-cmd)
*这些 Playbook 仅供教育和作品展示目的而编写。在生产环境部署之前,请根据您所在组织的特定风险承受能力和 SLA 要求,调整富集阈值、超时时间和上报路径。*
标签:Python, SOAR, 安全运营, 安全运营中心, 扫描框架, 无后门, 网络映射, 自动化剧本, 逆向工具, 防御加固