sigma-cli安装与使用
Sigma-cli规则转化
SigmaHQ/sigma-cli: The Sigma command line interface based on pySigma (github.com)
这是使用 pySigma 库的 Sigma 命令行界面。用于管理、列出和将 Sigma 规则转换为查询语言。
源码安装。
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install poetry -i https://pypi.tuna.tsinghua.edu.cn/simple
poetry install
poetry shell 激活使用
1.使用方法
sigma convert -t <backend> -p <processing pipeline 1> -p <processing pipeline 2> [...] <directory or file>
-t <backend>:
含义: 指定目标后端,表示将 Sigma 规则转换为哪个查询语言。
例如,要将规则转换为 Elasticsearch DSL,可以使用 -t es-qs。
-p <processing pipeline>:
含义: 指定一个或多个处理管道,用于对 Sigma 规则进行预处理或转换。
使用方法: 可以添加多个处理管道,例如 -p pipeline1 -p pipeline2。
<directory or file>:
含义: 指定要转换的 Sigma 规则的文件或目录。
使用方法: 可以是单个文件路径或包含多个 Sigma 规则文件的目录路径。
2. 例子
sigma convert -t splunk -f plain -o output.txt example.yml
-O 或 --backend-option 参数以 key=value 对的形式向后端传递选项。
-o 参数指定输出文件
-f 选项指定转换格式
-f plain:指定输出格式为纯查询。
-o output.txt:将输出保存到 output.txt 文件中。
example.yml:要转换的 Sigma 规则文件。
后端可以支持不同的输出格式,
这些格式可以使用 sigma list formats <backend> 列出
相关命令
在进行转换之前,必须使用以下命令安装所需的后端。
要列出所有可用的插件 sigma plugin list
选择安装一个插件 sigma plugin install <backend>
列出可用的转换后端和处理管道可以使用 sigma list 命令
处理管道的作用
-p sysmon 指定处理管道为 Sysmon,表示在转换之前对规则进行预处理,使其适用于 Sysmon 日志格式。
处理管道的实际作用取决于具体的实现,但通常包括:
1. 标准化字段:将 Sigma 规则中的标准字段转换为目标系统中的字段名称。
2. 转换值:将某些值转换为目标系统中适用的格式或编码。
3. 添加特定逻辑:在规则中添加适用于特定日志格式的逻辑或条件。
假设你有一个 Sigma 规则文件 example.yml,并且你想将其转换为 Elasticsearch 查询语法,同时使用两个处理管道 pipeline1 和 pipeline2,可以使用以下命令:
sigma convert -t es-qs -p pipeline1 -p pipeline2 example.yml
后端 (backend):
后端指定了目标系统,例如 Elasticsearch、Splunk、Graylog 等。每个后端都有特定的转换逻辑,将 Sigma 规则转换为对应系统的查询语法。
处理管道 (processing pipeline):
处理管道用于在转换之前或之后对 Sigma 规则进行处理,例如字段映射、值转换等。处理管道可以帮助将规则调整到特定的日志格式或数据模型。
目录或文件 (directory or file):
可以是一个具体的 Sigma 规则文件,也可以是包含多个 Sigma 规则文件的目录。Sigma 会递归处理指定目录中的所有规则文件。
使用尝试
所有规则文件:Release Release r2024-05-13 · SigmaHQ/sigma (github.com)
首先下载rules到目录下

尝试解析一个rules文件,为elastic查询
查看所有插件—可用的应该是elasticsearch, 管道还不懂怎么用,先不用了
安装此插件
sigma plugin install elasticsearch
之后根据命令查看支持的输出格式:
sigma list formats -h
sigma list formats [OPTIONS] {lucene|eql|esql}
单个规则转化
尝试转化一个yml为siem_rule的格式
siem_rule | Elasticsearch EQL queries as SIEM Rule.
出错,发现elasticsearch是插件并不是指定的输出格式。


要指定后端pipe.
sigma convert -t eql --without-pipeline -f siem_rule -o output.json /home/zzl/Desktop/sigma2els/rules/linux/builtin/lnx_apt_equationgroup_lnx.yml

转化成功。
尝试批量
sigma convert -t eql --without-pipeline -f siem_rule -o output.json /home/zzl/Desktop/sigma2els/rules/linux/
也可行
可以直接实现将所有yml文件转化为规则。可能有个别转化出错。
相关参数值
插件列表

Sigmacli输出格式
安装elasticsearch后,支持以下格式。


浙公网安备 33010602011771号