pySigma 是一个将 Sigma 规则解析并转换为查询的 Python 库。它取代了传统 Sigma 工具链(sigmac),设计更为简洁,且几乎经过了全面测试。将规则转换为查询语言的后端,以及将规则转换到日志数据模型的处理管道,均被拆分到独立项目中,以保持 pySigma 本身精简且与厂商无关。请参阅下方相关项目部分以获取概览。
要开始使用 pySigma,您需要 Python 3.10 或更高版本。使用您选择的 Python 包管理器进行安装。示例:
pip install pysigma
pipenv install pysigma
poetry add pysigma
包含一些使用示例的文档可在此处找到。
使用 pySigma 创建后端变得更加容易。我们建议使用“Cookie Cutter 模板”,并查看本 README 的“相关项目”部分中列出的现有后端。
与一体化 sigmac 相比,pySigma 带来了许多附加功能以及一些变更。
sigma-cli 是 sigmac 在命令行转换方面的对等替代工具
使用 sigma list modifiers
使用 sigma plugin list --plugin-type backend
转换概览

管道

更多详细信息已在文档中描述。
pySigma 使用 pytest 作为测试框架。只需运行 pytest 即可运行所有测试。运行 pytest --cov=sigma 可获取覆盖率报告。
要构建您自己的包,请运行 poetry build。
要对代码进行 lint 检查,请运行 poetry run black。要检查 lint 错误,请运行 poetry run black --check。
该项目还使用 pre-commit,它由 poetry 作为开发依赖的一部分安装。克隆仓库并安装依赖后,运行 poetry run pre-commit install 可安装 git hooks。
欢迎提交 Pull Requests。请随时将任何问题/PR 作为讨论点提出。
Micah Babinski 撰写的这篇博客文章从开发者的角度解释了这一过程。
该项目目前由以下人员维护:
pySigma 并不是一个试图支持所有功能的单体库,而是仅包含核心功能。对目标查询语言和日志数据模型的支持由扩展 pySigma 的附加包提供:
除非您选择的 Python 包管理器另有说明,否则所有包也可以从 PyPI 安装。
GNU 宽通用公共许可证 v2.1。详情请参阅位于此处的完整许可证文件。