gromerosec/google-secops-rule-export
GitHub: gromerosec/google-secops-rule-export
一个轻量级 Python 脚本,用于将 Google SecOps 租户中的所有 YARA-L 规则批量导出为 Excel 表格和 .yaral 备份文件。
Stars: 1 | Forks: 0
# google-secops-rule-export
将 Google SecOps (Chronicle) 租户中的每一条 YARA-L 规则导出至:
1. 一个 **Excel** 工作簿 —— 每条规则占一行,其中 **每个 `meta` 键和每个 `outcome` 变量都会成为单独的一列**。
2. **每条规则一个 `.yaral` 文件** —— 相当于您的规则清单的完整备份。
Google SecOps 没有内置的“导出 / 备份我所有规则”按钮。虽然提供了规则 API,但其文档说明的路径要么是原始端点(需自行摸索),要么是完整的 detection-as-code 技术栈。本项目正是这两者之间的折中方案:仅需一个脚本、一个 service account,且为只读模式。
## 要求
- Python 3.8+
- `pip install secops openpyxl`
- 一个拥有 `chronicle.rules.list` 权限的 Google SecOps service account(例如 **Chronicle API Viewer** 角色)。
## 使用方法
```
python export_secops_rules.py --creds path/to/service_account.json \
--customer-id \
--region us
```
可选标志:
| 标志 | 默认值 |
|------|---------|
| `--project-id` | 从 service account JSON 中读取 |
| `--region` | `us` |
| `--output` | `secops_rules_YYYY-MM-DD.xlsx` |
| `--yaral-dir` | `./yaral_export` |
它是**只读的** —— 它仅调用 `list_rules`,绝不会进行任何修改操作。
## 调整输出(无需 Python 知识)
打开脚本并在顶部附近找到 **EDIT ZONE**。您无需了解 Python 即可更改这些设置 —— 只需切换 `True`/`False` 或在引号之间添加名称:
- `INCLUDE_RULE_TEXT_COLUMN` —— 添加一列,包含每条规则的完整 YARA-L 文本。
- `EXPORT_YARAL_FILES` —— 同时为每条规则写入一个 `.yaral` 文件。
- `EXCLUDE_META_COLUMNS` / `EXCLUDE_OUTCOME_COLUMNS` —— 去除您不需要的列。
- `OUTCOME_MIN_RULES` —— outcome 变量在每条规则中都是临时的,因此一个租户可能会定义数百个变量。只有当某个变量出现在至少这么多条规则中时,它才会成为一列。调高此值可减少列数;将其设置为 `1` 则包含所有变量。
- `META_COLUMNS_FIRST` —— 将某些 meta 列固定在左侧。
## 未涵盖的内容
每条规则是否**已上线 / 告警中 / 已归档**,以及它产生了**多少检测**,这些信息**不会**来自此端点。它们存在于 `list_rule_deployments` 和 `list_detections` 中 —— 这属于单独的导出操作。
— gromero-sec | Detection Engineering | github.com/gromerosec/
标签:Google SecOps, PB级数据处理, Python, YARA-L, 备份工具, 安全运维, 数字取证, 数据导出, 无后门, 自动化脚本, 逆向工具