RasheedFarhat/DaC-Pipeline
GitHub: RasheedFarhat/DaC-Pipeline
该项目实现了一个自动化的检测即代码管道,通过 GitHub Actions 验证并以编程方式部署 SIEM 检测规则到 Wazuh,替代传统手动 UI 操作。
Stars: 0 | Forks: 0
# 检测即代码 CI/CD Pipeline
[](https://github.com/RasheedFarhat/DaC-Pipeline/actions)




## 概述

本仓库包含了一个全自动的检测即代码 pipeline。它将 SIEM 规则管理从手动的、基于 UI 的流程转变为版本控制、自动化且经过测试的工程化工作流。
通过利用 GitHub Actions 和基于 Python 的 API 集成,该架构确保所有行为威胁检测(Sigma/XML)在以编程方式部署到生产 Wazuh SIEM 环境之前,都经过语法和逻辑错误验证。
## 架构与工作流
1. **编写:** 安全分析师在本地编写行为检测规则。
2. **版本控制:** 规则被提交并推送到远程分支。
3. **CI/CD 验证 (GitHub Actions):** - Python 验证引擎 (`check_rule_ids.py`) 扫描代码库。
- 如果检测到重复的规则 ID 或格式错误的 YAML/XML 结构,它将阻止 pipeline 继续。
4. **自动部署:** - 成功合并到 `main` 分支后,部署脚本 (`deploy_rule.py`) 将与 Wazuh API 进行身份验证。
- 它动态遍历规则目录,推送所有新的/更新的配置,并安全地重启 SIEM 分析引擎。
## 当前检测
* **T1220:** XSL 脚本处理(WMIC AppLocker 绕过)
* *(可扩展以接收数百个自定义威胁签名)*
## 战略价值
* **风险缓解:** 消除导致 SIEM 中断的手动“误操作”错误。
* **可追溯性:** 每一次规则修改都通过 Git 提交和 Pull Request 进行跟踪。
* **运维成熟度:** 基础设施管理部署;分析师专注于威胁情报。
## 架构决策与已知限制
**“事实来源”理念**
此检测即代码 pipeline 的核心理念是,Sigma (YAML) 作为所有威胁情报的唯一事实来源。
**pySigma Wazuh 编译器限制**
目前,Python Package Index (PyPI) 上没有发布官方的 `pysigma-backend-wazuh` 包。为了在不依赖不稳定工具的情况下保持 pipeline 的完整性,该架构实现了以下经过深思熟虑的权衡:
1. **验证 (CI):** 在 Pull Request 阶段使用 `pysigma-backend-elasticsearch` 模块对 Sigma 规则进行严格的验证。这证明 YAML 检测逻辑是合理的、结构正确的,并且是完全可编译的。
2. **部署 (CD):** 由于我们无法通过 `pip` 模块动态生成 Wazuh XML,目前兼容 Wazuh 的 `.xml` 文件被维护在 `rules/wazuh/` 目录中。部署脚本 (`deploy_rule.py`) 通过 REST API 以幂等方式将这些 XML 推送到 Wazuh Manager。
*未来路线图:一旦官方发布稳定的 pySigma Wazuh backend,XML 文件将完全从版本控制中移除。CI/CD pipeline 将被更新,以在部署前直接从 Sigma 源动态编译 XML artifacts。*
标签:Detection-as-Code, DevSecOps, PB级数据处理, Wazuh, 上游代理, 安全运维, 逆向工具