B0bTheSkull/sigmaforge
GitHub: B0bTheSkull/sigmaforge
基于 pySigma 封装的轻量 CLI 工具,帮助检测工程师快速验证 Sigma 规则并转换为多种 SIEM 查询语言。
Stars: 0 | Forks: 0
# SigmaForge



## 它的功能
SigmaForge 将 [pySigma](https://github.com/SigmaHQ/pySigma) 生态系统封装在一个 CLI 中,该 CLI 在编写规则时非常易于使用,其输出对人类和 CI 流水线都很友好。
**三个主要任务:**
- **Validate** — 根据官方规范解析 Sigma 规则,在语法和结构错误进入生产环境之前将其暴露出来。
- **Convert** — 将规则转换为你的 SIEM 查询语言。v0.1 版本支持 Splunk SPL 和 Elastic Lucene,更多功能正在规划中。
- **Inspect** — 展示规则的实际作用(logsource、detection 摘要),而无需手动阅读 YAML。
## 安装
```
git clone https://github.com/B0bTheSkull/sigmaforge.git
cd sigmaforge
pip install -e .
```
或者,一旦发布到 PyPI:
```
pip install sigmaforge
```
## 使用说明
### 验证规则
```
sigmaforge validate examples/rules/ssh_failed_password.yml
```
```
OK ssh_failed_password.yml — valid
ID: 1a2b3c4d-5e6f-7890-abcd-ef1234567890
Title: Failed SSH Password Authentication
Status: experimental
Logsource: product=linux, service=auth
Detection: 1 selection(s), condition: failed_password
```
退出码 `0` 表示有效,`1` 表示无效,`2` 表示用法错误。你可以将其放入 pre-commit hook 或针对你的检测仓库中的每个规则运行的 CI 步骤中。
### 将规则转换为 Splunk SPL
```
sigmaforge convert examples/rules/web_scanner_useragent.yml --target splunk
```
```
=== web_scanner_useragent.yml -> splunk ===
cs-user-agent IN ("*Nikto*", "*sqlmap*", "*nuclei*", "*dirbuster*", "*gobuster*", "*wfuzz*", "*masscan*", "*Nmap Scripting Engine*")
```
### 转换为 Elastic Lucene
```
sigmaforge convert examples/rules/suspicious_sudo.yml --target elastic
```
### 列出支持的目标
```
sigmaforge list-targets
```
## 为什么开发这个工具
Sigma 是检测工程中最接近可移植规则格式的标准——官方的 `sigma-cli` 很棒,但我想要在规则编写循环中更轻量、更易于交互的工具。当我在迭代一个检测并希望快速得到“这能解析吗 / 它在 Splunk 中长什么样?”的结果时,SigmaForge 是我的首选。
这也是继 [LogHound](https://github.com/B0bTheSkull/loghound) 和 [HoneyNet](https://github.com/B0bTheSkull/honeynet) 之后,我的检测技术作品集的顺理成章的下一步——从“在日志中查找异常”转变为“将异常表达为可移植、可审查的检测逻辑”。
## 示例规则
`examples/rules/` 目录包含三个反映了我其他工具中真实检测的规则,因此你可以看到完整的流水线:
| 规则 | 反映来源 | MITRE |
|------|---------|-------|
| `ssh_failed_password.yml` | LogHound auth-log 暴力破解 | [T1110.001](https://attack.mitre.org/techniques/T1110/001/) |
| `suspicious_sudo.yml` | LogHound sudo 提权 | [T1548.003](https://attack.mitre.org/techniques/T1548/003/) |
| `web_scanner_useragent.yml` | LogHound web-log 扫描器检测 | [T1595.002](https://attack.mitre.org/techniques/T1595/002/) |
## 路线图
- [ ] Chronicle YARA-L 后端
- [ ] Microsoft Sentinel KQL 后端
- [ ] `test` 子命令:针对示例日志文件运行规则并报告匹配情况
- [ ] `template` 子命令:从示例日志行搭建新规则
- [ ] 批量目录验证(`sigmaforge validate rules/`)
- [ ] 用于 SIEM 流水线集成的 JSON 输出模式
## 贡献
欢迎提交 Issues 和 PR。对于新的后端,请在 `tests/test_converter.py` 中添加相应的测试。
## 许可证
MIT — 详见 [LICENSE](LICENSE)
标签:AMSI绕过, DevSecOps, Elastic Lucene, FTP漏洞扫描, MIT License, pySigma, Python, Sigma规则, Splunk SPL, SSH暴力破解检测, URL发现, Web扫描检测, YAML解析, 上游代理, 威胁检测, 安全工程, 安全检测, 安全编排, 开源安全工具, 文档结构分析, 无后门, 查询语言转换, 目标导入, 网络安全, 规则校验, 规则转换, 逆向工具, 逆向工程平台, 隐私保护