BL3IP/detection-as-code
GitHub: BL3IP/detection-as-code
一个基于 GitHub Actions 的 Sigma 检测规则 CI 流水线项目,实现规则版本管理、自动验证和 Splunk 查询编译。
Stars: 0 | Forks: 0
# 07 — 检测即代码流水线
[](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规则, 检测即代码, 目标导入, 网络信息收集, 网络调试, 自动化, 自动笔记, 逆向工具