mrun1corn/yara-rule-automation
GitHub: mrun1corn/yara-rule-automation
YARA 规则自动化工具,从多个 GitHub 仓库批量克隆、分类、去重并索引 YARA 规则文件,支持本地运行和 GitHub Actions 工作流。
Stars: 0 | Forks: 0
# YARA 规则自动化
本项目会克隆 `repos.txt` 中列出的 GitHub 仓库,扫描 YARA
文件,根据 `categories.json` 中的类别对匹配的规则进行分组,检测完全
重复的项,并生成一个 JSON 索引。
## 本地使用
无需提供额外参数即可运行完整的自动化流程:
```
python yara_rule_automation.py
```
该脚本将会:
- 从 `repos.txt` 克隆新的仓库到 `repos/`
- 拉取已有仓库的更新
- 同步 `yara-rules/categories/` 下的分类规则文件
- 生成 `yara_rule_index.json`
- 通过 SHA-256 检测重复的 YARA 文件
- 如果安装了 `yara` CLI,则会自动验证 YARA 语法
`repos/` 下克隆的源仓库会被 Git 忽略。`yara-rules/` 下生成的
规则和 `yara_rule_index.json` 可以被提交;JSON
索引会被格式化输出,并使用 Git LFS 进行跟踪,因为它的大小可能会超出
GitHub 的一般文件大小限制。
## GitHub Actions
在 GitHub Actions 标签页中使用 **Update YARA Rules** 工作流。
该工作流通过 `workflow_dispatch` 按需运行,生成分类
规则,写入运行摘要,将生成的 `yara-rules/` 目录以及
`yara_rule_index.json` 作为名为 `yara-rules-output` 的可下载构件上传,并
将发生变动的生成文件提交回仓库。
在本地计算机推送之前,请安装一次 Git LFS:
```
git lfs install
```
默认情况下,生成的规则文件会进行原位同步。该脚本使用
之前的 `yara_rule_index.json` 来快速跳过未更改的类别副本,
覆盖已更改的文件,复制新文件,并删除过期的文件。仅当您希望
删除并从头重建类别输出时,才使用
`--clean-output`。
当源仓库的 Git HEAD 未发生变化时,该脚本会复用该
仓库之前的索引条目,而不是再次扫描每个 YARA 文件。这
使得在首次生成索引后,重复运行工作流的速度会快得多。
## 输入
- `repos.txt`:每行一个 GitHub 仓库 URL(忽略空行和 `#` 注释)
- `categories.json`:一个 JSON 字典,其中的键是类别名称,值是用于匹配的别名术语列表
标签:AMSI绕过, DNS 反向解析, Python, YARA, 云安全监控, 云资产可视化, 威胁检测, 无后门, 网络安全审计, 自动化运维, 逆向工具, 静态分析