shivampajiyar/ir-automation-toolkit
GitHub: shivampajiyar/ir-automation-toolkit
一款Python CLI工具,用于对SIEM告警进行自动分类、严重程度评分、MITRE ATT&CK映射和事件响应报告生成。
Stars: 0 | Forks: 0
# IR 自动化工具包
**Shivam Pajiyar** | [领英](https://linkedin.com/in/shivampajiyar) | [GitHub](https://github.com/shivampajiyar)
我构建这个工具是因为每次事件响应 engagement 的前 15 分钟都遵循相同的模式——弄清楚警报到底是什么,映射到 ATT&CK 技术,确定优先处理的事项,然后记录下来。这部分应该实现自动化。这个工具包就能做到。
你向工具输入来自 SIEM 的 JSON 警报。它会对严重程度进行评分(不仅仅是标签——它会查看实际指标),将其映射到 MITRE ATT&CK 战术和技术,选择正确的 playbook,并生成结构化的事件响应报告,支持 Markdown 和 JSON 两种格式。工具采用 Python 构建,可从 CLI 运行,无需外部服务。
这与我从 SANS SEC504 和 GCIH 认证中学到的内容一致——特别是围绕快速分类和结构化响应的敏捷事件响应方法论。
## 截图
**暴力破解警报 — 47 次失败登录,严重程度评分 91/100(关键),自动选择 9 步 playbook**

**钓鱼警报 — T1566 已映射,自动选择钓鱼响应 playbook**

**14/14 单元测试通过**

**生成的报告 — Markdown 在 VS Code 中渲染**

## 快速开始
```
git clone https://github.com/shivampajiyar/ir-automation-toolkit.git
cd ir-automation-toolkit
pip install -r requirements.txt
# 使用示例告警运行
python3 -m ir_toolkit.cli --alert examples/sample_alert.json
# 运行并保存报告
python3 -m ir_toolkit.cli --alert examples/sample_alert.json --save
# 使用特定 playbook 运行
python3 -m ir_toolkit.cli --alert examples/phishing_alert.json --playbook playbooks/phishing.yaml
```
## 工作原理
四个模块,每个模块各司其职:
**Ingestor(摄取器)** — 接收原始 JSON 警报并进行规范化。验证必填字段,修复时间戳,填充默认值。下游所有环节都能获得干净的数据。
**Triage(分类器)** — 这是核心逻辑。它执行两项操作:将警报的规则名称映射到 MITRE ATT&CK 战术和技术,并计算 0-100 的综合严重程度评分。评分不仅仅是严重程度标签——它还会考虑实际指标,如失败登录数量、时间跨度、账户是否具有管理员权限,以及源 IP 是否为外部 IP。这就是为什么暴力破解示例评分为 91/100,即使原始警报标记为"高"。
**Playbook Engine(剧本引擎)** — 一旦分类器识别出战术,它会自动选择匹配的 YAML 剧本。凭证访问会获得暴力破解剧本。初始访问会获得钓鱼剧本。执行会获得恶意软件剧本。每个剧本都是按优先级排列的分步响应——IMMEDIATE(立即)、HIGH(高)、MEDIUM(中)、CONDITIONAL(条件性)。
**Reporter(报告器)** — 生成 Markdown 和 JSON 格式的最终报告。包括警报摘要、ATT&CK 映射、分类结果和完整的剧本步骤。保存到 `reports/` 目录,文件名包含警报 ID 和日期。
## 警报格式
```
{
"alert_id": "ALT-2026-001",
"timestamp": "2026-05-04T10:23:00Z",
"source": "elastic-siem",
"rule_name": "Multiple Failed Logons",
"severity": "high",
"host": "WORKSTATION-42",
"user": "jsmith",
"indicators": {
"failed_logons": 47,
"source_ip": "192.168.1.105",
"timespan_minutes": 3,
"admin_account": true
}
}
```
## 项目结构
```
ir-automation-toolkit/
├── ir_toolkit/
│ ├── cli.py ← command-line interface
│ ├── ingestor.py ← alert parsing and normalization
│ ├── triage.py ← severity scoring and ATT&CK mapping
│ ├── playbook.py ← playbook selection and loading
│ └── reporter.py ← Markdown + JSON report generation
├── playbooks/
│ ├── brute_force.yaml
│ ├── phishing.yaml
│ └── malware.yaml
├── examples/
│ ├── sample_alert.json
│ └── phishing_alert.json
├── screenshots/
├── tests/
│ └── test_triage.py ← 14 unit tests
└── reports/ ← generated reports land here
```
## MITRE ATT&CK 覆盖范围
| 战术 | 技术 |
|--------|-----------|
| 初始访问 | T1566 钓鱼攻击, T1190 利用面向公众的应用程序 |
| 执行 | T1059 命令脚本解释器, T1203 利用客户端执行 |
| 持久化 | T1547 启动或登录自启动, T1053 计划任务/作业 |
| 凭证访问 | T1110 暴力破解, T1555 密码存储中的凭证 |
| 发现 | T1082 系统信息发现, T1083 文件和目录发现 |
| 横向移动 | T1021 远程服务 |
| 数据泄露 | T1041 通过 C2 通道泄露数据, T1048 通过替代协议泄露数据 |
## 运行测试
```
python3 -m pytest tests/ -v
```
14 个测试涵盖 ATT&CK 映射、严重程度评分、私有 IP 检测和完整的分类流程。
## 依赖项
```
pyyaml>=6.0
python-dateutil>=2.8
```
## 后续添加功能
- Slack/webhook 集成,实现实时警报通知
- 通过 VirusTotal 或 AlienVault OTX API 进行 IOC 丰富化
- 直接支持 Splunk 和 Microsoft Sentinel 警报格式
- 用于查看生成报告的 Web 仪表板
## 对齐说明
构建该工具旨在反映真实的事件响应方法论——不仅仅是理论层面。直接关联 SANS SEC504(黑客工具、技术和事件处理)、GIAC GCIH 认证,以及我于 2026 年 3 月参加的敏捷事件响应网络研讨会。
*GIAC 认证事件处理员 (GCIH) | GIAC 安全基础知识 (GSEC, 97%) | GIAC 顾问委员会成员*
标签:Cloudflare, DAST, GCIH, Homebrew安装, Incident Management, IR, JSON, Markdown, MITRE ATT&CK, Playbook, Python, SANS, Triage, 事件管理, 取证, 告警分类, 威胁情报, 安全事件响应, 安全运营, 库, 应急响应, 开发者工具, 恶意软件分析, 扫描框架, 文档结构分析, 无后门, 漏洞响应, 网络调试, 自动化, 逆向工具