BL3IP/detection-as-code

GitHub: BL3IP/detection-as-code

一个基于 GitHub Actions 的 Sigma 检测规则 CI 流水线项目,实现规则版本管理、自动验证和 Splunk 查询编译。

Stars: 0 | Forks: 0

# 07 — 检测即代码流水线 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/0e/0eec1a2a0e407a10222accb35bebc4063822efad15a6917bae8b971f421fc383.svg)](https://github.com/BL3IP/detection-as-code/actions/workflows/detections-ci.yml) 像管理软件一样管理检测规则:版本控制的 **Sigma** 规则配合 **GitHub Actions CI 流水线**,在每次 push/PR 时对它们进行 lint、验证,并转换为 SIEM 查询。 ## 目标 展示现代的“检测工程”工作流 —— 检测规则保存在 Git 中,自动验证并 编译为 SIEM 就绪的查询,让规则像应用代码一样受到严格规范地发布。 ## 内容说明 | 路径 | 说明 | |------|-----------| | [`rules/sigma/`](./rules/sigma) | Sigma 检测规则(certutil 下载,PowerShell EncodedCommand) | | [`.github/workflows/detections-ci.yml`](./.github/workflows/detections-ci.yml) | CI:lint → 验证 → 转换 → 上传 artifact | | [`dist/splunk-detections.spl`](./dist/splunk-detections.spl) | 转换后的 Splunk 查询(构建输出) | ## 流水线(`detections-ci.yml`) 在每次 push/PR 时:安装 `sigma-cli` 及 SigmaHQ 验证器 → `sigma check rules/` (lint) → `sigma convert -t splunk rules/` (编译) → 将 `.spl` 作为构建 artifact 上传。损坏或 不符合规范的规则在发布前就会导致构建失败。 ## 精确设置命令 ``` pip install sigma-cli pysigma-backend-splunk pysigma-validators-sigmahq sigma check rules\ # lint/validate sigma convert -t splunk --without-pipeline rules\ # compile to Splunk SPL ``` ## 运行效果验证 `sigma check rules/` → **`Found 0 errors, 0 condition errors and 0 issues`**(同时也通过了 SigmaHQ 验证器)。两条规则均成功编译为 Splunk: ``` Image="*\\certutil.exe" OR OriginalFileName="CertUtil.exe" CommandLine IN ("*urlcache*","*verifyctl*") CommandLine="*http*" Image IN ("*\\powershell.exe","*\\pwsh.exe") CommandLine IN ("* -enc *","* -encodedcommand *") ``` 将该仓库 push 到 GitHub 会自动运行 CI(绿色对号 = 规则已验证 + 已编译)。 ## 截图 参见 [`./screenshots/`](./screenshots)。添加内容包括:绿色的 Actions 运行记录和 `0 issues` 输出。 ## 我的自定义扩展 - 针对检测规则的完整 CI/CD 流程(验证 **并** 编译 + 上传 artifact),而不仅仅是一个 linter。 - 规则通过了严格的 **SigmaHQ 验证器**(正确的 ATT&CK 战术+技术标签,没有 冗余的 MITRE 链接)—— 达到生产级质量,而不仅仅是语法正确。 - 自然地扩展了项目 **02-sigma-rule**:相同的编写标准,现在实现了自动化。 ## 简历要点 - 实施了 **检测即代码** CI/CD 流水线(GitHub Actions),在每次提交时对 Sigma 规则进行 lint、验证并 编译为 Splunk 查询,遇到不符合规范的规则会导致构建失败。 - 编写了映射 ATT&CK 的 Sigma 检测规则(T1105 certutil 下载,T1059.001 encoded PowerShell), 以零问题通过了 SigmaHQ 验证器套件。 - 根据版本控制的规则自动生成 SIEM 就绪的查询 artifact。 ## 进阶想法 - 添加一个测试框架,使用样例事件日志运行规则(真/假阳性测试用例)。 - 多后端转换(Sentinel KQL,Elastic)+ 在合并时自动部署到 SIEM。 - PR diff 评论中展示每个规则的编译查询变更。 status: ✅ complete & tested ``` ✅ PROJECT COMPLETE & FULLY TESTED in its isolated folder. All works. Ready for portfolio. ```
标签:DNS 反向解析, GitHub Actions, Reconnaissance, Sigma规则, 检测即代码, 目标导入, 网络信息收集, 网络调试, 自动化, 自动笔记, 逆向工具