MysticXTharun/wazuh-siem-detection-lab
GitHub: MysticXTharun/wazuh-siem-detection-lab
基于 Wazuh 的防御性安全实验室项目,提供自定义检测规则、Auditd 遥测、MITRE ATT&CK 映射和安全模拟脚本,帮助用户在容器化环境中练习 SIEM 检测工程与事件调查。
Stars: 0 | Forks: 0
# Wazuh SIEM 检测工程实验室
一个防御性的家庭实验室项目,演示了 Wazuh SIEM 部署、Linux 遥测数据收集、自定义检测工程、MITRE ATT&CK 映射、告警验证以及事件调查。
## 项目亮点
- 容器化的 Wazuh 4.14.6 单节点部署
- 使用 Wazuh agent 监控 Ubuntu 终端节点
- SSH 身份验证与暴力破解检测
- 实时文件完整性监控
- Linux 账户生命周期监控
- Cron 作业持久化检测
- Auditd 命令执行监控
- SSH `authorized_keys` 持久化检测
- 七条自定义 Wazuh 关联与检测规则
- 安全、可重复的模拟脚本
## 架构
```
flowchart LR
A["Ubuntu Endpoint"] -->|1514/TCP| B["Wazuh Manager"]
B --> C["Wazuh Indexer"]
C --> D["Wazuh Dashboard"]
E["Auditd"] --> A
F["Linux Logs"] --> A
G["FIM"] --> A
```
## 实验室环境
| 组件 | 配置 |
|---|---|
| Hypervisor | VMware Workstation Pro |
| SIEM | Wazuh 4.14.6 |
| 部署方式 | Docker Compose 单节点 |
| 终端节点 | Ubuntu Linux |
| Agent | Wazuh Agent 4.14.6 |
| 遥测数据 | Auth 日志、Auditd 和 FIM |
| ATT&CK | MITRE ATT&CK 映射 |
## 自定义检测
| 规则 ID | 级别 | 检测内容 | MITRE ATT&CK |
|---|---:|---|---|
| 100100 | 10 | 针对不存在用户的重复 SSH 失败 | T1110.001 |
| 100110 | 12 | 受保护目录中的关键活动 | T1565.001 |
| 100120 | 11 | 创建了新的本地 Linux 账户 | T1136.001 |
| 100121 | 7 | 删除了本地用户或组 | 账户生命周期 |
| 100130 | 12 | Cron 持久化活动 | T1053.003 |
| 100140 | 10 | 执行了受监控的文件传输工具 | T1105 |
| 100150 | 12 | SSH `authorized_keys` 持久化 | T1098.004 |
## 已验证的内置规则
| 规则 ID | 级别 | 描述 |
|---|---:|---|
| 2502 | 10 | 用户多次输入密码错误 |
| 5710 | 5 | 尝试使用不存在的用户登录 |
| 550 | 7 | 完整性校验和已更改 |
| 553 | 7 | 文件已删除 |
| 554 | 5 | 文件已添加 |
| 5901 | 8 | 添加了新组 |
| 5902 | 8 | 添加了新用户 |
| 5903 | 3 | 用户或组已删除 |
| 5402 | 3 | 成功通过 sudo 提权至 root |
| 80705 | 3 | Auditd 配置已更改 |
## 仓库结构
```
wazuh-siem-detection-lab/
├── auditd/
│ └── wazuh-soclab.rules
├── configs/
│ └── agent-monitoring.xml
├── detections/
│ └── local_rules.xml
├── simulations/
│ ├── account-lifecycle-test.sh
│ ├── auditd-command-test.sh
│ ├── cron-persistence-test.sh
│ └── fim-test.sh
└── docs/
├── incidents/
└── screenshots/
```
## 检测场景
### SSH 身份验证攻击
通过源 IP 关联重复失败尝试,并将其映射到密码猜测行为。
```
rule.id:"100100"
```
### 受保护目录监控
实时检测文件的创建、修改、权限更改和删除。
```
rule.id:"100110"
```
### 账户生命周期
将本地账户的创建和删除提升为需分析师审查的告警。
```
rule.id:"100120" OR rule.id:"100121"
```
### Cron 持久化
将 `/etc/cron.d` 下的更改作为计划任务持久化进行监控。
```
rule.id:"100130"
```
### 文件传输工具执行
Auditd 监控 `curl` 和 `wget` 的执行情况。
```
rule.id:"100140"
```
### SSH 密钥持久化
对 `authorized_keys` 的更改会生成高严重性的持久化告警,且不会收集密钥内容。
```
rule.id:"100150"
```
## 安全模拟
这些脚本仅适用于您拥有或明确授权测试的系统。
```
./simulations/fim-test.sh
sudo ./simulations/account-lifecycle-test.sh
sudo ./simulations/cron-persistence-test.sh
./simulations/auditd-command-test.sh
```
脚本使用临时文件和账户,并包含清理保护机制。
## 分析师工作流
1. 验证受影响的 agent 和源 IP。
2. 审查触发事件及相关联的活动。
3. 建立时间线。
4. 将观察到的行为映射到 MITRE ATT&CK。
5. 确定活动是否已获授权。
6. 携带支持性证据上报已确认的事件。
7. 调整合法的行政管理活动以减少误报。
## 安全说明
- 不存储任何凭据、私钥或真实的恶意负载。
- SSH 密钥内容报告已禁用。
- 模拟是受限且非破坏性的。
- 在公开仪表盘之前,应更改默认的 Wazuh 凭据。
- 生产环境的阈值需要根据具体环境进行调整。
## 截图
### 活跃的 Wazuh Agent

### SSH 暴力破解检测

### 文件完整性监控

### 账户生命周期监控

### Cron 持久化检测

### Auditd 命令执行

### SSH 密钥持久化检测

## 免责声明
本仓库仅用于防御性安全教育和授权的家庭实验室测试。
标签:Wazuh, x64dbg, 安全运营, 扫描框架, 版权保护, 网络信息收集