saifbelaarbi/EVTX-Wazuh-rules

GitHub: saifbelaarbi/EVTX-Wazuh-rules

该项目是一个将真实攻击遥测数据与 Sigma 规则自动化转换为 MITRE ATT&CK 映射的生产级 Wazuh 检测规则集的生成与验证框架。

Stars: 0 | Forks: 0

# 🛡️ EVTX-Wazuh-Rules ### 将真实攻击遥测数据转化为生产级 Wazuh 检测规则集 基于 Windows EVTX 攻击样本与 SigmaHQ 构建、扩展并验证 **映射至 MITRE ATT&CK 的 Wazuh 规则数据库** —— 然后使用两个 Claude 代理接入*任何*新的日志源。 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/saifbelaarbi/EVTX-Wazuh-rules/actions/workflows/ci.yml) [![Docker](https://static.pigsec.cn/wp-content/uploads/repos/cas/05/0593184814e5d744b681af5503ab587a7c37f04bdb8fa85f4942db88b8b58573.svg)](https://github.com/saifbelaarbi/EVTX-Wazuh-rules/actions/workflows/docker-publish.yml) [![Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/cas/70/70bec62c85ee32055f36f791ac05b68d3827d86fd7cdca0a16cd3aaf143cb991.svg)](https://saifbelaarbi.github.io/EVTX-Wazuh-rules/) [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.10%2B-3776AB.svg?logo=python&logoColor=white)](pyproject.toml) ### 📊 [**实时覆盖率仪表板 →**](https://saifbelaarbi.github.io/EVTX-Wazuh-rules/) · 每次流水线运行时自动重建 ![Rules](https://img.shields.io/badge/rules-3%2C260-2ea44f.svg) ![Techniques](https://img.shields.io/badge/MITRE%20techniques-288-e8553e.svg) ![Tactics](https://img.shields.io/badge/ATT%26CK%20tactics-12%2F12-8957e5.svg) ![Tests](https://img.shields.io/badge/tests-208%20passing-2ea44f.svg) ![Wazuh](https://img.shields.io/badge/Wazuh-4.x-005792.svg) [快速开始](#-quick-start) · [工作原理](#-how-it-works) · [资产接入代理](#-asset-onboarding-agents-part-two) · [CLI](#-cli-reference) · [Docker](#-docker)
## ✨ 你将获得什么
### 📦 3,260 条规则 源自 EVTX 生成 + SigmaHQ 转换,每条规则都映射至 MITRE ATT&CK,已分配级别,并与 Wazuh 默认规则去重。 ### 🧪 已验证 208 个单元测试,0 个结构错误,整个数据库的**100% 离线模拟**通过率,并在 CI 中针对运行中的 Wazuh 管理器进行了完整的 Docker-Compose 集成测试。 ### 🤖 代理接入 将 **decoder-agent** 指向任何日志文件夹 → 它将编写 Wazuh 解码器 + 字段 schema;**rule-agent** 随后将其转化为检测规则。
## 📊 当前数据库 | 指标 | 数值 | | 指标 | 数值 | |--------|------:|---|--------|------:| | 总规则数 | **3,260** | | MITRE 战术 | **12 / 12** | | EVTX 生成 | 626 | | MITRE 技术 | **288** | | Sigma 转换 | 2,630 | | 单元测试 | 208 | | 复合/关联 | 4 | | 验证错误 | 0 | | 离线模拟通过率 | **100%** (3,255/3,255) | | 不确定(需在线测试) | 5 |
战术与来源分布 | 战术 | 规则数 | | 来源 | 规则数 | |--------|------:|---|--------|------:| | 执行 | 1,119 | | Sysmon | 2,245 | | 持久化 | 883 | | System | 588 | | 权限提升 | 363 | | PowerShell | 211 | | 凭证访问 | 290 | | Security | 152 | | 命令与控制 | 191 | | Application | 60 | | 发现 | 137 | | 复合规则 | 4 | | 横向移动 | 72 | | | | | 收集 | 51 | | | | | 影响 | 44 | | | | | 防御规避 | 42 | | | | | 数据外传 | 36 | | | | | 初始访问 | 32 | | | |
## 🚀 快速开始 ``` pip install -e . # 1 — 下载 EVTX 样本、Sigma 规则、Wazuh 默认设置 python -m collector download-all python -m collector download-sigma python -m collector download-defaults # 2 — 生成 + 转换 + 验证 python -m generator generate --auto-approve python -m generator convert-sigma --auto-approve --min-level medium python -m generator validate # 3 — 针对源事件进行测试 python -m generator logtest --mode simulate --save # 4 — 部署到 Wazuh python -m generator export --dest /var/ossec/etc/rules/ --view by_tactic sudo systemctl restart wazuh-manager ``` ## 🐳 Docker 整个流水线 —— Wazuh 管理器 + 规则生成 + **实时** logtest —— 只需一条命令: ``` docker compose up --build ``` 或仅运行生成器: ``` docker run -v $(pwd)/database:/app/database saifbelaarbi/evtx-wazuh-rules ``` 已发布的镜像:[`saifbelaarbi/evtx-wazuh-rules`](https://hub.docker.com/r/saifbelaarbi/evtx-wazuh-rules) · 通过 [部署到 GCP](.github/workflows/deploy-gcp.yml) 工作流,只需一键即可在 GCP 上运行(日志将流式传输到 GCS bucket + GitHub artifacts)。 ## 🔍 工作原理 ``` ┌──────────── Part 1: Collector ────────────┐ 7 EVTX repos ─┐ │ download → registry → data/ (gitignored) │ SigmaHQ ─┼──▶ └───────────────────┬───────────────────────┘ Wazuh defaults ─┘ │ ┌──────────── Part 2: Generator ────────────┐ │ parse → analyze → MITRE map → build → │ │ correlate → level → validate → export │ └───────────────────┬───────────────────────┘ ▼ database/rules/ (by_tactic · by_technique · by_source) ``` **Collector** 从 GitHub 拉取 EVTX 样本、SigmaHQ 规则和 Wazuh 默认规则集。 **Generator** 解析事件,通过语义指标映射对 ATT&CK 技术进行分类,构建 Wazuh XML,转换 Sigma YAML,针对现有及内置规则进行去重,分配严重性级别,并导出同一规则集的三个平行视图。
流水线模块 | 阶段 | 模块 | 职责 | |-------|--------|------| | 解析 | `evtx_parser.py` | EVTX/JSON/XML → 归一化事件 | | 分析 | `event_analyzer.py` | 事件 → `DetectionPattern` 对象 | | 映射 | `mitre_mapper.py` | 语义 ATT&CK 分类(指标 → 技术) | | 构建 | `rule_builder.py` | 模式 → Wazuh `` XML | | 关联 | `rule_correlator.py` | 对比数据库及 Wazuh 默认规则进行去重 | | 级别 | `alert_leveler.py` | 严重性 3–15(战术 + 置信度 + 误报反馈) | | 验证 | `validator.py` → `logtest_validator.py` | 结构化 + 事件重放验证 | | 导出 | `exporter.py` | 3 个视图 + 版本控制 + 更新日志 | | Sigma | `sigma_converter.py` / `sigma_analyzer.py` | Sigma YAML → Wazuh(完整修饰符集) |
## 🤖 资产接入代理(第二部分) 除了 Windows EVTX 外,你还可以接入 **任何** Wazuh 开箱即用无法解码其日志的资产 —— 例如防火墙、设备或应用程序 —— 通过 [`agents/`](agents/) 中两个协作的 **Claude Code 子代理** 实现。 ``` raw log folder (one asset) │ ▼ ┌─────────────────┐ _decoder.xml ┌──────────────┐ .xml │ decoder-agent │──▶ + _schema.json ─▶│ rule-agent │──▶ Wazuh rules └─────────────────┘ (field-schema └──────────────┘ parses fields contract) builds detections ``` ``` Use the decoder-agent on data/raw_logs/cisco-asa/ (asset slug: cisco-asa) Use the rule-agent on database/decoders/cisco-asa_schema.json ``` JSON **字段 schema** 是它们之间的契约,因此 rule-agent 只能引用 decoder 实际解析过的字段。代理的 `examples/` 文件夹中附带了一个完整的 Cisco ASA 示例。详见 [`agents/README.md`](agents/README.md)。 ## 🗂️ 规则组织 相同的规则,提供三个视图 —— 根据你的部署需求进行选择: ``` database/rules/ ├── by_tactic/ # one XML per ATT&CK tactic → broad deployment ├── by_technique/ # one XML per technique → surgical tuning └── by_source/ # by Windows log source → Wazuh-native layout ``` 每个视图还包含 `zz_composites.xml`,其中包含跨战术关联规则 —— 之所以这样命名是为了在加载时排在最后,因为 Wazuh 会按字母顺序加载规则文件,并丢弃对尚未加载规则的引用。 ## 🧰 CLI 参考
Collector — python -m collector | 命令 | 描述 | |---------|-------------| | `download-all` | 下载所有已注册的 EVTX 来源 | | `download ` | 下载特定的 EVTX 来源 | | `download-sigma` | 下载 SigmaHQ 规则 | | `download-defaults` | 下载 Wazuh 默认规则 + 解码器 | | `download-atomic` | 克隆 Atomic Red Team 以用于原子化摄取路径 | | `status` / `list-sources` | 显示下载状态 / 已注册的来源 |
Generator — python -m generator | 命令 | 描述 | |---------|-------------| | `generate [--source N] [--auto-approve] [--diff-only]` | 从 EVTX 生成规则 | | `convert-sigma [--min-level LVL] [--platform ...] [--with-negation]` | 转换 Sigma → Wazuh | | `generate-atomic` | 从克隆的 Atomic Red Team 仓库生成 | | `build-composites` | 构建链式关联规则 | | `logtest [--mode simulate\|live] [--save]` | 针对源事件验证规则(simulate 覆盖整个数据库;live 限制为 100 —— 使用 `EVTX_LOGTEST_LIVE_CAP` 覆盖) | | `validate` | 结构验证(出现错误时以非零状态退出) | | `navigator` | 导出 MITRE ATT&CK Navigator 层 JSON | | `export-sigma` | 将 EVTX 派生规则反向转换为 Sigma YAML | | `report-fp` / `fp-summary` | 误报追踪 + 级别建议 | | `changelog` / `stats` / `review` / `approve` | 运维与审查辅助工具 | | `serve` | 启动只读 Web 仪表板(`[web]` 扩展) | | `export --dest PATH [--view VIEW]` | 导出规则用于 Wazuh 部署 |
部署与报告 ``` python -m deployer deploy --src DIR --dest PATH # backup → deploy → health check → rollback python generate_report.py # Markdown reports → docs/ python generate_excel_report.py # Excel tracker (needs openpyxl) ```
## 🛠️ 质量控制 - **ID** — Wazuh 自定义范围 `100000–119999`,按 ATT&CK 战术进行划分,原子化分配。 - **关联** — 每条规则均与数据库、Wazuh 默认规则及同战术同级规则进行比对检查。 - **级别** — 战术基础分 + 检测置信度 + 工具覆盖(mimikatz 13,meterpreter 14)。 - **MITRE 映射** — 指标表 → 事件 ID 默认值 → 路径提示(无需猜测文件夹名称)。 - **验证** — 格式良好性、必需元素、ID 唯一性、悬空的自定义范围父 SID 检测(`if_sid`/`if_matched_sid`)、T-ID 格式。 - **感知 OSRegex** — Wazuh 反转了 PCRE 的点语义(`.` 为字面量,`\.` 为任意字符);所有转义均已集中处理并保持同步。 ## 📦 安装说明 ``` pip install -e . # core pip install -e ".[dev]" # + pytest, ruff, pre-commit pip install -e ".[report]" # + openpyxl (Excel reports) pip install -e ".[web]" # + fastapi, uvicorn (dashboard) ``` **需要** Python 3.10+ · `python-evtx` · `lxml` · `click` · `rich` · `pyyaml` · `requests`。 ## 🙌 致谢 [SBousseaden](https://github.com/sbousseaden) · [mdecrevoisier](https://github.com/mdecrevoisier) · [Yamato Security](https://github.com/Yamato-Security) · [OTRF](https://github.com/OTRF) · [Fox-IT](https://github.com/fox-it) · [NVISO](https://github.com/NVISOsecurity) · [INE Labs](https://github.com/ine-labs) · [SigmaHQ](https://github.com/SigmaHQ) · [Wazuh Inc.](https://github.com/wazuh) ## 📄 许可证与作者 Apache License 2.0 — 详见 [LICENSE](LICENSE)。 由 **[Saif Eddinne Belaarbi](https://github.com/saifbelaarbi)** 构建。
标签:AMSI绕过, Cloudflare, EVTX, MITRE ATT&CK, Wazuh, 威胁检测, 安全运营, 扫描框架, 请求拦截, 逆向工具