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后,支持以下格式。

 

 

posted @ 2024-07-01 19:59  zzl14  阅读(208)  评论(0)    收藏  举报