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安全, 主动响应, 免杀技术, 威胁检测, 安全信息与事件管理, 安全加固, 安全运维, 安全项目, 密码喷洒检测, 搜索引擎爬取, 暴力破解检测, 混合环境, 网络安全, 隐私保护