mohitnanda786/ir-automation-tool

GitHub: mohitnanda786/ir-automation-tool

基于 Python 的端到端 SOC 事件响应流水线,集成多源日志采集、规则与 ML 双引擎检测、威胁情报富化、MITRE ATT&CK 映射和 SOAR 自动化剧本,覆盖从日志接入到报告输出的完整安全运营链路。

Stars: 0 | Forks: 0

# IR 自动化工具 — SOC 版 **基于 Python 3.11 的端到端、符合招聘要求的 Incident Response 流水线。** 多源日志获取 → 10 条规则检测引擎 + ML 异常检测 → 威胁情报富化 → MITRE ATT&CK 映射 → YAML 驱动的 SOAR 剧本 → 基于 ELK 的仪表盘 → HTML/PDF 报告。

CI Python Coverage Tests License

由 **Mohit Nanda** 构建 · [github.com/mohitnanda786](https://github.com/mohitnanda786) ![IR 自动化 Kibana 仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3d0a047de4050829.png) ## 它能做什么 - 将 **4 种日志源**(Windows EVTX、Linux syslog、防火墙 CSV、Web 访问日志)获取到统一的标准化模式中,并使用经过内容哈希处理的 `event_id` 来保证幂等性。 - 通过配置驱动的规则引擎以及 ML 轨迹(Isolation Forest + DBSCAN + 信标检测器)**检测 10 种威胁模式**,该轨迹能够标记出任何规则都无法预见的行为异常。 - 使用 AbuseIPDB / VirusTotal / Shodan / MISP 信誉**富化告警**, 并计算带有磁盘缓存的综合 **0–100 风险评分**。 - 通过 YAML 定义的剧本**自动化遏制**,可拦截 IP、 发送至 Slack、创建工单以及快照取证——通过基于数据库的运行存储,在重复运行中保持幂等性。 - **可视化一切** — 实时 Kibana 仪表盘(5 个面板)、MITRE ATT&CK Navigator 热力图,以及自包含的 HTML 事件报告。 ## 屏幕截图 | 实时 Kibana 仪表盘 | ATT&CK Navigator 热力图 | HTML 事件报告 | |---|---|---| | ![Kibana](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3d0a047de4050829.png) | ![ATT&CK](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/12b4d5b425050830.svg) | [打开示例](docs/sample_report.html) | ## 系统架构 ``` flowchart LR subgraph LS["Log sources"] A1["Windows EVTX"] A2["Linux auth.log"] A3["Firewall CSV"] A4["Web access log"] end ING["Ingestion
(Phase 1)"] DB[("SQLite
events.db")] DET["Rules + ML
(Phase 2 + 4)"] ENR["Threat intel
(Phase 3)"] MAP["ATT&CK
mapping
(Phase 5)"] SOAR["YAML playbooks
(Phase 6)"] OUT1["Slack / tickets /
blocklist / evidence"] OUT2["ELK + Kibana
(Phase 7)"] OUT3["HTML report +
--status CLI
(Phase 8 + 9)"] A1 & A2 & A3 & A4 --> ING --> DB DB --> DET --> DB DB --> ENR --> DB DB --> MAP --> DB DB --> SOAR --> OUT1 DB --> OUT2 DB --> OUT3 ``` 完整的图表和设计原则请参见 [docs/architecture.md](docs/architecture.md)。 ## 快速开始 ``` # 克隆并进入项目 git clone https://github.com/mohitnanda786/ir-automation-tool.git cd ir-automation-tool # 创建并激活 virtualenv python -m venv venv .\venv\Scripts\Activate.ps1 # 安装依赖 pip install -r requirements.txt # (可选)填写 API keys 以获取实时 threat intel Copy-Item .env.example .env # 添加 ABUSEIPDB_KEY / VIRUSTOTAL_KEY / SHODAN_KEY / SLACK_WEBHOOK_URL # 生成 5 天的合成 demo logs python scripts/generate_demo_data.py --hours 120 # 端到端运行整个 pipeline python main.py --pipeline sample_logs/ # 检查 dashboard python main.py --status ``` 各个阶段也可以独立运行: ``` python main.py --ingest sample_logs/ # Phase 1 — parse + normalise python main.py --detect # Phase 2 — 10 rule-based detections python main.py --enrich # Phase 3 — threat-intel enrichment python main.py --train-ml # Phase 4 — train Isolation Forest python main.py --detect-ml # Phase 4 — score anomalies python main.py --map-attack # Phase 5 — tag alerts with ATT&CK IDs python main.py --export-layer # Phase 5 — Navigator heatmap JSON python main.py --run-playbooks # Phase 6 — automated SOAR actions python main.py --ship-to-elk # Phase 7 — push to Elasticsearch python main.py --report # Phase 8 — generate HTML report python main.py --status # Phase 9 — compact terminal dashboard ``` ## MITRE ATT&CK 覆盖范围 每次检测都会映射到官方的 ATT&CK 技术。下表 是根据 [`attack_mapping/mapper.py`](attack_mapping/mapper.py) 生成的,并通过 `docs/attack_layer.json` 在 [MITRE ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) 中 渲染为热力图。 | 规则 ID | 检测项 | 技术 | 描述 | |---|---|---|---| | `R1` | SSH 暴力破解 | [T1110](https://attack.mitre.org/techniques/T1110/) | Brute Force | | `R2` | Windows 暴力破解 (4625) | [T1110](https://attack.mitre.org/techniques/T1110/) | Brute Force | | `R3` | Sudo 滥用 (非管理员) | [T1548.003](https://attack.mitre.org/techniques/T1548/003/) | Abuse Elevation Control Mechanism: Sudo | | `R4` | 凭证填充 | [T1110.004](https://attack.mitre.org/techniques/T1110/004/) | Credential Stuffing | | `R5` | 非工作时间管理员登录 | [T1078](https://attack.mitre.org/techniques/T1078/) | Valid Accounts | | `R6` | 管理员端点,新 IP | [T1133](https://attack.mitre.org/techniques/T1133/) | External Remote Services | | `R7` | 端口扫描 (防火墙) | [T1046](https://attack.mitre.org/techniques/T1046/) | Network Service Discovery | | `R8` | SQLi 尝试 | [T1190](https://attack.mitre.org/techniques/T1190/) | Exploit Public-Facing Application | | `R9` | `whoami.exe` 之后的权限提升 | [T1068](https://attack.mitre.org/techniques/T1068/) | Exploitation for Privilege Escalation | | `R10` | 不可能旅行 (同一用户,两个 IP) | [T1078](https://attack.mitre.org/techniques/T1078/) | Valid Accounts | | `ML-IF-001` | Isolation Forest 异常 | [T1078](https://attack.mitre.org/techniques/T1078/) | Valid Accounts | | `ML-BEACON-001` | 周期性信标 | [T1071.001](https://attack.mitre.org/techniques/T1071/001/) | Application Layer Protocol: Web Protocols | ## 模块概览 | 模块 | 阶段 | 功能说明 | |---|---|---| | [`ingestion/`](ingestion) | 1 | 4 个日志解析器,通过 SQLAlchemy 将数据注入 `NormalizedEvent` 模式并存入 SQLite | | [`detection/`](detection) | 2 · 4 | 10 个规则类 + Isolation Forest/DBSCAN/信标检测器 | | [`enrichment/`](enrichment) | 3 | 4 个威胁情报提供商 + 缓存 + 综合 0–100 风险评分 | | [`attack_mapping/`](attack_mapping) | 5 | STIX 解析的 ATT&CK 捆绑包 + 规则到技术的映射器 + Navigator 层导出器 | | [`playbooks/`](playbooks) | 6 | YAML 定义的剧本 + 4 个软失败操作 + 幂等运行存储 | | [`elk/`](elk) | 7 | 用于 ES+Kibana 的 `docker-compose` + 批量索引推送器 + 编程式仪表盘构建器 ([设置指南](elk/README.md)) | | [`reporting/`](reporting) | 8 | 使用 Jinja2 模板的 HTML 报告,内嵌 ATT&CK 热力图;WeasyPrint PDF 备选方案 | | [`scripts/`](scripts) | 全部 | 演示数据生成器、缓存填充器、验证辅助工具 | | [`tests/`](tests) | 全部 | 102 个 pytest 用例,72.5% 行覆盖率 | ## 阶段 - [x] **阶段 0** — 脚手架(配置、日志、横幅、文件夹) - [x] **阶段 1** — 日志获取 + SQLite 事件存储(4 个解析器) - [x] **阶段 2** — 基于规则的检测引擎(10 条规则) - [x] **阶段 3** — 威胁情报富化(AbuseIPDB · VirusTotal · Shodan · MISP) - [x] **阶段 4** — ML 异常检测(Isolation Forest + DBSCAN + 信标检测) — [设计说明](docs/ml_design.md) - [x] **阶段 5** — MITRE ATT&CK 映射 + Navigator 层导出 — [热力图](docs/attack_heatmap.svg) - [x] **阶段 6** — YAML 驱动的自动化剧本引擎(SOAR) - [x] **阶段 7** — ELK 栈 + Kibana 仪表盘 — [设置指南](elk/README.md) - [x] **阶段 8** — HTML + PDF 报告生成器 — [示例报告](docs/sample_report.html) - [x] **阶段 9** — 测试、CI、文档、GitHub 优化 ## 技术 **Python 3.11+** · SQLAlchemy · scikit-learn (IsolationForest, DBSCAN) · pandas · numpy · joblib · loguru · rich · Jinja2 · WeasyPrint · PyYAML · python-dotenv · requests · Docker Compose · Elasticsearch / Kibana 8.15 · MITRE ATT&CK (STIX) · Slack webhooks · pytest · pytest-cov · responses · GitHub Actions ## 路线图 - 检测规则以 Sigma 规则形式表达(以便与 Splunk、Wazuh、Elastic Security 等 SIEM 进行 1:1 映射)。 - CLI 的 Prometheus 指标端点(以便 Grafana 跟踪获取速率/告警数量/剧本 SLA)。 - 针对 CrowdStrike Falcon X 的威胁情报提供商。 - 剧本动作:通过 EDR API 自动隔离主机。 ## 许可证 MIT — 详见 [`LICENSE`](LICENSE)。
标签:AbuseIPDB, Apex, Ask搜索, Beaconing检测, C2检测, CISA项目, Cloudflare, DBSCAN, EDR, ELK, IP 地址批量处理, IR自动化, Linux Syslog, MITRE ATT&CK, ML异常检测, PE 加载器, Python, SOAR, VirusTotal, Web访问日志, Windows EVTX, YAML, 云计算, 仪表盘, 多源日志收集, 威胁情报, 子域名变形, 孤立森林, 安全可视化, 安全库, 安全报告, 安全运营中心, 开发者工具, 恶意代码分类, 插件系统, 无后门, 无线安全, 日志接入, 机器学习, 版权保护, 网络安全, 网络映射, 脆弱性评估, 自动化剧本, 规则引擎, 越狱测试, 逆向工具, 防火墙日志, 隐私保护, 风险评分