B0bTheSkull/sigmaforge

GitHub: B0bTheSkull/sigmaforge

基于 pySigma 封装的轻量 CLI 工具,帮助检测工程师快速验证 Sigma 规则并转换为多种 SIEM 查询语言。

Stars: 0 | Forks: 0

# SigmaForge ![Python](https://img.shields.io/badge/python-3.10%2B-blue?style=flat-square&logo=python) ![License](https://img.shields.io/badge/license-MIT-green?style=flat-square) ![Status](https://img.shields.io/badge/status-alpha-orange?style=flat-square) ## 它的功能 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解析, 上游代理, 威胁检测, 安全工程, 安全检测, 安全编排, 开源安全工具, 文档结构分析, 无后门, 查询语言转换, 目标导入, 网络安全, 规则校验, 规则转换, 逆向工具, 逆向工程平台, 隐私保护