pySigma 是一个 Python 库,用于解析 Sigma 规则并将其转换为查询。它是旧版 Sigma 工具链(sigmac)的替代品,设计更加简洁,并且几乎经过了完整的测试。
用于支持转换为查询语言的后端以及用于转换日志数据模型规则的处理管道被分离到专门的项目中,以保持 pySigma 本身轻量且与供应商无关。请参阅下面的 相关项目 部分以获取概览。
要开始使用 pySigma,你需要 Python 3.11 或更高版本。使用你选择的 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 钩子。
欢迎提交拉取请求。请随时提出任何问题/PR 作为讨论点。
Micah Babinski 的这篇博客文章从开发者的角度解释了整个过程。
该项目目前由以下人员维护:
pySigma 并不是一个试图支持一切的单体库,而只是核心。对目标查询语言和日志数据模型的支持由扩展 pySigma 的附加包提供:
除非另有说明,所有包也可以通过你选择的 Python 包管理器从 PyPI 安装。
GNU Lesser General Public License v2.1。有关详细信息,请参阅此处的完整许可证文件。