rajeshdone/soc-ai-investigation-assistant

GitHub: rajeshdone/soc-ai-investigation-assistant

面向 SOC 分析师的 AI 辅助事件调查平台,集成了检测分诊、MITRE ATT&CK 映射、Sigma/SPL 规则生成和 LLM 驱动的根因分析,并可一键导出高管 PDF 报告。

Stars: 1 | Forks: 0

SOC-AI Investigation Assistant
**一款专为 SOC 分析师设计的 AI 辅助调查控制台 —— 接入检测数据,自动映射至 MITRE ATT&CK,生成 Sigma 和 Splunk SPL,并让 LLM 撰写根因分析与高管报告。**

## 概述 **SOC-AI 调查助手** 是一个为安全运营团队构建的全栈事件调查平台。分析师为某个事件导入原始检测数据后,平台将接管分诊中重复性的工作:它会评估严重程度、提取失陷标示,将行为映射至 MITRE ATT&CK 战术与技术,然后将案件移交给 AI 调查员,生成结构化的根因分析、攻击链路叙述以及抑制/修复方案 —— 所有内容均可导出为面向客户的 PDF 报告。 它被设计为**开箱即用的完全离线运行模式**。AI 模块自带确定性 mock 模式,能够还原与真实 LLM 输出完全一致的结构,因此无需任何 API 密钥即可演示整个应用 —— 而当你添加密钥的那一刻,它就会变成由 Claude 驱动的实时分析师。
## ✨ 功能 | 功能 | 描述 | |---|---| | 🧩 **检测接入** | 将原始检测数据 POST 到事件中,让引擎进行标准化、评分和存储。 | | 🎯 **严重程度评分** | 根据检测信号,自动为每个事件生成 0-100 的严重程度评分。 | | 🕸️ **MITRE ATT&CK 映射** | 将检测数据映射至 ATT&CK 战术和技术,并在动态矩阵视图中呈现。 | | 🔎 **IOC 提取** | 自动从事件数据中提取结构化标示(IP、哈希值、主机等)。 | | 🧠 **AI 调查** | 由 LLM 生成摘要、根因分析、攻击链叙述和 IOC 解释 —— 由 Claude API 驱动,并支持完全离线的 mock 模式。 | | 🛡️ **Sigma 规则库** | 根据检测类型自动生成 Sigma 检测规则,支持在应用内查看和复制。 | | 📊 **Splunk SPL 生成器** | 根据检测类型生成可直接运行的 SPL 检索查询。 | | 🗓️ **事件时间线** | 为事件重构按时间顺序排列的事件时间线。 | | 📄 **一键导出 PDF** | 将完整的调查过程转化为可供高管查阅的事件报告。 | | 🔄 **状态工作流** | 通过 `Open → Investigating → Contained → Closed` 跟踪事件状态。 |
## 📸 截图
**仪表盘 — 事件与 IOC 视图** Dashboard IOC view **FastAPI 后端 — 实时请求日志** FastAPI backend terminal
**导出的高管事件报告 (PDF)** Executive incident report

## 🏗️ 架构与技术栈 ``` ┌────────────────────┐ REST / JSON ┌──────────────────────────┐ │ React + Vite + │ ───────────────────────▶ │ FastAPI backend │ │ Tailwind CSS │ ◀─────────────────────── │ (SQLAlchemy + SQLite) │ │ frontend (5173) │ │ :8000 │ └────────────────────┘ └────────────┬─────────────┘ │ ┌─────────────┴─────────────┐ │ AI Investigation Layer │ │ Claude API (live mode) │ │ Deterministic mock mode │ └────────────────────────────┘ ``` **后端** — FastAPI, SQLAlchemy, Pydantic Settings, `httpx`, ReportLab (生成 PDF) **前端** — React, Vite, Tailwind CSS **AI** — Anthropic Claude API,带有离线确定性兜底方案,确保应用永远不会强依赖于密钥 **存储** — 默认使用 SQLite (在生产环境中可将 `DATABASE_URL` 替换为 Postgres/MySQL)
## 🚀 快速开始 ### 前置条件 - Python 3.11+ - Node.js 18+ ### 1 · 后端 ``` cd backend python -m venv .venv .venv\Scripts\activate # Windows pip install fastapi uvicorn sqlalchemy pydantic-settings httpx reportlab pillow python -m uvicorn app.main:app --reload ``` 运行在 **http://127.0.0.1:8000** (文档位于 `/docs`)。 ### 2 · 前端 ``` cd frontend npm install npm run dev ``` 运行在 **http://localhost:5173**。 ### 3 · 环境变量 创建 `backend/.env` 文件: ``` DATABASE_URL=sqlite:///./soc_ai.db SECRET_KEY=change-me-in-production ANTHROPIC_API_KEY= # optional — leave empty to run in offline mock mode ANTHROPIC_MODEL=claude-sonnet-4-6 CORS_ORIGINS=["http://localhost:5173"] ```
## 🔌 API 参考 | 方法 | Endpoint | 描述 | |---|---|---| | `POST` | `/ingest` | 接入原始检测数据并创建/更新事件 | | `POST` | `/analyze/{incident_id}` | 对事件运行 AI 调查 | | `GET` | `/dashboard` | 获取聚合的仪表盘统计数据 | | `GET` | `/incident` | 列出所有事件 | | `GET` | `/incident/{incident_id}` | 获取单个事件 | | `PATCH` | `/incident/{incident_id}/status` | 更新事件状态 | | `DELETE` | `/incident/{incident_id}` | 删除事件 | | `GET` | `/ioc/{incident_id}` | 获取为事件提取的 IOC | | `GET` | `/mitre` | 获取 MITRE ATT&CK 矩阵 | | `GET` | `/sigma` / `/sigma/{detection_type}` | 列出 / 生成 Sigma 规则 | | `GET` | `/splunk` / `/splunk/{detection_type}` | 列出 / 生成 SPL 查询 | | `GET` | `/timeline/{incident_id}` | 获取重构后的事件时间线 | | `POST` | `/report/{incident_id}` | 导出高管 PDF 报告 |
## 🗺️ 路线图 - [ ] 多分析师身份验证与基于角色的访问控制 - [ ] 基于 Postgres 的生产环境部署指南 - [ ] 通过 webhook/SIEM 连接器进行实时检测接入 - [ ] 可配置的 Sigma/SPL 规则包
## 📜 许可证 基于 [MIT 许可证](LICENSE) 授权。
作为作品集项目构建 — SOC-AI 调查助手
标签:AI辅助调查, AV绕过, Cloudflare, FastAPI, MITRE ATT&CK, React, Syscalls, 安全运营, 扫描框架, 运行时操纵, 逆向工具