admu-sec/wazuh-degree-project
GitHub: admu-sec/wazuh-degree-project
一套针对 Windows/Linux 混合环境深度定制的 Wazuh SIEM 规则集,通过映射 MITRE ATT&CK 框架并结合主动响应机制,解决了高级威胁的精准检测与自动化防御问题。
Stars: 0 | Forks: 0
# Wazuh SIEM 配置
**项目:** 优化 Wazuh SIEM 以进行威胁检测
**作者:** admu-sec
**日期:** 2026 年 4 月
**版本:** 1.2
## 📋 概述
本仓库包含自定义的 Wazuh SIEM 规则和 Active Response 配置,旨在检测和响应 Windows/Linux 混合环境中的现代网络威胁。
**总体实现:**
- **40 条自定义安全规则**(4 条 SSH + 23 条 Windows + 4 条 Linux + 8 条 Caldera + 1 条已弃用)
- **涵盖 36 种独特的 MITRE ATT&CK 技术**
- **3 项 Active Response 自动化**
- **6 个加入白名单的关键系统**
- **已启用文件完整性监控 (FIM)**
## 🏗️ 架构
```
Wazuh Manager (10.46.21.108) + Dashboard
↓
Wazuh Indexer (10.46.21.60) - Elasticsearch
↑
Monitored Agents:
- Windows DC (192.168.5.97)
- Windows W1 (192.168.5.99)
- Windows W2 (192.168.5.100)
- Wazuh Manager (self-monitoring)
```
## 📁 仓库结构
```
wazuh-degree-project/
├── README.md # Project overview and documentation
├── commands/
│ └── README.md # Command reference & testing guide
├── rules/
│ └── local_rules.xml # Custom detection rules (36 rules)
├── config/
│ ├── ossec.conf # Active Response + FIM configuration
│ └── local_decoder.xml # Custom decoders
└── sysmon/
├── sysmonconfig-DC.xml # Sysmon config for AD/DC
└── sysmonconfig-W1.xml # Sysmon config for W1 (incl. LSASS entry)
```
# 🛡️ 已实现的规则
## SSH 安全 (4 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100001 | SSH 身份验证失败 | 10 | T1110.001, T1078 | ✅ |
| 100002 | SSH 暴力破解(5 次以上尝试) | 10 | T1110.001 | ✅ |
| 100003 | SSH 密码喷洒攻击 | 12 | T1110.003 | ✅ |
| 100004 | 暴力破解后成功登录 | 14 | T1078 | ✅ |
## Windows 安全 (23 条规则)
### 噪声抑制 (2 条规则)
| 规则 ID | 描述 | 级别 | 已验证 |
|---------|-------------|-------|----------|
| 100005 | 忽略磁盘清理 | 0 | ✅ |
| 100006 | 忽略 Windows 更新 | 0 | ✅ |
### DC 安全 (3 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100010 | 域控制器上的管理员登录 | 12 | T1078 | ✅ |
| 100055 | 域账户网络登录 | 8 | T1078.002 | ✅ |
| 100056 | Kerberoasting – RC4 加密票据 | 15 | T1558.003 | ❌ |
### PowerShell 与凭据转储 (3 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100011 | PowerShell 编码命令 | 12 | T1059.001, T1027 | ✅ |
| 100012 | Mimikatz 检测 | 15 | T1003.001 | ✅ |
| 100025 | LSASS 内存访问 | 15 | T1003.001 | ✅ |
### RDP 安全 (1 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100013 | RDP 暴力破解 | 10 | T1110 | ✅ |
### 持久化检测 (6 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100014 | 新的 Windows 服务 | 10 | T1543.003 | ✅ |
| 100015 | OneDrivePatcher.exe | 12 | T1036 | ✅ |
| 100016 | 注册表 Run 键被修改 | 11 | T1547.001 | ✅ |
| 100017 | 注册表白名单(合法项) | 0 | N/A | ✅ |
| 100018 | 注册表可疑路径 | 14 | T1547.001 | ✅ |
| 100019 | 注册表中的 PowerShell | 15 | T1547.001, T1059.001 | ✅ |
### 关键安全事件 (4 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100020 | 安全日志被清除 | 15 | T1070.001 | ✅ |
| 100021 | Windows 防火墙被禁用 | 12 | T1562.004 | ✅ |
| 100022 | 勒索软件删除卷影副本 | 14 | T1490 | ✅ |
| 100054 | 创建新用户账户 | 12 | T1136 | ✅ |
### 横向移动 (3 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100023 | PsExec 检测 | 11 | T1569.002 | ✅ |
| 100053 | 横向工具传输 | 13 | T1570 | ✅ |
| ~~100024~~ | ~~SMB 管理共享访问~~ | - | T1021.002 | 已弃用 – 由内置规则 67017 覆盖 |
### 防御规避 (1 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100026 | Windows Defender 被禁用 | 13 | T1562.001 | ✅ |
### 入口工具传输 (1 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100052 | 执行文件下载工具 | 13 | T1105 | ✅ |
## Linux 安全 (4 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100040 | 关键系统文件被修改 | 12 | T1222, T1098 | ✅ |
| 100041 | SSH Authorized Keys 被修改 | 10 | T1098.004 | ✅ |
| 100042 | Cron 任务被创建/修改 | 10 | T1053.003 | ✅ |
| 100043 | 可疑的 Sudo 使用 | 8 | T1548.003 | ✅ |
**检测内容:**
- **100040**:对 `/etc/passwd`、`/etc/shadow`、`/etc/sudoers` 的更改(权限提升、后门用户)
- **100041**:通过修改 `authorized_keys` 建立 SSH 后门(持久化机制)
- **100042**:通过 `/etc/cron*` 和 `/var/spool/cron` 中的 cron 任务实现恶意软件持久化
- **100043**:非特权用户执行的 sudo 命令(受损账户)
## 对手模拟 – Caldera (8 条规则)
| 规则 ID | 描述 | 级别 | MITRE ATT&CK | 已验证 |
|---------|-------------|-------|--------------|----------|
| 100044 | 签名二进制代理执行 | 11 | T1218.007 | ✅ |
| 100045 | 创建计划任务 | 11 | T1053.005 | ✅ |
| 100046 | LSASS 访问 / Mimikatz | 15 | T1003.001 | ✅ |
| 100047 | 进程注入 | 12 | T1055.001 | ✅ |
| 100048 | WMI 事件订阅 | 13 | T1546.003 | ✅ |
| 100049 | 屏幕截图 | 10 | T1113 | ✅ |
| 100050 | 进程发现 | 8 | T1057 | ✅ |
| 100051 | 数据压缩/归档 | 11 | T1560 | ✅ |
## 📂 文件完整性监控 (FIM)
### 监控目录
| 目录 | 监控类型 | 目的 |
|-----------|-----------------|---------|
| `/etc` | 定期 | 系统配置文件 |
| `/usr/bin`, `/usr/sbin` | 定期 | 系统二进制文件 |
| `/bin`, `/sbin`, `/boot` | 定期 | 关键启动文件 |
| `/root/.ssh` | 实时 | SSH 后门检测 |
| `/var/spool/cron` | 实时 | Cron 持久化检测 |
| `/var/ossec/etc` | 实时 | Wazuh 配置防篡改 |
**功能特性:**
- ✅ 结合 inotify 的**实时监控**
- ✅ **校验和:** MD5, SHA1, SHA256
- ✅ **权限与所有权**跟踪
- ✅ 针对误报的**忽略列表**(mtab, resolv.conf)
**配置:** 参见 `config/ossec.conf` → `` 部分
## ⚡ 主动响应
### 自动 IP 封禁
| 触发规则 | 威胁 | 超时时间 | 范围 |
|--------------|--------|---------|-------|
| 100002 | SSH 暴力破解 | 10 分钟 | 本地 |
| 100012 | Mimikatz | 1 小时 | 所有 Agent |
| 100022 | 勒索软件 | 1 小时 | 所有 Agent |
### 白名单系统
- `127.0.0.1` - Localhost
- `10.46.21.108` - Wazuh Manager + Dashboard
- `10.46.21.60` - Wazuh Indexer (Elasticsearch)
- `192.168.5.97` - Windows DC
- `192.168.5.99` - Windows W1
- `192.168.5.100` - Windows W2
**为什么要设置白名单?**
- 即使在攻击期间也能保持可见性
- 防止 Agent 与 Manager 之间的通信中断
- 外部威胁仍会被自动阻止
## 🎯 MITRE ATT&CK 覆盖范围
### 战术与技术(33 种独特技术)
| 战术 | 技术 | 规则 |
|--------|-----------|-------|
| **初始访问** | T1078 (有效账户) | 100001, 100004, 100010 |
| **执行** | T1059.001 (PowerShell) | 100011, 100019 |
| | T1569.002 (PsExec) | 100023 |
| **持久化** | T1543.003 (Windows 服务) | 100014 |
| | T1547.001 (注册表 Run 键) | 100016, 100018, 100019 |
| | T1098.004 (SSH Authorized Keys) | 100041 |
| | T1053.003 (计划任务: Cron) | 100042 |
| | T1053.005 (计划任务: Windows) | 100045 |
| | T1546.003 (WMI 事件订阅) | 100048 |
| | T1136 (创建账户) | 100054 |
| **权限提升** | T1548.003 (Sudo) | 100043 |
| | T1098 (账户操纵) | 100040 |
| | T1055.001 (进程注入) | 100047 |
| **防御规避** | T1027 (混淆) | 100011 |
| | T1036 (伪装) | 100015 |
| | T1070.001 (清除日志) | 100020 |
| | T1218.007 (Msiexec) | 100044 |
| | T1562.001 (禁用杀毒软件) | 100026 |
| | T1562.004 (禁用防火墙) | 100021 |
| | T1222 (文件权限修改) | 100040 |
| **凭据访问** | T1003.001 (LSASS/Mimikatz) | 100012, 100025, 100046 |
| | T1110.001 (密码猜测) | 100001, 100002 |
| | T1110.003 (密码喷洒) | 100003 |
| | T1110 (暴力破解) | 100013 |
| | T1558.003 (Kerberoasting) | 100056 |
| **发现** | T1057 (进程发现) | 100050 |
| | T1078.002 (域账户) | 100055 |
| **横向移动** | T1021.002 (MB 共享) | 内置规则 67017 |
| | T1570 (横向工具传输) | 100053 |
| **收集** | T1113 (屏幕截图) | 100049 |
| | T1560 (归档收集的数据) | 100051 |
| **命令与控制** | T1105 (入口工具传输) | 100052 |
| **影响** | T1490 (抑制系统恢复) | 100022 |
## 📦 安装
### 1. 部署自定义规则
```
sudo cp rules/local_rules.xml /var/ossec/etc/rules/local_rules.xml
sudo chown root:wazuh /var/ossec/etc/rules/local_rules.xml
sudo chmod 640 /var/ossec/etc/rules/local_rules.xml
```
### 2. 部署自定义解码器
```
sudo cp config/local_decoder.xml /var/ossec/etc/decoders/local_decoder.xml
sudo chown root:wazuh /var/ossec/etc/decoders/local_decoder.xml
sudo chmod 640 /var/ossec/etc/decoders/local_decoder.xml
```
### 3. 配置 Active Response 与 FIM
```
sudo cp /var/ossec/etc/ossec.conf /var/ossec/etc/ossec.conf.backup
sudo cp config/ossec.conf /var/ossec/etc/ossec.conf
```
### 4. 验证并重启
```
sudo systemctl restart wazuh-manager
sudo systemctl status wazuh-manager
sudo tail -100 /var/ossec/logs/ossec.log | grep -i "monitoring directory"
```
### 5. 在 Windows Agent 上部署 Sysmon
```
# 针对 W1 使用 sysmonconfig-W1.xml,针对 DC 使用 sysmonconfig-DC.xml
sysmon64.exe -accepteula -i C:\Sysmon\sysmonconfig.xml
```
## 🧪 测试
### 测试 SSH 暴力破解检测
```
for i in {1..6}; do ssh root@WAZUH_MANAGER_IP; sleep 2; done
```
**预期结果:** 触发规则 100002,IP 被封禁 10 分钟。
### 测试 Mimikatz 检测
```
Set-MpPreference -DisableRealtimeMonitoring $true
.\mimikatz.exe "sekurlsa::logonpasswords" "exit"
```
**预期结果:** 触发规则 100012(级别 15),IP 被封禁 1 小时。
### 测试 Linux FIM – SSH 后门
```
sudo sh -c 'echo "# test" >> /root/.ssh/authorized_keys'
sleep 10
sudo grep '"id":"100041"' /var/ossec/logs/alerts/alerts.json | tail -1
```
**预期结果:** 触发规则 100041(级别 10),MITRE T1098.004。
### 测试 PsExec 检测
```
C:\PsExec.exe /accepteula cmd.exe /c hostname
```
**预期结果:** 触发规则 100023(级别 11),MITRE T1569.002.
## 📊 Dashboard 验证
1. 导航至 **Security events** → **Events**
2. 过滤:`rule.id:(100002 OR 100012 OR 100041 OR 100023)`
3. 查看 MITRE ATT&CK 映射:**Threats** → **MITRE ATT&CK**
4. 检查 FIM 事件:**File Integrity** → **Files changed**
## ⚠️ 重要说明
### 白名单注意事项
- 所有基础设施 IP 均已加入白名单以保持可见性
- Active Response 不会阻止白名单中的 Agent
- 外部攻击者仍会被自动阻止
### 误报管理
- 规则 100005–100006 过滤常见的 Windows 进程
- 规则 100017 将注册表中的合法软件加入白名单
- FIM 忽略:`/etc/mtab`、`/etc/resolv.conf`、`/etc/adjtime`
## 📝 环境要求
- **Wazuh Manager:** 4.14.1
- **Wazuh Agent:** Windows 10/11, Windows Server 2019/2022/2025
- **Sysmon:** Windows Agent 上的 v15.15
- **网络:** Agent 必须通过端口 1514/TCP 与 Manager 通信
- **Linux:** Amazon Linux 2023 (Wazuh Manager)
## 🔧 已完成的增强功能
- [x] 针对 Linux 关键文件的文件完整性监控 (FIM) ✅
- [x] Linux 特定规则(authorized_keys、cron、sudo、/etc 修改) ✅
- [x] Caldera 对手模拟规则 (100044–100051) ✅
- [x] PsExec 检测 (100023) ✅
- [x] 修复了所有规则的 if_sid 引用 ✅
- [ ] 漏洞检测 (CVE 扫描)
- [ ] 安全配置评估 (CIS benchmarks)
- [ ] Email/Slack 告警集成
- [ ] Windows 目录的 FIM
## 🚀 检测到的真实攻击场景
### 场景 1:SSH 后门
```
echo "ssh-rsa AAAA... attacker@evil.com" >> /root/.ssh/authorized_keys
```
**Wazuh:** ✅ 规则 100041 → 告警(级别 10) → MITRE T1098.004
### 场景 2:通过 sudoers 提权
```
echo "attacker ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
```
**Wazuh:** ✅ 规则 100040 → 告警(级别 12) → MITRE T1222, T1098
### 场景 3:通过 Cron 实现恶意软件持久化
```
echo "0 * * * * /tmp/.hidden/backdoor.sh" >> /var/spool/cron/root
```
**Wazuh:** ✅ 规则 100042 → 告警(级别 10) → MITRE T1053.003
### 场景 4:Mimikatz 凭据窃取
```
mimikatz.exe sekurlsa::logonpasswords
```
**Wazuh:** ✅ 规则 100012 → 告警(级别 15) + Active Response → MITRE T1003.001
### 场景 5:PsExec 横向移动
```
C:\PsExec.exe /accepteula \\target cmd.exe /c hostname
```
**Wazuh:** ✅ 规则 100023 → 告警(级别 11) → MITRE T1569.002
## 📚 参考资料
- [Wazuh 文档](https://documentation.wazuh.com/)
- [MITRE ATT&CK 框架](https://attack.mitre.org/)
- [Wazuh 规则集 GitHub](https://github.com/wazuh/wazuh/tree/master/ruleset/rules)
- [Sysmon 配置](https://github.com/SwiftOnSecurity/sysmon-config)
- [文件完整性监控指南](https://documentation.wazuh.com/current/user-manual/capabilities/file-integrity/)
## 📄 许可证
本配置按原样提供,用于教育和安全研究目的。
## 👤 作者
**admu-sec**
项目:Wazuh SIEM 优化
日期:2026 年 4 月
版本:1.2(规则修复、验证及 PsExec 检测)
## 📋 变更日志
### 版本 1.2 (2026-04-24)
- ✅ 修复了规则 100041、100042、100043、100026、100012、100023 的 `if_sid` 引用
- ✅ 修复了规则 100003 (密码喷洒) – 将 `same_user` 替换为 `same_source_ip`
- ✅ 添加了 PsExec 检测规则 100023 (T1569.002) 及正确的 `if_sid` 61603
- ✅ 弃用规则 100024 (SMB 管理共享) – 已由内置规则 67017 (T1021.002) 覆盖
- ✅ 添加了规则 100052–100056 (入口工具传输、横向工具传输、创建账户、域登录、Kerberoasting)
- ✅ 在生产环境中针对实时事件验证了所有活动规则
- ✅ 规则总数:27 → 40
### 版本 1.1 (2026-02-27)
- ✅ 增加了针对 Linux 的文件完整性监控 (FIM)
- ✅ 增加了 4 条 Linux 安全规则 (100040–100043)
- ✅ 将 MITRE ATT&CK 覆盖范围扩大到 16 种技术(+4)
- ✅ 在生产环境中验证了规则 100041 (SSH 后门检测)
- ✅ 规则总数:23 → 27
### 版本 1.0 (2026-02-26)
- 初始实现,包含 23 条规则(SSH + Windows)
- 针对 SSH、Mimikatz、勒索软件的 Active Response
- Sysmon 集成
- MITRE ATT&CK 映射(12 种技术)
标签:Active Response, AMSI绕过, Cloudflare, Conpot, Elasticsearch, GitHub Advanced Security, IT安全, MITRE ATT&CK, PB级数据处理, Sysmon, Wazuh, Windows安全, 主动响应, 免杀技术, 威胁检测, 安全信息与事件管理, 安全加固, 安全运维, 安全项目, 密码喷洒检测, 搜索引擎爬取, 暴力破解检测, 混合环境, 网络安全, 隐私保护