y-zahidi/home-lab-siem
GitHub: y-zahidi/home-lab-siem
一套基于真实生产环境经验提炼的可复现 SIEM 实验室,用 Docker Compose 一键拉起 Wazuh + Suricata + Sysmon 全栈安全监控环境。
Stars: 1 | Forks: 0
# home-lab-siem





## 快速开始
```
git clone https://github.com/y-zahidi/home-lab-siem.git
cd home-lab-siem
./scripts/generate-certs.sh
docker compose up -d
# 等待约 3 分钟,然后:
open https://localhost:443 # admin / SecretPassword (change it)
```
默认凭据、安全加固说明和证书轮换步骤记录在 [`docs/HARDENING.md`](docs/HARDENING.md) 中。
## 这是什么
一个可运行的 SIEM 技术栈,包含我曾在 Préfecture 生产环境中使用过的相同组件,并针对在单台笔记本电脑上运行的范围进行了精简:
- **Wazuh** (manager + indexer + dashboard) — 日志管理、HIDS、文件完整性监控、MITRE ATT&CK 规则标记。
- **Suricata** — 网络 IDS,其 EVE JSON 输出由 Wazuh 接收。
- 针对Windows 终端的 **Sysmon** 基线 (SwiftOnSecurity ruleset)。
- **文档**,用于记录我在生产环境中拥有但无法干净地引入到实验室中的集成:MISP、VirusTotal、FortiGate、Nessus。
## 架构
```
┌──────────────────────────────────────┐
│ Endpoints (lab targets) │
│ Linux + auditd Windows + Sysmon│
│ wazuh-agent wazuh-agent │
└─────────┬─────────────────┬──────────┘
│ │
▼ ▼
┌──────────────────────────────┐
│ Suricata (IDS, EVE JSON out) │
└──────────────┬───────────────┘
▼
┌──────────────────────────────┐
│ Wazuh manager — decoders, │
│ rules, active response │
└──────────────┬───────────────┘
▼
┌──────────────────────────────┐
│ Wazuh indexer (OpenSearch) + │
│ Wazuh dashboard │
└──────────────────────────────┘
```
## 文件分布
```
.
├── docker-compose.yml single-node stack
├── config/
│ ├── wazuh/
│ │ ├── ossec.conf
│ │ ├── rules/local_rules.xml ← custom detections (see below)
│ │ └── decoders/
│ └── suricata/
│ └── suricata.yaml
├── scripts/
│ └── generate-certs.sh one-shot certs for the manager↔indexer chain
├── docs/
│ ├── HARDENING.md
│ ├── MISP_INTEGRATION.md
│ ├── WINDOWS_AGENT.md
│ ├── architecture.md
│ ├── detections.md
│ └── atomic-red-team.md
└── screenshots/ from a real `docker compose up`
```
## 内置检测
每条规则都标记了其针对的 MITRE ATT&CK 技术。示例日志和分类步骤记录在 [`docs/detections.md`](docs/detections.md) 中。
| 规则 ID | 检测项 | MITRE |
|---|---|---|
| 100100 | SSH 暴力破解(60秒内失败5次以上) | T1110.001 |
| 100101 | 可疑的 PowerShell(encoded, IEX, downloadstring) | T1059.001 |
| 100102 | 来自单一源的端口扫描(基于 Suricata) | T1046 |
| 100103 | `/etc` 或 `C:\Windows\System32` 中的文件完整性违规 | T1565.001 |
| 100104 | 疑似 Web Shell 上传 | T1505.003 |
这些规则的 XML 文件位于 [`config/wazuh/rules/local_rules.xml`](config/wazuh/rules/local_rules.xml)。它们只是一个起点,而不是一个完整的 SOC 规则集——请参阅下文的“经验教训”。
## 为什么选择这个技术栈(而不是仅仅使用 ELK)
| 需求 | 选择 | 原因 |
|---|---|---|
| 日志传输与解析 | Wazuh agent | 原生注册,内置针对 100 多个应用的解码器。 |
| HIDS / FIM / Rootcheck | Wazuh manager | 内置功能,无需额外安装 agent。 |
| 网络 IDS | Suricata | EVE JSON 格式,多线程,ET Open 规则集,易于接入 Wazuh。 |
| 搜索与存储 | Wazuh indexer (OpenSearch) | 内置捆绑,Apache 2.0 许可证,没有 Elastic 许可证的麻烦。 |
| 终端遥测数据 | Sysmon + SwiftOnSecurity | 事实上的基线标准。 |
| MITRE ATT&CK 映射 | Wazuh 内置 | 每条规则自动标记。 |
我为实验室环境删减的内容:
- **单节点 Wazuh。** 生产环境应该是一个 3 节点的 indexer 集群。
- **没有实时的 MISP 容器。** MISP 集成记录在 [`docs/MISP_INTEGRATION.md`](docs/MISP_INTEGRATION.md) 中;运行它会增加运维开销,这是我不希望在 `docker compose up` 中出现的。
- **没有 FortiGate 模拟。** 在本地模拟 FortiGate 需要付费的 VM 镜像。我在 Préfecture 使用过的集成模式已记录在文档中,但无法在此处运行。
## 仪表盘
基于此确切代码实际运行的截图:
| 登录 | 模块 |
|:--:|:--:|
|  |  |
| **MITRE ATT&CK** | **规则(内置 4372 条)** |
|  |  |
| **Manager 状态** | **管理** |
|  |  |
## 经验教训
我在 Préfecture 学到的四件事,这个实验室试图将它们融入其中:
1. **在第一天就消除噪音。** 开箱即用的 Wazuh 每小时会因为 `sudo`、`cron` 和 `systemd-logind` 触发数百个告警。我对生产仓库提交的第一个 PR 就是一个调优规则集,它过滤掉了约 85% 的告警量。
2. **Active Response 是一把双刃剑。** `ip-blacklist` 配置中的一个拼写错误可能会将 SOC 分析师锁定在 manager 之外。在前两周请仅以审计模式运行它。
3. **自签名证书可行——但请记录轮换步骤。** Wazuh 证书开箱即用的有效期为 10 年,但如果您重新安装其中一个组件,manager↔indexer 链会静默中断。请保持将 `scripts/generate-certs.sh` 提交到代码库中。
4. **仪表盘不是 SOC。** 仪表盘只是一个起点。真正的分类工作是在工单中进行的——请在上线前规划好与 Jira / GLPI / TheHive 的集成。
## 路线图
- [x] 单节点 Wazuh + Suricata + 5 条基线规则。
- [x] Atomic Red Team 演练 (T1110.001, T1059.001)。
- [ ] MISP 集成作为可选的 `docker compose --profile misp up`。
- [ ] Active Response 示例(审计模式 + 生产模式)。
- [ ] Windows agent + Sysmon SwiftOnSecurity 规则集打包。
- [ ] 在每个 PR 上对 Wazuh 规则 XML 进行 CI lint。
## 许可证
MIT — 详见 [LICENSE](LICENSE)。灵感来源于在 Préfecture de Tétouan 的真实生产工作;不包含该项目中的任何敏感材料。
## 关于我
我是 **Yassir Zahidi**,拉巴特的计算机工程专业学生,拥有网络安全专业技师背景(ISMO Tétouan)。对 2026 年的 SOC / 蓝队 / DevSecOps 实习机会持开放态度。
- 作品集 ·
- LinkedIn ·
- 邮箱 · yassirzahidi8@gmail.com
标签:Ask搜索, Cloudflare, Cutter, Docker Compose, EVE JSON, FortiGate, GitHub Advanced Security, Home Lab, Linux审计, MITRE ATT&CK, Nessus, OISF, Suricata, Sysmon, VirusTotal, Wazuh, x64dbg, 主机入侵检测, 入侵检测系统, 威胁情报, 安全信息与事件管理, 安全加固, 安全实验室, 安全数据湖, 安全运营, 开发者工具, 扫描框架, 搜索引擎爬取, 日志管理, 版权保护, 现代安全运营, 网络安全, 请求拦截, 隐私保护