pannagkumaar/mini-siem

GitHub: pannagkumaar/mini-siem

一个基于 Go、Python、OpenSearch 和 React 构建的本地化企业级 SIEM 平台,将原始日志转化为检测告警、关联事件和 AI 根因分析,用于安全事件的自动化调查与报告。

Stars: 0 | Forks: 0

# Mini-SIEM:AI SOC 调查实验室 **Mini-SIEM 是一个 AI 辅助的 SOC 调查实验室,可将原始日志转化为检测告警、关联事件、根因分析、MITRE ATT&CK 映射以及修复报告。** 使用 Go、Python、OpenSearch、Docker 和 React 构建。所有内容均在本地针对合成数据运行 - 核心流程无需付费 API key。 ![Mini-SIEM 演示](https://static.pigsec.cn/wp-content/uploads/repos/cas/f9/f9add35e8fee78f6802558bf4b05034b6d1709b89b1ef962c57c8a3f59655782.gif) ``` Raw logs -> normalized events -> detection alerts -> correlated incidents -> AI root cause analysis -> MITRE ATT&CK mapping -> remediation checklist -> exported incident report ``` ## 为什么会有这个项目 大多数“SIEM 演示”仓库仅停留在接入和仪表板展示阶段。Mini-SIEM 则更进一步:它内置了**合成攻击重放引擎**、**分类检测规则包**、**将告警串联成事件的关联引擎**,以及**能够撰写根因分析的 AI SOC 代理** - 在未配置 LLM key 时,提供确定性的零成本备用方案。只需运行一条命令,即可观察完整的入侵过程如何被检测、关联、解释并导出。 ## 快速开始 ``` git clone cd mini-siem cp .env.example .env # optional: add GROQ_API_KEY for LLM-mode RCA docker-compose up --build -d python scripts/init-db.py ``` - **Dashboard:** http://localhost:3000 - **API 健康检查:** http://localhost:8000/health - **API 文档:** http://localhost:8000/docs - **OpenSearch Dashboards:** http://localhost:5601 ## 一键演示 ``` ./demo.sh # Linux/macOS/WSL/Git Bash demo.bat # Windows ``` 启动所有服务,初始化 OpenSearch,重放完整的合成攻击链,等待检测和关联完成,并将示例事件报告和 AI 根因分析(RCA)导出到 `outputs/`。有关 90 秒详细操作指南,请参阅 [DEMO.md](DEMO.md)。 ## 攻击重放模式 `scripts/replay_attack.py` 会生成逼真的、完全合成的日志序列,并将它们输入到接入管道中,以便您可以按需触发检测和事件。 ``` python scripts/replay_attack.py --list python scripts/replay_attack.py --scenario ssh_bruteforce python scripts/replay_attack.py --scenario full_attack_chain ``` | 场景 | 触发的内容 | |---|---| | `ssh_bruteforce` | `RULE-AUTH-001`, `CORR-002` | | `successful_login_after_bruteforce` | `RULE-AUTH-002`(账号失陷) | | `web_sql_injection` | `RULE-WEB-001`, `RULE-WEB-003`, `CORR-004` | | `path_traversal_attempt` | `RULE-WEB-002`, `RULE-WEB-003`, `CORR-004` | | `suspicious_powershell` | `RULE-EP-001`, `RULE-EP-002`, `DET-001` | | `admin_login_anomaly` | `RULE-AUTH-003` | | `privilege_escalation` | `CORR-003` | | `data_exfiltration_pattern` | `CORR-005` | | `full_attack_chain` | 完整的端到端攻击杀伤链 - `CORR-001/002/003/005/006` | 详情见 [docs/ATTACK_REPLAY.md](docs/ATTACK_REPLAY.md)。**安全说明:** 每个场景仅生成发送到您自己本地 API 的合成日志条目 - 不涉及真实的漏洞利用、网络扫描或恶意软件。 ## 检测规则包 `rules/` 按领域组织,每个规则都有完整的文档说明(MITRE 技术、误报情况、修复建议、示例日志): ``` rules/ auth/ ssh_bruteforce, successful_login_after_failures, admin_login_anomaly web/ sql_injection_attempt, path_traversal_attempt, suspicious_user_agent endpoint/ powershell_encoded_command, suspicious_process_chain, credential_dumping_pattern cloud/ public_s3_access, suspicious_iam_activity ``` 引擎还支持**阈值/聚合规则**(Sigma 风格的“每个实体在时间窗口内的 N 个事件”)以及供关联引擎使用的**序列规则**。`detection-engine/rules/` 中的原有规则可同时并行工作。请参阅 [docs/DETECTION_ENGINE.md](docs/DETECTION_ENGINE.md)。 ## 关联事件 关联引擎利用有序的、带时间窗口的攻击链模式,按主机、用户或 IP 将相关告警分组为单个事件: ``` 5x failed SSH login + successful login + privilege escalation = "Brute Force to Full Account Compromise" incident (CORR-001) ``` 每个事件都包含 `incident_id`、`title`、`severity`、`status`、`related_alerts`、`timeline`、`affected_assets`、`suspected_attack_chain`、`mitre_techniques` 和 `recommended_actions`。事件 ID 是确定性的,因此在重叠窗口上重新运行关联会更新同一事件,而不是创建重复事件。请参阅 [docs/DETECTION_ENGINE.md](docs/DETECTION_ENGINE.md)。 ## AI SOC 代理 每个事件只需点击一次(或调用一次 API)即可获得结构化的根因分析: - **LLM 模式:** 设置 `GROQ_API_KEY` 后,使用 Groq 的 Llama 3.3 70B。 - **模板模式:** 未设置时使用确定性的、离线的根因分析(RCA)生成器 - 结构相同,但零成本,无外部依赖。 无论哪种方式,您都将获得:威胁摘要、根因分析、证据、MITRE ATT&CK 映射、即时遏制、调查步骤、修复建议、误报考量及预防措施。请参阅 [docs/AI_SOC_AGENT.md](docs/AI_SOC_AGENT.md)。 ## 高级搜索 一种类似于 Splunk/Elasticsearch 的查询语言,用于查询日志和告警: ``` severity:high event_type:login_failure AND host:prod-* (user:admin OR user:root) AND timestamp:6h ago raw.commandline:*powershell* AND severity:critical ``` 支持布尔运算符、通配符、CIDR 匹配、范围查询、保存搜索,以及通过 AI 代理将自然语言转换为查询语句。 ## 示例报告 ``` python scripts/generate_incident_report.py --incident latest ``` 导出内容: - `outputs/sample_alerts.json` - `outputs/sample_incident_report.md` - `outputs/sample_ai_rca_report.md` - `outputs/sample_incident_timeline.json` 适用于在线运行的系统,或者通过在本地生成和关联合成示例实现完全离线(`--offline`)运行 - 这对 CI 非常有用。请参阅 [docs/INCIDENT_REPORTING.md](docs/INCIDENT_REPORTING.md)。 ## 截图 | Dashboard | 告警 | 事件 + AI 根因分析(RCA) | |---|---|---| | ![Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/cas/c1/c136ac006bc812a0d5c5b31f10d5b2ae7cfaedacb7f738cb1ca1bed910fff7c1.png) | ![告警](https://static.pigsec.cn/wp-content/uploads/repos/cas/28/28d84853cda86e846afb44528251345a21203ada528a0a70ed98c248dceac755.png) | ![事件](https://static.pigsec.cn/wp-content/uploads/repos/cas/a1/a130fb815993e7f5c045df7b2fad4c0347564e0e97f2c3f0b17e94af03e84561.png) | | AI 根因分析(RCA) | 高级搜索 | |---|---| | ![AI 根因分析(RCA)](https://static.pigsec.cn/wp-content/uploads/repos/cas/e6/e6a0aa8235ee4fec7a0be9ad42dcfa87c38259eb1f512e3095d0f81714cc7607.png) | ![高级搜索](https://static.pigsec.cn/wp-content/uploads/repos/cas/8f/8fb01bf7b129903de0f3e04e6abd2cdb8b3447070a780ea63a4438c16c744c49.png) | *(这些是为了匹配应用实际主题而生成的演示 UI 效果图 - 请运行实时演示以查看真实的 Dashboard。)* ## 架构 ``` +----------------------+ [Synthetic/real logs] -> | Syslog (Go) / API | +-----------+----------+ v +----------------------+ | Normalizer | parser/normalizer.py | (schema + event_type) | +-----------+----------+ v +----------------------+ | OpenSearch | logs / alerts / incidents / | | ai_rca / saved_searches +----+--------------+----+ | | +------------+ +------------+ v v +------------------------+ +------------------------+ | Detection Engine | | Advanced Search | | rules/ + legacy rules | | (query DSL parser) | | single/threshold rules | +------------------------+ +------------+-------------+ v +------------------------+ +---------------------------+ | Correlation Engine | -> | AI SOC Agent | | sequence patterns + | | Groq LLM or template RCA | | rules/*.yml sequences | +---------------------------+ +------------+-------------+ v +------------------------+ | React UI | Dashboard / Incidents / Alerts / | (dashboard, incidents) | Search / Logs / Rules +------------------------+ ``` 详细说明请见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。 ## 安全声明 本项目仅供**本地、教育和防御性安全使用**。 - 所有攻击场景仅生成**合成日志条目** - 不会针对任何系统产生真实的漏洞利用、payload 或网络流量。 - 不含恶意软件,无破坏性操作,不针对外部目标。 - 运行完整的 检测 -> 关联 -> 根因分析(RCA) -> 报告 流程无需任何付费 API key。 - 未经自行审查,请勿将 syslog 服务器或接入 API 指向生产系统。 ## 路线图 请参阅 [docs/ROADMAP.md](docs/ROADMAP.md) - 核心亮点:Sigma 规则导入、风险评分、SOAR 风格的自动化响应动作(封锁 IP、禁用用户)、基于 ML 的异常检测、多租户支持。 ## 文档 - [docs/CASE_STUDY.md](docs/CASE_STUDY.md) - 一个从头到尾的完整实践案例 - [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) - [docs/DETECTION_ENGINE.md](docs/DETECTION_ENGINE.md) - [docs/AI_SOC_AGENT.md](docs/AI_SOC_AGENT.md) - [docs/ATTACK_REPLAY.md](docs/ATTACK_REPLAY.md) - [docs/INCIDENT_REPORTING.md](docs/INCIDENT_REPORTING.md) - [docs/ROADMAP.md](docs/ROADMAP.md) - [RELEASE_NOTES.md](RELEASE_NOTES.md) ## API 端点 | 端点 | 描述 | |---|---| | `POST /ingest` | 提交日志(单条或批量) | | `GET /health` | 健康检查 | | `GET /stats` | 接入与引擎统计数据 | | `GET /rules` | 已加载的检测规则 | | `GET /alerts` | 最近的告警 | | `GET /incidents` | 最近的关联事件 | | `PUT /incidents/{id}/investigate` `/resolve` `/status` | 事件生命周期管理 | | `POST /ai/rca/{incident_id}` | 生成(或获取缓存的)AI 根因分析(RCA) | | `GET /search` | 高级查询搜索 | | `POST /ai/convert-query` | 自然语言 -> 查询语法 | 一旦运行,即可在 http://localhost:8000/docs 查看完整列表。 ## 手动日志接入 ``` python scripts/send-log.py echo '<14>Jan 25 15:00:00 hostname app: test' | nc -u localhost 514 ``` ## 验证一切是否正常 ``` python scripts/verify_demo.py ``` 检查所需文件是否存在、规则是否加载、示例日志是否可以生成、报告是否可以生成,以及演示命令是否有效 - 无需 Docker。
标签:AMSI绕过, Go, Python, Ruby工具, 威胁检测, 安全运营中心, 无后门, 日志审计, 网络映射, 请求拦截, 逆向工具