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。

```
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) |
|---|---|---|
|  |  |  |
| AI 根因分析(RCA) | 高级搜索 |
|---|---|
|  |  |
*(这些是为了匹配应用实际主题而生成的演示 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工具, 威胁检测, 安全运营中心, 无后门, 日志审计, 网络映射, 请求拦截, 逆向工具