pySigma
pySigma是一个 python 库,可以解析 Sigma 规则并将其转换为查询。它是传统 Sigma 工具链 (sigmac) 的替代品,设计更加简洁,并且几乎经过全面测试。支持转换为查询语言的后端和用于转换日志数据模型规则的处理管道被分离到专用项目中,以保持 pySigma 本身苗条且与供应商无关。请参阅下面的“相关项目”部分以获取概述。
入门
要开始使用pySigma,请使用您选择的 python 包管理器安装它。例子:
pip install pysigma pipenv install pysigma poetry add pysigma
可以在此处找到包含一些使用示例的文档。
特征
pySigma相比,带来了一些额外的功能sigmac,以及一些变化。
pySigma 和 sigmac 的修饰符比较
修饰符 | 采用 | sigmac legacy |
---|---|---|
contains | 该值匹配字段中的任何位置(字符串和正则表达式) | X |
startswith | 该值应位于字段内容(字符串和正则表达式)的开头 | X |
endswith | 该值应位于字段内容(字符串和正则表达式)的末尾 | X |
base64 | 该值使用 Base64 编码 | X |
base64offset | 如果某个值可能出现在 base64 编码值中的某处 则表示可能会根据总体值中的位置而改变 |
X |
wide | 将值转换为 UTF16-LE 编码 | X |
re | 值被后端作为正则表达式处理 | X |
cidr | 值被后端作为 IP CIDR 处理 | |
all | 此修饰符将 OR 逻辑更改为 AND | X |
lt | 字段小于值 | |
lte | 字段小于或等于值 | |
gt | 字段大于值 | |
gte | 字段大于或等于值 | |
expand | 用于扩展值中占位符的修饰符。它替换占位符字符串 (%something%) |
概述
转换概述
管道
文档中描述了更多详细信息。
测试
pySigma 使用 pytest 作为测试框架。只需运行pytest
即可运行所有测试。运行pytest --cov=sigma
以获取覆盖率报告。
建筑
贡献
维护者
该项目目前由以下人员维护:
- Thomas Patzke thomas@patzke.org
-
相关项目
pySigma 不是一个试图支持除核心之外的所有内容的单体库。扩展 pySigma 的附加包提供了对目标查询语言和日志数据模型的支持:
sigma-cli : 基于 pySigma 转换 Sigma 规则的命令行界面。(正在进行中,尚未在 PyPI 上)
- pySigma-后端-splunk:
- pySigma-pipeline-sysmon
- pySigma-pipeline-crowdstrike
如果您选择的 Python 包管理器未另行提及,所有包也可以从 PyPI 安装。