muchdogesec/sigma2stix
GitHub: muchdogesec/sigma2stix
将 SigmaHQ 仓库中的 Sigma 检测规则批量转换为 STIX 2.1 对象的命令行工具,解决威胁情报平台与 SIEM 规则格式不兼容的问题。
Stars: 12 | Forks: 3
# sigma2stix
[](https://codecov.io/gh/muchdogesec/sigma2stix)
## 摘要
一个命令行工具,用于将 SigmaHQ 仓库中的 Sigma Rules 转换为 STIX 2.1 对象。
此仓库还包含 GitHub Actions,用于将规则上传到 SIEM Rules(同时创建检测包)和 Cyber Threat Exchange(至 SigmaHQ feed)。
注意:如果您只想将现有的 Sigma Rule 转换为 STIX,[请查看 txt2detection](https://github.com/muchdogesec/txt2detection/)。
## 开始之前...

[您可以在 SIEM Rules 中访问由 sigma2stix 生成的所有规则](https://www.siemrules.com)。
## 概述
[SigmaHQ/sigma](https://github.com/SigmaHQ/sigma)
Sigma Rules 以 YAML 格式编写,并作为 YAML 文件分发。
公共规则(经 Sigma 团队批准)存储在主 Sigma 仓库中,嵌套在 `rules*` 目录下,例如
`rules-emerging-threats/2023/Exploits/CVE-2023-20198/cisco_syslog_cve_2023_20198_ios_xe_web_ui.yml`
https://github.com/SigmaHQ/sigma/blob/master/rules-emerging-threats/2023/Exploits/CVE-2023-20198/cisco_syslog_cve_2023_20198_ios_xe_web_ui.yml
在 dogesec,我们处理的大多数数据都是 STIX 2.1 格式。这是因为下游威胁情报工具能够理解 STIX。
因此,sigma2stix 的工作原理是将 Sigma Rules 转换为 STIX 2.1 对象。
sigma2stix 提供两种模式:
1. 从 [SigmaHQ/sigma repository](https://github.com/SigmaHQ/sigma) 下载最新规则,并将每条规则转换为一系列 STIX 对象
2. 接受 YAML 文件形式的 Sigma rule,并将其转换为 STIX indicator 对象
## 安装脚本
要安装 sigma2stix;
```
# 克隆最新代码
git clone https://github.com/muchdogesec/sigma2stix
# 创建 venv
cd sigma2stix
python3 -m venv sigma2stix-venv
source sigma2stix-venv/bin/activate
# 安装 requirements
pip3 install -r requirements.txt
```
### 配置选项
sigma2stix 有各种设置,定义在 `.env` 文件中。
要创建该文件的模板:
```
cp .env.example .env
```
要了解更多关于如何设置这些变量及其作用的信息,请阅读 `.env.markdown` 文件。
## 运行脚本
### 模式 1: SigmaHQ/sigma repository -> STIX
```
python3 sigma2stix.py \
--mode sigmahq \
--sigma_version_tag XXXX
```
其中;
* `mode`(必需):如果您想从 [SigmaHQ/sigma repository](https://github.com/SigmaHQ/sigma) 下载最新规则,应始终为 `sigmahq`
* `sigma_version_tag`(可选):是 SigmaHQ/sigma 仓库中标签的名称([此处列出了标签](https://github.com/SigmaHQ/sigma/releases)),例如 `r2024-12-19`。如果未传递任何值,将克隆 master 分支。
请注意,此脚本仅支持格式为 `rYYYY-MM-DD` 的 Sigma Rule 版本标签。
每次运行时,所有对象都将在 `stix2_objects` 目录中重新生成
#### 示例 1.1: 下载最新版本
```
python3 sigma2stix.py \
--mode sigmahq
```
#### 示例 1.2: 下载特定版本
```
python3 sigma2stix.py \
--mode sigmahq \
--sigma_version_tag r2024-12-19
```
## 映射信息
要了解 sigma2stix 如何将数据映射到 STIX 对象,[请参阅 txt2detection 文档](https://github.com/muchdogesec/txt2detection/)。
## 回填旧版本
您可以使用以下脚本获取已发布的每个 Sigma 版本的规则包
```
sh utilities/backfill_all.sh
```
如果您只想要最新版本的包,只需在终端中运行 `utilities/backfill_all.sh` 的最后一行。
## 实用的辅助工具
* 生成 STIX 2.1 对象:[stix2 Python Lib](https://stix2.readthedocs.io/en/latest/)
* STIX 2.1 规范:[STIX 2.1 docs](https://docs.oasis-open.org/cti/stix/v2.1/stix-v2.1.html)
* [GitHub 上的 SigmaHQ](https://github.com/SigmaHQ)
## 支持
[通过 dogesec 社区提供有限支持](https://community.dogesec.com/)。
## 许可证
[Apache 2.0](/LICENSE)。
标签:AMSI绕过, Claude, Cloudflare, CVE检测, MITRE ATT&CK, Python, SigmaHQ, Sigma规则, STIX 2.1, STIX对象, YAML, 威胁情报, 威胁检测, 安全库, 开发者工具, 数据转换, 无后门, 目标导入, 网络安全, 规则转换器, 逆向工具, 邮件枚举, 隐私保护