DEDSHOT007/incident-response-splunk-soar_n8n

GitHub: DEDSHOT007/incident-response-splunk-soar_n8n

这是一个为 Splunk SOAR 设计的应急响应剧本库,附带 n8n 测试环境,用于自动化处理和验证安全事件响应流程。

Stars: 0 | Forks: 0

# Splunk SOAR — 应急响应剧本 + n8n 模拟测试环境 此仓库包含核心应急响应剧本(IRP)、所有共享的实用工具剧本(UTL),以及一个完整的基于 n8n 的模拟测试环境,涵盖所有三个 IRP 的 63 个场景。 ## 环境 | 属性 | 值 | |---|---| | **Splunk SOAR 版本** | 8.4.0.166 | | **UI 版本** | 2.7.40(远程模式) | | **Python 版本** | 3.13 | | **架构版本** | 5.0.24 | | **剧本类型** | 自动化 | ## 仓库结构 ``` / ├── IRP-01-Phishing/ │ ├── IRP-01-Phishing.py │ ├── IRP-01-Phishing.json │ └── README.md │ ├── IRP-02-Ransomware/ │ ├── IRP-02-Ransomware.py │ ├── IRP-02-Ransomware.json │ └── README.md │ ├── IRP-03-Lateral_Movement/ │ ├── IRP-03-Lateral_Movement.py │ ├── IRP-03-Lateral_Movement.json │ └── README.md │ ├── utilities/ │ ├── UTL-01-ArtifactExtractor.py │ ├── UTL-03-Incident_Note_Writer.py │ ├── UTL-04-Analyst_Prompt_Human_gate_.py │ ├── UTL-05__IOC_Deduplicator.py │ ├── UTL-06-Metrics_Collector.py │ ├── UTL-07-Threat-Scoring.py │ └── README.md │ ├── test-harness/ │ ├── SOAR_IRP_Test_Harness_63_Scenarios.json │ ├── IRP-01_Phishing_Scenarios.csv │ ├── IRP-02_Ransomware_Scenarios.json │ └── IRP-03_LateralMovement_Scenarios.xml │ └── README.md ← you are here ``` ## 剧本一览 ### 应急响应剧本(IRP) | 剧本 | 触发器 | 关键集成 | MITRE ATT&CK | 测试场景 | |---|---|---|---|---| | IRP-01 钓鱼 | `artifact_created` 标签:`phishing` | OTX, VirusTotal, Phantom | T1566.001, T1566.002, T1598.003, T1583.001 | 21 个 (SC-P01–SC-P21) | | IRP-02 勒索软件 | `artifact_created` | OTX, VirusTotal, AbuseIPDB, Phantom | T1486, T1490 | 21 个 (SC-R01–SC-R21) | | IRP-03 横向移动 | `artifact_created` | VirusTotal, AbuseIPDB, Phantom | T1021, T1550 | 21 个 (SC-L01–SC-L21) | ### 实用工具剧本(UTL) 所有 IRP 调用的共享构建模块。在任何 IRP 运行之前,必须将其导入 SOAR 的 `local/` 目录下。 | 实用工具 | 用途 | 调用者 | |---|---|---| | UTL-01 ArtifactExtractor | 提取并映射所有 CEF 字段到结构化的 `ioc_map` | IRP-01, IRP-02, IRP-03 | | UTL-03 Incident Note Writer | 向容器写入结构化的 NIST 阶段注释 | IRP-01, IRP-02, IRP-03 | | UTL-04 Analyst Prompt(人工关卡) | 暂停自动化,提示分析员选择 APPROVE / ESCALATE / REJECT | IRP-01, IRP-02, IRP-03 | | UTL-05 IOC Deduplicator | 跨容器 IOC 去重 — 在丰富信息前标记重复项 | IRP-01, IRP-02, IRP-03 | | UTL-06 Metrics Collector | 将 KPI 快照到 `metrics_log` 以进行策略比较 | IRP-01, IRP-02, IRP-03 | | UTL-07 Threat Scoring | 加权综合威胁评分(容器严重性 40% + 威胁情报 60%) | IRP-01 | ## 共享设计模式 所有三个 IRP 都遵循相同的结构约定: **1. 上下文初始化 (`set_prepare_context`)** 每个剧本启动时都会从容器中读取策略和严重性,并将其规范化为所有 UTL 读取的标准对象存储约定。 **2. 策略模式** 剧本行为根据容器标签进行调整: - `strategy_conservative` — 最小化自动操作,优先进行分析员审核 - `strategy_balanced` *(默认)* — 适度自动化,在关键操作上设置人工关卡 - `strategy_aggressive` — 最大化自动遏制 **3. 严重性级别** 支持 `low`、`medium`、`high`、`critical` — 接受字符串和整数输入,在 `set_prepare_context` 中自动规范化。 **4. 对象存储契约** 所有剧本通过 SOAR 的容器作用域对象存储进行通信(`phantom.save_object` / `phantom.get_object`)。键名在所有剧本中都是标准化的: | 键 | 设置者 | 读取者 | |---|---|---| | `ioc_map` | UTL-01 | UTL-03, UTL-05, UTL-06, UTL-07 | | `strategy` | IRP `set_prepare_context` | UTL-03, UTL-04, UTL-06 | | `severity_label` | IRP `set_prepare_context` | UTL-03, UTL-04, UTL-06, UTL-07 | | `severity_score` | IRP `set_prepare_context` | UTL-03, UTL-06 | | `pending_action` | IRP 遏制逻辑 | UTL-04 | | `current_phase` | IRP 阶段转换 | UTL-03 | | `phase_action_log` | IRP 阶段转换 | UTL-03 | | `analyst_decision` | UTL-04 | IRP 关卡后逻辑 | | `duplicate_iocs` / `unique_iocs` | UTL-05 | UTL-06 | | `metrics_log` | UTL-06 | n8n 测试环境 | | `utl07_output` | UTL-07 | IRP-01, UTL-06 | ## 使用的资产 | 资产 | 使用者 | |---|---| | `alien_lab` | IRP-01, IRP-02(OTX 信誉查询) | | `phantom_lab` | 所有 IRP 和 UTL(注释、标签、提示) | | `virustotal` | IRP-01, IRP-02, IRP-03, UTL-07 | | `abuseipdb` | IRP-02, IRP-03 | ## 典型执行链 ``` IRP on_start └─► set_prepare_context [IRP] — writes strategy/severity to object store └─► UTL-01-ArtifactExtractor — extracts CEF → ioc_map └─► UTL-07-ThreatScoring — weighted composite score (IRP-01 only) └─► UTL-05-IOC Deduplicator — cross-container dedup └─► UTL-03-Incident Note Writer — phase note └─► [IRP enrichment actions — OTX, VT, AbuseIPDB] └─► [IRP containment decision tree] └─► UTL-04-Analyst Prompt — human gate └─► UTL-06-Metrics Collector └─► on_finish ``` ## n8n 测试环境 一个用 **n8n** 构建的模拟测试环境,轮询 SOAR 并运行所有 63 个测试场景,以无需人工干预的方式端到端地验证剧本逻辑。完整详情请参见 [`test-harness/`](./test-harness/)。 - 覆盖 3 个 IRP 的 63 个场景(每个 IRP 21 个) - 涵盖所有策略 × 严重性组合、边界情况和安全测试 - 分析员关卡预填充:每个场景可配置 `APPROVE` / `DENY` - 支持演练模式(不实际向 SOAR 发送 POST 请求) - 场景过滤器:可全部运行,或按严重性、策略、标签或单个场景 ID 过滤 ## 如何将剧本导入 SOAR 1. 首先导入 UTL 剧本 — 所有 IRP 都依赖它们 2. 在 SOAR 中:**Playbooks → Import** → 上传 `.json`(IRP)或 `.py`(UTL)文件 3. 确认所有 UTL 在 `local/` 下可用后,再启用任何 IRP 4. 启用 IRP 并将其附加到相关的标签/事件类型 ## 安全注意事项 - **不要**将 `SOAR_TOKEN`、API 密钥或内部 IP 地址提交到此仓库 - `.json` 文件包含完整的可视化剧本图;`.py` 文件包含可执行逻辑 — 两者必须保持同步 - JSON 是 SOAR UI 的真实来源;Python 是实际执行的内容
标签:AMSI绕过, FTP漏洞扫描, Homebrew安装, Metasploit替代, n8n, Object Callbacks, Python, Splunk SOAR, 事件管理, 剧本, 勒索软件, 威胁检测, 安全测试, 安全编排, 攻击性安全, 无后门, 模拟测试, 横向移动, 测试框架, 编程规范, 网络安全, 网络钓鱼, 自动化响应, 逆向工具, 隐私保护