iDea82/ir-playbook-automation
GitHub: iDea82/ir-playbook-automation
这是一个基于Python的NIST CSF对齐事件响应自动化引擎,用于自动执行证据收集、IOC丰富化、威胁遏制及报告生成。
Stars: 0 | Forks: 0
# IR Playbook 自动化引擎
一个基于 Python 的事件响应自动化工具,用于执行符合 NIST CSF 框架并与 MITRE ATT&CK 技术相关联的结构化 IR Playbook。旨在自动化 SOC 分析师在处理活跃事件时执行的人工分流和响应工作流程。
## 功能
当事件被声明后,该引擎将:
- 自动收集证据 —— 账户状态、登录历史、
端点进程、网络连接
- 针对 VirusTotal 实时丰富 IOCs
- 跨身份、端点和网络层关联证据
- 发现关键指标时自动升级严重程度
- 按顺序执行遏制操作
- 生成完整的时间戳事件报告,包含
人类可读和 JSON 格式
## Playbooks
### Playbook 1 — 凭证泄露
**MITRE ATT&CK:** T1078 - Valid Accounts
**NIST CSF Phases:** Identify → Detect → Respond → Recover
自动化对疑似凭证泄露的响应。检查
账户状态,拉取登录历史,检测可疑
身份验证来源,查询端点遥测,丰富 IOCs,
执行遏制,并生成事件报告。
**自动升级触发条件:**
- 来自 Tor 出口节点的登录 → 升级为 P1
- 确认完整的攻击链 → 端点隔离
**遏制操作:**
- 在 Active Directory 中禁用账户
- 终止所有会话,吊销 SSO 令牌
- 在边界防火墙阻止可疑 IP
- 通过 EDR 隔离端点
- 触发 MFA 重新注册
### Playbook 2 — 恶意软件执行
**MITRE ATT&CK:** T1204.002 / T1059.001 / T1071
**NIST CSF Phases:** Identify → Detect → Respond → Recover
自动化对疑似恶意软件执行的响应。收集
进程遥测,检测恶意的父子进程链,
检查网络连接中的 C2 活动,自动从证据中扩展 IOC
范围,动态映射 MITRE ATT&CK 技术,
并执行遏制。
**自动升级触发条件:**
- 确认 C2 通信 → 升级为 P1
- 检测到横向移动 → 增加账户禁用操作
**遏制操作:**
- 通过 CrowdStrike Falcon 隔离端点
- 终止恶意进程
- 在边界防火墙阻止 C2 IP
- 捕获内存转储用于取证分析
- 若确认横向移动则禁用用户账户
## 架构
ir-playbook-automation/
│
├── playbooks/
│ ├── compromised_credential.py # 凭证泄露工作流
│ └── malware_execution.py # 恶意软件执行工作流
│
├── utils/
│ ├── logger.py # 标记 NIST 阶段的操作记录器
│ ├── evidence.py # 证据收集引擎
│ └── reporter.py # 报告生成 (TXT + JSON)
│
├── main.py # 面向分析师的接口
├── config.py # 分析师信息、阈值(不提交)
└── .gitignore # 排除凭证和报告
## 安装说明
1. 克隆仓库:
```
git clone https://github.com/iDea82/ir-playbook-automation.git
cd ir-playbook-automation
```
2. 创建虚拟环境:
```
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Mac/Linux
```
3. 安装依赖:
```
pip install requests colorama jinja2
```
4. 创建 `config.py`:
```
ANALYST_NAME = "Your Name"
ANALYST_TIER = "Tier 2"
SOC_TEAM = "Security Operations"
VIRUSTOTAL_API_KEY = "your_key_here"
SEVERITY_LEVELS = {
"P1": "Critical",
"P2": "High",
"P3": "Medium",
"P4": "Low"
}
NIST_PHASES = ["Identify","Protect","Detect","Respond","Recover"]
AUTO_ESCALATE_TO_P1 = ["ransomware","data exfiltration confirmed",
"domain admin compromise","active lateral movement"]
REPORT_OUTPUT_DIR = "reports"
```
5. 运行:
```
python main.py
```
## 示例输出
============================================================
COMPROMISED CREDENTIAL PLAYBOOK — INC-20260407-222043
[2026-04-07 22:20:43] [INFO] [Identify] 检查账户状态:atijani
[2026-04-07 22:20:43] [WARNING] [Identify] 高失败登录次数:24 小时内失败 23 次
[2026-04-07 22:20:43] [CRITICAL] [Detect] 来自 Tor 出口节点的可疑登录:185.220.101.45
[2026-04-07 22:20:43] [CRITICAL] [Identify] 严重程度升级为 P1 — 确认 Tor 登录
[2026-04-07 22:20:44] [CRITICAL] [Detect] 确认攻击链:凭证泄露 →
宏执行 → PowerShell payload
[2026-04-07 22:20:44] [SUCCESS] [Respond] 在 Active Directory 中禁用账户:atijani
[2026-04-07 22:20:44] [SUCCESS] [Respond] 通过 EDR 隔离端点:WKSTN-ATIJANI-01
Incident ID : INC-20260407-222043
Severity : P1 (从 P2 升级)
Findings : 4
Containment : 已执行 5 项操作
Duration : 0:00:01
## MITRE ATT&CK 覆盖范围
| Playbook | Technique | Description |
|----------|-----------|-------------|
| Compromised Credential | T1078 | Valid Accounts |
| Malware Execution | T1204.002 | Malicious File |
| Malware Execution | T1059.001 | PowerShell |
| Malware Execution | T1071 | Application Layer Protocol (C2) |
## 作者
Adesina Tijani — 安全运营分析师
Detection Engineering · Incident Response · SOC Automation
[linkedin.com/in/adesina-tijani-6372693b5](https://linkedin.com/in/adesina-tijani-6372693b5)
[github.com/iDea82](https://github.com/iDea82)
标签:Active Directory, Ask搜索, Cloudflare, EDR, IOC, IP 地址批量处理, MFA, MITRE ATT&CK, NIST CSF, OpenCanary, Plaso, Python, SOAR, SSO, Tor, VirusTotal, 凭证泄露, 剧本, 取证, 命令执行, 威胁情报, 安全运营, 开发者工具, 恶意软件, 扫描框架, 无后门, 横向移动, 编程规范, 网络调试, 网络连接, 脆弱性评估, 自动化, 进程分析, 逆向工具, 遏制措施, 防火墙, 隔离