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** ![暴力破解分类](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/fe13f28440205452.png) **钓鱼警报 — T1566 已映射,自动选择钓鱼响应 playbook** ![钓鱼分类](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ae32ec0e04205454.png) **14/14 单元测试通过** ![测试通过](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/33969fba81205455.png) **生成的报告 — Markdown 在 VS Code 中渲染** ![报告预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/021eb324bf205456.png) ## 快速开始 ``` 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, 事件管理, 取证, 告警分类, 威胁情报, 安全事件响应, 安全运营, 库, 应急响应, 开发者工具, 恶意软件分析, 扫描框架, 文档结构分析, 无后门, 漏洞响应, 网络调试, 自动化, 逆向工具