Sbharadwaj05/Wazuh-NIST-Rules-Set

GitHub: Sbharadwaj05/Wazuh-NIST-Rules-Set

一套开源的、经过自动化测试的Wazuh规则集,将50条检测规则精确映射到NIST CSF v2.0和MITRE ATT&CK,使安全告警直接具备合规证据。

Stars: 6 | Forks: 0

# Wazuh NIST CSF v2.0 检测规则包 [![Wazuh 版本](https://img.shields.io/badge/Wazuh-%3E%3D4.8.0-blue.svg)](https://wazuh.com) [![NIST CSF 映射](https://img.shields.io/badge/NIST%20CSF-v2.0-orange.svg)](https://www.nist.gov/cyberframework) [![规则](https://img.shields.io/badge/Detections-50%20Active-brightgreen.svg)](rules/) [![测试](https://img.shields.io/badge/Evidence-57%20PASS%200%20FAIL-brightgreen.svg)](tests/EVIDENCE_REPORT.md) [![许可证](https://img.shields.io/badge/License-Apache%202.0-green.svg)](LICENSE) ## 💡 问题所在 Wazuh 功能强大,但将自定义检测映射到新的 **NIST CSF v2.0** 框架通常意味着耗费数小时手动维护电子表格和零散文档。大多数团队最终只能看到告警触发,却无法追溯其合规输出——这让审计人员不满,分析人员不堪重负。 ## 🎯 解决方案 本仓库在检测逻辑与合规证据之间架起了桥梁。它提供了一套 **可直接用于生产的、经过严格测试的 50 条 Wazuh 规则**,这些规则原生带有了 NIST CSF v2.0 和 MITRE ATT&CK 标签——因此您的告警一旦到达仪表板,便已具备合规性。 ## 🏗️ 架构与工作流程 ``` graph LR A[Endpoint Telemetry] -->|Sysmon / Auditd| B[Wazuh Agent] B -->|Log Stream| C[Wazuh Manager] C -->|Custom Decoders| D[Rules Engine] D -->|NIST/MITRE Mapping| E[Security Alert] E --> F[Dashboard / SIEM] ``` ## 🧪 实验室测试环境 所有规则已在受控实验室中针对真实遥测源进行了验证: * **操作系统**: Ubuntu 22.04 LTS 与 Windows Server 2022 * **Wazuh**: Manager 与 Agent v4.8.0 * **遥测数据**: Sysmon (Windows)、Auditd 与 Syslog (Linux) * **验证**: 自动化证据测试工具 —— [57 PASS, 0 FAIL](tests/EVIDENCE_REPORT.md) ## 🚀 快速开始 ### 前置条件 在部署之前,请确认您的环境满足以下要求: - **Wazuh Manager** v4.8.0 或更高版本 - 具备 Wazuh Manager 主机的 **root 访问权限** - **端点**已配置所需的遥测代理: - Windows: [Sysmon + 审核策略](docs/prerequisites.md) - Linux: [Auditd + iptables 日志](docs/prerequisites.md) - **CDB 列表引用**已添加到 `ossec.conf`(参见下面的步骤 3) ### 1. 克隆并部署 ``` git clone https://github.com/Sbharadwaj05/Wazuh-NIST-Rules-Set.git cd Wazuh-NIST-Rules-Set ``` 将规则和解码器复制到您的 Wazuh Manager: ``` sudo cp -r rules/* /var/ossec/etc/rules/nist-csf/ sudo cp decoders/nist_custom_decoders.xml /var/ossec/etc/decoders/ sudo cp lists/rare-ports lists/c2-domains /var/ossec/etc/lists/ ``` 详细步骤请参阅完整的[部署指南](docs/deployment-guide.md)。 ### 2. 注册 CDB 列表 在 `/var/ossec/etc/ossec.conf` 的 `` 块内添加以下内容: ``` etc/lists/rare-ports etc/lists/c2-domains ``` ### 3. 重启 Wazuh Manager ``` sudo systemctl restart wazuh-manager ``` ### 4. 运行自动化验证 ``` # 静态证据验证器 (无需 Wazuh) python tests/evidence_validator.py # 完整 wazuh-logtest harness (需要运行中的 Wazuh) bash tests/test-runner.sh ``` ## 🔥 示例告警输出 本包触发的每个告警都原生地包含了 MITRE ATT&CK 上下文和 NIST CSF 标签,直接体现在 Wazuh JSON 事件中: ``` { "rule": { "level": 10, "description": "SSH brute force attack detected from a single source IP", "id": "100018", "mitre": { "id": [ "T1110.001" ], "tactic": [ "Credential Access" ], "technique": [ "Brute Force: Password Guessing" ] }, "groups": [ "authentication_failures", "brute_force", "nist_de.cm-01", "nist_rs.ma-02" ] }, "decoder": { "name": "sshd" } } ``` ## 🎯 项目使命与核心原则 1. **严谨的证据驱动映射:** 规则仅映射到有明确遥测证据支持的 NIST CSF v2.0 子类别。我们绝不夸大合规性。 2. **可追溯性与审计:** 每个映射都在规则 XML 文件中完整记录,并通过可重复的合成日志测试验证。 3. **独立规则设计:** 每条规则都独立存在于自己的文件中——没有脆弱的批量依赖关系,便于单独部署。 ## 📂 仓库结构 ``` rules/ Custom Wazuh rule XMLs — 1 rule per file, organised by NIST CSF function DE.AE/ Anomalous Event detection rules DE.CM/ Continuous Monitoring rules GV.PO/ Governance & Policy rules ID.RA/ Risk Assessment rules PR.AA/ Access Control rules PR.DS/ Data Security rules RC.RP/ Recovery rules RS.AN/ Incident Analysis rules ``` decoders/ 针对非标准日志源的自定义 Wazuh 解码器 XML lists/ CDB 列表源文件(C2 域名、罕见出口端口) mappings/ 机器可读 JSON:规则 ID → NIST CSF + MITRE ATT&CK tests/ 合成日志集(每条规则包含 trigger.log 和 benign.log) evidence_validator.py 静态验证——57 PASS, 0 FAIL test-runner.sh 实时的 wazuh-logtest 测试工具 EVIDENCE_REPORT.md 已签名的最终证据报告 docs/ 部署指南、前置条件、规则目录、故障排除 ## 📊 映射的检测规则(50 条活跃检测) 覆盖 **识别 (ID)**、**保护 (PR)**、**检测 (DE)**、**治理 (GV)** 和 **恢复 (RC)** 职能: ### 覆盖热度图 | NIST 职能 | 覆盖的子类别 | 活跃规则数 | |---|---|---| | **ID — 识别** | ID.RA-03 | 1 | | **PR — 保护** | PR.AA-01, PR.AA-05, PR.DS-01 | 11 | | **DE — 检测** | DE.AE-02, DE.AE-03, DE.CM-01, DE.CM-03, DE.CM-09 | 36 | | **GV — 治理** | GV.PO-01 | 1 | | **RC — 恢复** | RC.RP-01 | 1 | ### 详细规则映射 🪟 = Windows    🐧 = Linux    🌐 = 跨平台 | 规则 ID | NIST CSF v2.0 | MITRE ATT&CK | 告警描述 | 遥测源 | 操作系统 | 严重级别 | |---|---|---|---|---|---|---| | 100002 | PR.AA-05, DE.CM-03 | T1548.003 (Sudo 滥用) | Sudo 提权 | sudo | 🐧 | 中等 | | 100003 | PR.AA-01, DE.CM-03 | T1136.001 (创建本地账户) | 创建新用户账户 | syslog | 🐧 | 中等 | | 100004 | DE.CM-09, PR.DS-01 | T1053.003 (Cron) | Cron 作业修改 | auditd | 🐧 | 中等 | | 100005 | DE.CM-01, DE.AE-03 | T1048 (备用协议外传) | 连接到罕见端口的出站连接 | iptables | 🐧 | 中等 | | 100006 | PR.DS-01, DE.CM-03 | T1003.008 (/etc/passwd 与 /etc/shadow) | 敏感文件读取 | auditd | 🐧 | 高 | | 100007 | DE.AE-02, RS.MA-02 | T1505.003 (Web Shell) | HTTP 中的 Web Shell 指标 | apache/nginx | 🌐 | 高 | | 100008 | DE.AE-03, PR.DS-02 | T1030 (数据传输大小限制) | 大文件外泄(≥100MB) | proxy/web | 🌐 | 中等 | | 100009 | DE.CM-09, RS.MA-02 | T1070.001 (清除 Windows 事件日志) | Windows 审核日志被清除 | windows_eventchannel | 🪟 | 高 | | 100010 | DE.CM-01, DE.AE-02 | T1021.002 (SMB/Windows 管理共享) | PSExec 移动 | windows_eventchannel | 🪟 | 高 | | 100011 | DE.AE-02, DE.CM-03 | T1110.003 (密码喷涂) | 重复身份验证失败 | windows_eventchannel | 🪟 | 中等 | | 100012 | DE.AE-02, RS.AN-08 | T1055 (进程注入) | 进程注入指标 (Sysmon) | windows_eventchannel | 🪟 | 高 | | 100013 | ID.RA-03, DE.CM-01 | T1071.004 (DNS C2) | DNS 查询已知 C2 域名 | windows_eventchannel | 🪟 | 高 | | 100014 | PR.DS-01, PR.AA-05 | T1222.002 (文件权限修改) | 敏感文件权限更改 | auditd | 🐧 | 中等 | | 100015 | DE.CM-09, DE.AE-03 | T1543.003 (Windows 服务) | 在非工作时间安装的服务 | windows_eventchannel | 🪟 | 中等 | | 100018 | DE.CM-01, RS.MA-02 | T1110.001 (密码猜测) | SSH 暴力破解检测 | syslog | 🐧 | 高 | | 100019 | PR.DS-01, DE.CM-09 | T1098 (账户操纵) | /etc/passwd 被修改 | auditd | 🐧 | 高 | | 100020 | PR.DS-01, DE.CM-09 | T1003.008 (/etc/shadow) | /etc/shadow 被修改 | auditd | 🐧 | 严重 | | 100021 | PR.AA-05, DE.CM-09 | T1098.004 (SSH 授权密钥) | SSH authorized_keys 被修改 | auditd | 🐧 | 高 | | 100022 | PR.AA-05, DE.AE-02 | T1548.001 (Setuid 和 Setgid) | 二进制文件上设置 SUID/SGID 位 | auditd | 🐧 | 高 | | 100023 | DE.CM-09, DE.AE-02 | T1547.006 (内核模块) | 已加载内核模块 | syslog | 🐧 | 高 | | 100024 | DE.CM-09, RS.MA-02 | T1070.002 (清除 Linux 日志) | 日志文件被删除或截断 | auditd | 🐧 | 高 | | 100025 | DE.AE-02, DE.CM-03 | T1059 (命令与脚本) | 从 /tmp 或 /dev/shm 执行 | auditd | 🐧 | 中等 | | 100026 | DE.CM-09, PR.DS-01 | T1053.003 (Cron) | Root 级 crontab 修改 | auditd | 🐧 | 严重 | | 100027 | DE.AE-02, DE.CM-03 | T1059.001 (PowerShell) | PowerShell 编码命令 | windows_sysmon | 🪟 | 高 | | 100028 | DE.AE-02, RS.MA-02 | T1059.001 (PowerShell) | PowerShell 下载 Cradle | windows_sysmon | 🪟 | 高 | | 100029 | DE.CM-09, DE.AE-02 | T1053.005 (计划任务) | Schtasks 创建 | windows_security | 🪟 | 中等 | | 100030 | DE.CM-09, PR.DS-01 | T1547.001 (注册表启动项) | 注册表启动项修改 | windows_sysmon | 🪟 | 高 | | 100031 | DE.AE-02, RS.MA-02 | T1490 (禁止系统恢复) | 卷影副本被删除 | windows_security | 🪟 | 严重 | | 100032 | PR.AA-01, DE.CM-03 | T1136.001 (本地账户) | 新建本地管理员账户 | windows_security | 🪟 | 高 | | 100033 | PR.AA-05, DE.CM-09 | T1021.001 (RDP) | 通过注册表启用 RDP | windows_sysmon | 🪟 | 高 | | 100034 | DE.CM-09, DE.AE-02 | T1546.003 (WMI 事件订阅) | WMI 事件订阅 | windows_sysmon | 🪟 | 高 | | 100035 | DE.AE-02, PR.AA-05 | T1003.001 (LSASS 内存) | LSASS 内存访问 | windows_sysmon | 🪟 | 高 | | 100036 | DE.AE-02, RS.MA-02 | T1003 (操作系统凭据转储) | Mimikatz 指标 | windows_sysmon | 🪟 | 严重 | | 100037 | DE.AE-02, DE.CM-01 | T1550.002 (传递哈希) | 传递哈希指标 | windows_security | 🪟 | 高 | | 100038 | DE.AE-02, ID.RA-03 | T1003.006 (DCSync) | DCSync 攻击 | windows_security | 🪟 | 严重 | | 100039 | DE.AE-02, ID.RA-03 | T1558.003 (Kerberoasting) | Kerberoasting 指标 | windows_security | 🪟 | 高 | | 100040 | DE.AE-02, DE.CM-03 | T1110 (暴力破解) | 多个账户被锁定 | windows_security | 🪟 | 中等 | | 100041 | PR.AA-05, DE.CM-03 | T1003.008 (/etc/passwd 与 /etc/shadow) | Linux 上非 root 用户读取 /etc/passwd | auditd | 🐧 | 中等 | | 100042 | DE.AE-02, RS.MA-02 | T1059.004 (Unix Shell) | 产生逆向 Shell | auditd | 🐧 | 高 | | 100043 | DE.AE-02, DE.CM-03 | T1027 (混淆的文件或信息) | Base64 编码的命令 | auditd | 🐧 | 中等 | | 100044 | DE.CM-01, DE.AE-03 | T1071.004 (DNS) | DNS 隧道指标 | windows_sysmon | 🪟 | 高 | | 100045 | DE.CM-01, DE.AE-03 | T1090.003 (多跳代理:TOR) | TOR 出口节点连接 | iptables | 🐧 | 高 | | 100046 | DE.AE-02, DE.CM-01 | T1071.001 (Web 协议) | Beacon 行为 | windows_sysmon | 🪟 | 中等 | | 100047 | DE.AE-02, DE.CM-03 | T1105 (入口工具传输) | Certutil 用于下载文件 | windows_sysmon | 🪟 | 高 | | 100048 | DE.AE-02, DE.CM-03 | T1218 (签名二进制代理执行) | Regsvr32 执行远程脚本 | windows_sysmon | 🪟 | 高 | | 100049 | GV.PO-01, DE.CM-03 | T1078 (有效账户) | 管理员账户在非工作时间使用 | windows_security | 🪟 | 中等 | | 100050 | RC.RP-01, DE.CM-09 | T1490 (禁止系统恢复) | 备份进程失败 | syslog | 🐧 | 高 | | 100051 | DE.CM-09, RS.MA-02 | T1070.001 (清除 Windows 事件日志) | Sysmon 事件日志被清除 |_eventchannel | 🪟 | 高 | | 100052 | DE.AE-02, PR.DS-01 | T1562.001 (削弱防御) | 通过 PowerShell 篡改 Windows Defender | windows_sysmon | 🪟 | 严重 | | 100053 | DE.CM-03, DE.AE-02 | T1036 (伪装) | 从回收站执行 | windows_sysmon | 🪟 | 高 | ## 📚 文档 | 文档 | 描述 | |---|---| | [部署指南](docs/deployment-guide.md) | 在 Wazuh Manager 上逐步安装 | | [前置条件](docs/prerequisites.md) | Windows (Sysmon, 审核策略) 与 Linux (auditd, iptables) 端点配置 | | [检测规则目录](docs/rule-catalog.md) | 所有 50 条规则的详细说明及调优指南 | | [故障排除与经验总结](docs/troubleshooting.md) | Wazuh 规则引擎细节、解码器遮蔽、JSON 解析边界情况 | | [证据报告](tests/EVIDENCE_REPORT.md) | 自动化验证结果——57 PASS, 0 FAIL | | [变更日志](CHANGELOG.md) | 规则新增、修复和版本变更的完整历史 | ## 🗺️ 路线图 - [x] 50 条核心检测映射到 NIST CSF v2.0 - [x] 每条规则填充完整的 MITRE ATT&CK 信息 - [x] 自动化证据测试工具 (57 PASS, 0 FAIL) - [x] 每条规则一个文件的清晰部署结构 - [ ] 集成 Wazuh Active Response 剧本 - [ ] 为 NIST CSF v2.0 合规视图定制 OpenSearch Dashboard - [ ] 集成威胁情报 feed(自动更新 CDB 列表) - [ ] 扩展覆盖到 RC(恢复)和 RS(响应)职能 ## 🤝 贡献 欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解添加新映射、提交新规则或更新威胁情报 feed 的指南。 ## 📄 许可证 本项目采用 Apache License 2.0 许可证——详情请见 [LICENSE](LICENSE) 文件。
标签:Auditd, Cloudflare, MITRE ATT&CK, NIST CSF 2.0, Sysmon, URL发现, Wazuh规则, Windows Server, 二进制发布, 动态调试, 合规映射, 安全检测, 实验室验证, 开源工具, 端点检测, 网络安全框架, 证据报告, 逆向工具, 风险覆盖