SharadKesariMN/siem-dashboard

GitHub: SharadKesariMN/siem-dashboard

一个 AI 驱动的全栈 SIEM 仪表板,能够采集多源日志并实时检测攻击,结合 MITRE ATT&CK 映射与 Claude 大模型生成事件分析报告。

Stars: 0 | Forks: 0

# AI 驱动的 SIEM 仪表板 一个全栈的安全信息和事件管理 (SIEM) 平台,能够从多个来源摄取日志,将其标准化为统一的 schema,运行实时的关联规则来检测攻击,将检测结果映射到 MITRE ATT&CK 技术,并使用 Claude API 生成 AI 驱动的事件摘要。 本项目作为作品集构建,旨在展示与德国网络安全就业市场相关的 SOC 分析师和安全工程技能——SIEM 操作、威胁检测、MITRE ATT&CK、AI/自动化以及云原生部署。 ![状态](https://img.shields.io/badge/status-active-brightgreen) ![Python](https://img.shields.io/badge/backend-Python%20%2F%20FastAPI-blue) ![React](https://img.shields.io/badge/frontend-React-61DAFB) ![Docker](https://img.shields.io/badge/deployment-Docker-2496ED) ## 概述 中小型企业通常无力承担商业 SIEM 许可证(Splunk Enterprise、Microsoft Sentinel)。本项目提供了一个轻量级、可自托管的替代方案,涵盖了端到端的核心 SIEM 工作流: **摄取 → 标准化 → 关联 → 检测 → 解释 (AI) → 可视化** 它可以完全独立运行,或者通过 HTTP Event Collector (HEC) 将日志转发到现有的 Splunk 部署中,以实现混合部署架构。 ## 架构 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/cas/29/29c0d4da6bdef4236e8e6773d55e2283b16399426cb2caac9ec137e212365d46.svg) ## 功能 - **多源摄取** — syslog (UDP) 接收器和 REST API endpoint - **日志标准化** — 基于正则表达式的解析器从原始日志中提取结构化字段(用户、IP、事件类型) - **实时关联引擎** — 检测: - SSH 暴力破解 / 凭据填充 (MITRE T1110) - 端口扫描 / 网络侦察 (MITRE T1046) - 通过有效账号进行权限提升 (MITRE T1078) - **MITRE ATT&CK 富化** — 每个告警都标记了技术、战术和官方参考信息 - **AI 生成的事件摘要** — Claude API 为每个告警提供通俗易懂的英文解释和响应建议 - **Splunk HEC 转发** — 可选,同时转发到现有的 Splunk 实例 - **实时仪表板** — 按严重程度分类的告警源、图表(严重程度分布、主要源 IP、告警时间线)、可搜索的日志探索器,以及详细的逐告警调查页面 ## 技术栈 | 层级 | 技术 | |---|---| | 后端 | Python, FastAPI, SQLAlchemy | | 数据库 | PostgreSQL | | 实时流处理 | Redis | | 前端 | React, Vite, Recharts | | AI | Claude API (claude-sonnet-4-6) | | 日志转发 | Splunk HTTP Event Collector (HEC) | | 部署 | Docker Compose (本地) → Vercel (前端) + Railway/Render (后端) | ## 截图 ### 告警仪表板 包含严重程度分布、主要源 IP 和告警数量图表的实时告警流。 ![告警概览](https://static.pigsec.cn/wp-content/uploads/repos/cas/0f/0ff03218472eb958e3ae0d8aff71536494a07c3d2be89f41b961caecffe07930.png) ### 告警详情 完整的 MITRE ATT&CK 上下文、AI 生成的分析报告,以及每个告警背后的原始日志事件。 ![告警详情](https://static.pigsec.cn/wp-content/uploads/repos/cas/ef/ef4a153bb805bf87ecad95aec31a2ce964a399bfbd0022c713f8cd07615a0f24.png) ### 日志探索器 针对每个已摄取日志事件的可搜索、可过滤视图。 ![日志探索器](https://static.pigsec.cn/wp-content/uploads/repos/cas/69/6927408a9cb31fc09ccc0759fbd0d6ce60a43798990c10e7972ea2e90addc4b9.png) ## 快速开始 ### 前置条件 - Docker Desktop - 用于 AI 摘要功能的 [Anthropic API 密钥](https://console.anthropic.com) ### 设置 1. 克隆代码库: \`\`\`bash git clone https://github.com/SharadKesariMN/siem-dashboard.git cd siem-dashboard \`\`\` 2. 复制环境变量模板并添加您的 Anthropic API 密钥: \`\`\`bash cp .env.example .env Edit .env and set ANTHROPIC_API_KEY=sk-ant-... \`\`\` 3. 启动整个技术栈: \`\`\`bash docker compose up --build \`\`\` 4. 使用在 `.env` 中设置的凭据登录仪表板(`DASHBOARD_USERNAME` / `DASHBOARD_PASSWORD`,默认为 `admin` / `changeme` — 在任何实际部署之前请务必更改这些设置)。 5. 打开仪表板: - 前端:[http://localhost:5173](http://localhost:5173) - 后端 API:[http://localhost:8000](http://localhost:8000) - API 健康检查:[http://localhost:8000/health](http://localhost:8000/health) ## 测试检测引擎 要查看整个 pipeline 的实际运行情况——摄取、标准化、关联、MITRE 标记和 AI 摘要——请运行附带的攻击模拟脚本。它会从单个模拟的攻击者 IP 重放真实的 3 阶段入侵链(侦察 → 暴力破解 → 权限提升): \`\`\`bash ./scripts/simulate-attack.sh \`\`\` 在大约 20 秒内,三个关联告警将出现在 `localhost:5173` 的仪表板上: | 阶段 | 技术 | 严重程度 | |---|---|---| | 端口扫描(探测 11 个端口) | T1046 - Network Service Discovery | 中危 | | SSH 暴力破解(7 次失败登录) | T1110 - Brute Force | 高危 | | 权限提升 | T1078 - Valid Accounts | 严重 | 每个告警都包含 Claude 生成的通俗英文摘要以及具体的建议响应措施。 要重置演示数据(在重新运行前清除所有告警和日志): ``` DASHBOARD_USERNAME= DASHBOARD_PASSWORD= ./scripts/reset-demo.sh ``` 这两个脚本都接受一个可选的 `SIEM_API_URL`,以便将目标指向已部署的实例而不是 localhost: ``` SIEM_API_URL=https://your-backend.onrender.com DASHBOARD_USERNAME=... DASHBOARD_PASSWORD=... ./scripts/reset-demo.sh SIEM_API_URL=https://your-backend.onrender.com ./scripts/simulate-attack.sh ``` ## 项目结构 \`\`\` siem-dashboard/ ├── backend/ │ ├── app/ │ │ ├── ingestion/ # syslog + API 日志摄取 │ │ ├── normalization/ # 原始日志 -> 结构化字段提取 │ │ ├── correlation/ # 检测规则 + MITRE 参考数据 │ │ ├── ai/ # Claude API 集成 │ │ ├── splunk/ # 可选的 Splunk HEC 转发器 │ │ ├── models/ # SQLAlchemy 模型 (log_events, alerts) │ │ └── routes/ # FastAPI 端点 │ └── Dockerfile ├── frontend/ │ ├── src/ │ │ ├── components/ # AlertCard, 图表, 布局外壳 │ │ ├── pages/ # 告警, 告警详情, 日志探索器 │ │ └── App.jsx │ └── Dockerfile ├── scripts/ │ └── simulate-attack.sh # 一键攻击链演示 ├── docker-compose.yml └── .env.example \`\`\` ## 路线图 - [x] 日志摄取(syslog + REST API) - [x] 标准化引擎 - [x] 关联规则(暴力破解、端口扫描、权限提升) - [x] MITRE ATT&CK 标记 - [x] AI 生成的事件摘要 - [x] Splunk HEC 转发 - [x] 带有图表和日志探索器的 React 仪表板 - [ ] 云端部署(Vercel + Railway/Render) - [ ] 具有基于角色的访问控制的多用户身份验证(JWT,用户管理) - [ ] 针对日志和告警的可配置数据保留策略 - [ ] 额外的检测规则(数据外发、不可能的旅行) ## 许可证 MIT ## 作者 Sharad Kesari — 网络安全硕士生,致力于在德国市场寻求 SOC 分析师 / 安全工程师职位。
标签:AMSI绕过, AV绕过, DLL 劫持, Docker, FastAPI, React, SIEM平台, Syscalls, 大语言模型, 威胁检测, 安全运营, 安全防御评估, 扫描框架, 插件系统, 搜索引擎查询, 测试用例, 版权保护, 逆向工具