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 安全, 威胁情报, 安全编排, 安全运维, 开发者工具, 自动化响应, 自动化扫描, 请求拦截