Mehul-bisht-0/SIEM

GitHub: Mehul-bisht-0/SIEM

一个基于多 Agent 编排与 LLM 的轻量级 SIEM 演示系统,覆盖从日志摄取到威胁检测、攻击链关联和自动响应的完整分析 pipeline。

Stars: 0 | Forks: 0

# 基于 AI-Agent 的 SIEM 分析系统 MVP 此工作区包含一个功能性的 SIEM 演示 pipeline: `日志摄取 -> 威胁检测 Agent -> 关联 Agent -> LLM 事件分析 -> 响应 Agent -> Dashboard` 它特意设计得很小且以演示为导向。MongoDB 存储日志、告警和模拟封禁的 IP;FastAPI 运行 agent pipeline;React 显示实时 Dashboard;而 `log_simulator.py` 会注入一个端到端的暴力破解模式。 ## 技术栈 - 后端:FastAPI, Motor, MongoDB, Scikit-learn, OpenAI 兼容的 LLM 调用 - ML:保存为 `models/isolation_forest.pkl` 的 Isolation Forest - 前端:React, Vite, Recharts, Lucide 图标 - 演示运行时:Docker Compose ## 使用 Docker 运行 ``` docker compose up --build ``` 打开: - Dashboard: http://localhost:5173 - API 文档: http://localhost:8000/docs - 健康检查: http://localhost:8000/health 在另一个终端中,注入一个暴力破解攻击链: ``` docker compose run --rm simulator python log_simulator.py --api-url http://backend:8000/ingest --once --min-delay 0.5 ``` 或者运行持续的模拟流量: ``` docker compose --profile demo up simulator ``` ## 本地开发 后端: ``` cd backend python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt python -m app.ml.train_model uvicorn app.main:app --reload ``` 前端: ``` cd frontend npm install npm run dev ``` 模拟器: ``` cd simulator pip install -r requirements.txt python log_simulator.py --once ``` ## API ### `POST /ingest` 接受原始 JSON 日志: ``` { "log_id": "log-demo-001", "timestamp": "2026-05-27T10:00:00Z", "source_ip": "203.0.113.44", "destination_ip": "10.0.2.10", "event_type": "failed_login", "severity": "high" } ``` 该 endpoint 会存储日志,运行异常检测,关联攻击链,生成 3 句话的摘要,并对高置信度告警执行模拟封禁。 告警还会存储 LLM 事件情报: ``` { "summary": "Three-sentence analyst summary", "risk_level": "critical", "likely_attack": "Credential compromise followed by privilege escalation", "mitre_tactic": "Credential Access / Privilege Escalation", "recommended_actions": [ "Keep the source IP blocked and review whether it used rotating addresses.", "Force a password reset for the affected account and revoke active sessions." ], "analyst_notes": "Confirm whether the successful login accessed sensitive systems." } ``` ### Dashboard Endpoints - `GET /logs` - `GET /alerts` - `GET /stats/attack-types` - `GET /blocked-ips` ## 模型训练 后端会加载 `models/isolation_forest.pkl`。如果文件缺失,启动时会从合成的类 SIEM 记录中训练一个备用的 Isolation Forest 模型,以确保演示始终能正常运行。 要从预处理过的 NSL-KDD CSV 文件进行训练,请提供 `NSL_KDD_CSV`: ``` cd backend $env:NSL_KDD_CSV="C:\path\to\nsl-kdd-preprocessed.csv" python -m app.ml.train_model ``` ## Agent 行为 - 威胁检测 Agent:对每条日志进行向量化,并使用 Isolation Forest 加上少量高风险事件启发式算法对其进行评分。 - 关联 Agent:将重复的登录失败、成功登录和权限提升归组为关联告警。 - LLM 事件分析 Agent:调用 OpenAI 兼容的聊天 endpoint,以生成摘要、可能的攻击、MITRE 风格战术、风险等级、分析师注意事项以及建议的应对措施。 - 响应 Agent:将源 IP 写入 `blocked_ips` 并打印模拟封禁操作。 - NLP 降级方案:如果未配置 API key 或 LLM 调用失败,后端仍会为演示返回确定性的事件情报。 ## LLM 配置 在启动 Docker 之前,将 `.env.example` 复制到 `.env` 或设置环境变量: ``` OPENAI_API_KEY=your_api_key OPENAI_BASE_URL=https://api.openai.com/v1 OPENAI_MODEL=gpt-4o-mini LLM_TIMEOUT_SECONDS=20 ``` 对于兼容 OpenAI 的提供商,请将 `OPENAI_BASE_URL` 和 `OPENAI_MODEL` 设置为该提供商的相应值。应用会向 `{OPENAI_BASE_URL}/chat/completions` 发送请求,并期望模型返回 JSON。
标签:AI智能体, AV绕过, FastAPI, React, SIEM系统, Syscalls, 安全运营, 异常检测, 扫描框架, 版权保护, 自动化响应, 逆向工具