muchdogesec/sigmahq2siemrules

GitHub: muchdogesec/sigmahq2siemrules

这是一个基于 GitHub Action 的上传器,能够自动将 SigmaHQ 仓库的最新检测规则增量同步至 SIEMRULES 平台。

Stars: 0 | Forks: 0

# 将 Sigmahq2siemrules 转换为 SIEM 规则 一个基于 GitHub Action 的上传器,用于将 Sigma 检测规则从 [SigmaHQ 仓库](https://github.com/SigmaHQ/sigma) 自动同步到 SIEMRULES API。 ## 概述 该工具监控外部仓库中 Sigma 规则文件(`.yml`/`.yaml`)的更改,并自动将其上传到 SIEMRULES 实例。它会跟踪已处理的规则,并在后续运行中仅上传新增或修改的规则。 ## 功能 - **增量处理**:跟踪上次处理的提交,避免重新上传未更改的规则 - **并发上传**:使用线程池进行高效的并行文件上传 - **作业监控**:自动监控上传作业状态直到完成 - **检测包集成**:可选择将上传的规则添加到特定的检测包 - **GitHub Actions 集成**:生成工作流摘要和工件 - **错误处理**:全面的错误跟踪和报告 - **废弃规则过滤**:可选择跳过废弃目录中的规则 ## 环境变量 ### 必需变量(Action 运行时) | 变量 | 描述 | 示例 | |----------|-------------|---------| | `SIEMRULES_BASE_URL` | SIEMRULES API 的 Base URL | `https://api.siemrules.com` | | `SIEMRULES_API_KEY` | 用于 SIEMRULES 身份验证的 API key | `your-api-key-here` | | `DETECTION_PACK_ID` | 要添加规则到的检测包的 UUID | `550e8400-e29b-41d4-a716-446655440000` | ### 可选变量(本地运行时) | 变量 | 默认值 | 描述 | |----------|---------|-------------| | `GITHUB_REPO_URL` | `https://github.com/SigmaHQ/sigma` | 要克隆和处理的外部仓库 URL | | `PROCESS_DEPRECATED` | `false` | 是否处理 `deprecated` 或 `unsupported` 目录中的规则。设置为 `true`、`1`、`y` 或 `yes` 以启用 | | `MAX_WORKERS` | `10` | 用于上传和状态检查的并发工作线程数 | | `STATUS_CHECK_INTERVAL` | `10` | 作业状态检查之间的等待秒数 | | `MAX_STATUS_CHECKS` | `180` | 超时前的最大状态检查轮数 | ## 使用方法 ### 命令行参数 ``` python actions/uploader.py [OPTIONS] ``` **选项:** - `--start-commit`:用于 diff 比较的起始提交 SHA(默认为上次处理的提交或空树) - `--end-commit`:用于 diff 比较的结束提交 SHA(默认为 HEAD) ### 使用示例 ``` # 处理自上次运行以来的所有更改 (使用 last_commit.txt) python actions/uploader.py # 处理特定提交之间的更改 python actions/uploader.py --start-commit abc123 --end-commit def456 # 从特定提交处理到 HEAD python actions/uploader.py --start-commit abc123 ``` ### GitHub Actions 工作流 ## 工作原理 1. **仓库克隆**:克隆外部 Sigma 仓库 2. **差异计算**:比较上次处理的提交与 HEAD 以查找更改的 YAML 文件 3. **过滤**:可选择过滤掉 `deprecated` 或 `unsupported` 目录中的规则 4. **规则上传**:将每条规则上传到 SIEMRULES API(或修改现有规则) 5. **状态监控**:轮询作业状态,直到所有作业完成或超时 6. **检测包**:将成功上传的规则添加到指定的检测包 7. **工件**:将结果保存到 JSON 文件并生成 GitHub 工作流摘要 8. **提交跟踪**:保存当前提交 SHA 以供下次运行使用 ## 生成的工件 - `artifacts/succeeded_jobs.json` - 成功上传的规则列表 - `artifacts/failed_jobs.json` - 失败的上传列表及错误详情 - `artifacts/badges.json` - 用于在 README 中显示的徽章数据 - `artifacts/last_commit.txt` - 上次处理的提交 SHA ## 依赖项 - `requests` - 用于 API 调用的 HTTP 客户端 - `PyYAML` - YAML 解析和操作 - `gitpython` - Git 仓库操作 ## 退出码 - `0` - 成功(至少有一次成功上传 或 没有失败) - `1` - 失败(没有成功上传 且 至少有一次失败) - `19` - Git/文件检索错误
标签:AMSI绕过, API集成, Cybersecurity, DevSecOps, GitHub Actions, Python, 上传器, 上游代理, 可观测性, 同步工具, 增量处理, 威胁检测, 字符串匹配, 并行处理, 恶意代码分类, 无后门, 网络安全研究, 网络调试, 自动化, 自动笔记, 规则同步, 逆向工具