Jaysolex/soar-ir-pipeline
GitHub: Jaysolex/soar-ir-pipeline
基于 Wazuh、Shuffle 和 TheHive 构建的生产级十剧本自动化事件响应编排管线,覆盖全杀伤链的自动分诊、多源情报富化与条件化遏制。
Stars: 1 | Forks: 0
# 自动化事件响应 Pipeline
## 10 剧本生产级 SOAR 套件
**技术栈:** Wazuh · Shuffle · CrowdStrike Falcon · Microsoft 365 · Active Directory · VirusTotal · AbuseIPDB · Hybrid Analysis · MalwareBazaar · Shodan · URLhaus · MaxMind GeoIP · Tenable · AWS GuardDuty / CloudTrail · Azure Defender · Jira · TheHive · Slack
## 执行摘要
本仓库包含一个基于开源和企业级工具构建的、生产就绪的 10 剧本自动化事件响应 pipeline。该套件涵盖了完整的 MITRE ATT&CK 杀伤链——从初始访问到数据渗漏和影响——实现自动化分诊、富化和遏制。
每个剧本通过 webhook 从 Wazuh SIEM 接收结构化的 JSON 告警,运行并行多源富化,计算加权复合威胁评分,并路由到自动化遏制或结构化的分析师升级流程——所有这些都在告警触发的几秒钟内完成。
| 指标 | 人工 SOC | 本 Pipeline |
|---|---|---|
| 平均富化时间 (MTTE) | 15–30 分钟 | < 10 秒 |
| 平均遏制时间 (MTTC) | 30–90 分钟 | < 5 秒(自动化路径) |
| 是否需要分析师介入 | 每条告警 | 仅限高置信度威胁 |
| 威胁情报来源 | 每条告警 1–2 个 | 每条告警并行 3–5 个 |
## 架构
```
[ Enterprise Security Stack ]
Endpoints · Email Gateway · Network · Cloud · Identity
│
▼ (Windows Events / Syslog / CloudTrail / DLP)
[ Wazuh SIEM ]
Custom Detection Rules (100001–100095)
ossec.conf integration blocks
│
▼ (Async JSON webhook POST per playbook)
[ Shuffle SOAR ]
10 webhook endpoints
Parallel enrichment nodes
Weighted composite scoring
Conditional containment routing
│
┌─────┼──────────────────────────────────────┐
▼ ▼ ▼ ▼ ▼
[ VT ] [ AbuseIPDB ] [ Shodan ] [ AD/Azure ] [ AWS/Azure ]
[ HA ] [ MaxMind ] [ URLhaus ] [ M365 ] [ Config ]
[ MB ] [ NVD/CISA ] [ Tenable] [ Jira ] [ GuardDuty]
│
┌─────┼─────────────────┐
▼ ▼ ▼
[ CrowdStrike ] [ Firewall ] [ M365 Graph ]
EDR contain IP/domain Mailbox purge
RTR kill PID block Session revoke
File quarantine all hosts MFA enforce
│
[ TheHive ] [ Jira ] [ Slack ]
IR cases Vuln/cloud SOC/mgr alerts
CONFIDENTIAL tickets Critical channel
```
## 剧本套件
| ID | 剧本 | 严重程度 | 自动遏制 | 关键富化 | MITRE |
|---|---|---|---|---|---|
| PB-01 | 钓鱼分诊与遏制 | Critical | 是 (评分 ≥ 75) | VT · AbuseIPDB · AD | T1566 |
| PB-02 | 暴力破解与账户锁定 | Critical | 是 (评分 ≥ 70) | AbuseIPDB · MaxMind · AD | T1110 |
| PB-03 | 勒索软件检测与隔离 | Critical P1 | 是 + 零容忍 | VT · Hybrid Analysis · Wazuh API | T1486 · T1490 |
| PB-04 | 恶意软件哈希富化与隔离 | High | 是 (评分 ≥ 60) | VT · HA · MalwareBazaar · Wazuh API | T1059 · T1204 |
| PB-05 | 不可能旅行与可疑登录 | High | 是 (评分 ≥ 65) | MaxMind · AbuseIPDB · AD · Haversine | T1078 |
| PB-06 | 数据渗漏告警分诊 | High/Critical | 是 (评分 ≥ 70) | VT · MaxMind · AD HR 信号 · M365 Audit | T1048 · T1567 |
| PB-07 | 严重 CVE 检测与补丁工单 | High/Critical | Jira 自动工单 | NVD · CISA KEV · Tenable ACR | T1190 |
| PB-08 | C2 Beaconing 与出站拦截 | Critical P1 | 是 + 零容忍 | VT · AbuseIPDB · Shodan · URLhaus | T1071 · T1573 |
| PB-09 | 内部威胁特权异常 | High/Critical | 是 (评分 ≥ 70) | AD · Wazuh 基线 · Jira 变更管理 · M365 | T1070 · T1078 |
| PB-10 | 云错误配置分诊 | High/Critical | 是 (评分 ≥ 65) | AWS Config · IAM · Azure ARM · GuardDuty | T1530 · T1578 |
## 仓库结构
```
soar-ir-pipeline/
├── .github/workflows/ # Optional CI/CD
├── docker/
│ └── docker-compose.yml # Full stack orchestration
├── wazuh/
│ ├── ossec.conf # All 10 SOAR integration blocks
│ └── rules/
│ ├── pb01_phishing_rules.xml
│ ├── pb02_bruteforce_rules.xml
│ ├── pb03_ransomware_rules.xml
│ ├── pb04_malware_rules.xml
│ ├── pb05_impossible_travel_rules.xml
│ ├── pb06_exfiltration_rules.xml
│ ├── pb07_cve_rules.xml
│ ├── pb08_c2_rules.xml
│ ├── pb09_insider_threat_rules.xml
│ └── pb10_cloud_rules.xml
├── shuffle/
│ ├── pb01_phishing_playbook.json
│ ├── pb02_bruteforce_playbook.json
│ ├── pb03_ransomware_playbook.json
│ ├── pb04_malware_playbook.json
│ ├── pb05_impossible_travel_playbook.json
│ ├── pb06_exfiltration_playbook.json
│ ├── pb07_cve_playbook.json
│ ├── pb08_c2_playbook.json
│ ├── pb09_insider_threat_playbook.json
│ └── pb10_cloud_playbook.json
└── docs/
├── PB-01_README.md
├── PB-02_README.md
├── PB-03_README.md
├── PB-04_README.md
├── PB-05_README.md
├── PB-06_README.md
├── PB-07_README.md
├── PB-08_README.md
├── PB-09_README.md
└── PB-10_README.md
```
## 部署说明
### 前置条件
- Docker Engine v20.10+
- Docker Compose v2.20+
- 最低 16GB 内存(完整技术栈推荐 32GB)
- API 密钥:VirusTotal, AbuseIPDB, Hybrid Analysis, MalwareBazaar, Shodan, MaxMind, NVD, CrowdStrike, Microsoft Graph, Active Directory 服务账户, Tenable, Jira, TheHive, Slack webhooks, AWS IAM 服务账户, Azure 服务主体
### 启动技术栈
```
git clone https://github.com/yourusername/soar-ir-pipeline.git
cd soar-ir-pipeline
cp .env.example .env
# 用你的 API keys 填充 .env
docker-compose -f docker/docker-compose.yml up -d
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
```
### 导入所有剧本
```
for pb in shuffle/pb*.json; do
curl -X POST http://localhost:5001/api/v1/workflows/import \
-H "Authorization: Bearer $SHUFFLE_API_KEY" \
-F "file=@$pb"
echo "Imported: $pb"
done
```
### 部署 Wazuh 规则
```
cp wazuh/rules/*.xml /var/ossec/etc/rules/
# 将 wazuh/ossec.conf 中的 integration blocks 添加到 /var/ossec/etc/ossec.conf
docker exec wazuh-manager-production /var/ossec/bin/wazuh-control restart
```
## 检测规则汇总
跨越 10 个规则文件的 60 个自定义 Wazuh 检测规则。规则 ID 范围:100001–100095。
| 文件 | 规则 | 覆盖范围 |
|---|---|---|
| pb01_phishing_rules.xml | 100001–100005 | 邮件网关, 附件类型, 紧急关键词, 恶意 IP |
| pb02_bruteforce_rules.xml | 100010–100015 | 失败认证模式, 密码喷洒, 凭据填充, 地理异常 |
| pb03_ransomware_rules.xml | 100020–100025 | 文件加密, 勒索信, VSS 删除, 已知二进制文件 |
| pb04_malware_rules.xml | 100030–100035 | 临时目录执行, 未签名二进制文件, 编码 PS, 宏 |
| pb05_impossible_travel_rules.xml | 100040–100045 | 多国认证, 非工作时间异地登录, Tor 登录, Azure AD 风险 |
| pb06_exfiltration_rules.xml | 100050–100055 | 大量传输, 未批准的云, 批量文件访问, DNS 隧道 |
| pb07_cve_rules.xml | 100060–100065 | CVSS 9+, KEV, SLA 违规, RCE 类, 缺失补丁 |
| pb08_c2_rules.xml | 100070–100075 | Beaconing 间隔, C2 端口, Cobalt Strike, LOLBin 出站 |
| pb09_insider_threat_rules.xml | 100080–100085 | 非工作时间管理操作, 横向扩散, AD 修改, 日志清除 |
| pb10_cloud_rules.xml | 100090–100095 | 公开 S3, 开放的 SGs, root 账户, Azure NSG, GuardDuty, IAM |
## 使用的威胁情报来源
| 来源 | 用于 | 提供的内容 |
|---|---|---|
| VirusTotal | PB-01/04/06/08/10 | 文件哈希声誉, IP/域名声誉, C2 标签 |
| AbuseIPDB | PB-01/02/05/06/08 | IP 滥用置信度评分, Tor 标记, 使用类型 |
| Hybrid Analysis | PB-03/04 | 沙箱引爆, MITRE TTPs, C2 网络指标 |
| MalwareBazaar | PB-04/08 | 社区恶意软件情报, 投递方式, 活动标签 |
| URLhaus | PB-08 | C2 URL 和恶意软件分发基础设施 |
| Shodan | PB-08 | 端口指纹识别, SSL 证书 CN, C2 基础设施标签 |
| MaxMind GeoIP | PB-02/05/06 | 国家/城市解析, ASN, 托管提供商标记 |
| NVD API | PB-07 | 完整 CVE 描述, CVSS v3.1 向量分解 |
| CISA KEV | PB-07 | 主动漏洞利用确认, 勒索软件使用标记 |
| Tenable | PB-07 | 资产关键性评级, 未修复漏洞计数 |
| AWS Config | PB-07/10 | 资源元数据, 合规状态, 标签 |
| AWS GuardDuty | PB-10 | 主动威胁发现, 严重性评分 |
| Azure Defender | PB-10 | Azure 错误配置和威胁检测 |
## 总结
本仓库展示了:
- **全杀伤链覆盖** — 跨越 10 个不同的威胁类别,覆盖从初始访问到影响的全过程
- **生产级架构** — Docker 编排,密钥管理,webhook 接收,并行异步富化
- **加权评分模型** — 每个剧本的自定义复合评分,而非简单的 CVSS 透传
- **零容忍设计** — bypass 评分系统并立即采取行动的特定指标(卷影副本删除、Cobalt Strike 签名、日志篡改、root 账户使用)
- **误报缓解** — 频繁旅行者 AD 标记,行为基线,变更工单关联,Jira 重复检查
- **法律与 HR 意识** — 内部威胁保密性,分层遏制,在联系当事人前通知经理
- **云原生思维** — 基于资源标签的严重性,通过 AWS/Azure API 自动修复,系统性错误配置范围扫描
- **统计分析** — Beacon 间隔变异系数,Haversine 移动速度计算
- **多工具编排** — 13+ 威胁情报来源,5+ 遏制平台,3 个案例管理系统
标签:FTP漏洞扫描, PB级数据处理, SOAR, Terraform 安全, 威胁情报, 安全编排, 安全运维, 开发者工具, 自动化响应, 自动化扫描, 请求拦截