repins267/exa-tools
GitHub: repins267/exa-tools
一款面向 Exabeam New-Scale SIEM 的 Python 命令行自动化工具包,核心解决检测规则迁移转换、合规审计自动化、Threat Center 案件管理与 SIEM 运维效率问题。
Stars: 0 | Forks: 0
# exa-tools





Python 自动化工具包,专为 Exabeam New-Scale Analytics (NSA) / SIEM 打造。专为需要快速处理检测工程、合规性和内容管理而无需频繁操作 UI 的安全工程师设计。
**检测规则转换** 通过共享的 `SPL → Sigma → EQL` 流水线处理 Splunk SPL 搜索和 SigmaHQ 社区规则,该流水线由 **Field Oracle** 提供支持——这是一个包含 4,258 个 raw→CIM2 字段映射的本地索引,从 Exabeam 自身的解析器定义中提取。每个转换后的字段都会获得一个置信度评级(Oracle / Schema / Passthrough),让您在部署前准确了解哪些内容已验证。
**一步式部署** 通过 API 将转换后的规则直接推送到您的租户。多租户支持允许您使用 `--tenant` 定位任何已注册的环境。
**Threat Center 集成** 为分析师提供了用于案件和警报的完整 CLI 工作流——搜索、分类、更新和鉴定。`exa case qualify` 会拉取触发关联规则、实体历史、上下文表成员资格和分数趋势,然后发出结构化裁定(SUSPECTED_INCIDENT / LIKELY_FP / LEARNING_PHASE_NOISE / NEEDS_INVESTIGATION)以帮助分析师更快地做出决定。
**结果追踪与校准** 记录每次鉴定并追踪分析师随时间做出的决策。`exa case baseline` 使用租户许可的 LTS 保留窗口拉取历史已结案件,计算每个规则和每个实体的误报率,并将该校准结果自动反馈到未来的裁定中。
**检测管理** 可跨租户导出、导入和比对分析规则——支持规则备份、迁移和跨环境差距分析。
**合规审计** 跨 11 个框架运行自动化证据收集——NIST CSF v2.0、CMMC L2/L3、PCI DSS、HIPAA、FedRAMP Moderate、CIS Controls v8、ISO 27001、CJIS、GDPR 和 SOX——并生成包含执行摘要和差距分析的 HTML 和 PDF 报告。查询是使用 **Field Oracle 概念解析** 针对每个租户动态构建的,以确保控制措施与每个环境中实际存在的 `activity_type` 值相匹配。
**上下文表管理** 处理支持 2万条记录批量的 CRUD 操作,包括为 AI/LLM 威胁检测参考表预构建的同步。
一切皆可通过命令行完成。

## 前置条件
- Python 3.12+
- [uv](https://docs.astral.sh/uv/)
- git (`exa update` 需要)
- Windows 凭据管理器 / Keychain (macOS) / Secret Service (Linux)
## 安装
```
git clone
exa-tools
cd exa-tools
uv sync
```
## 首次设置
```
uv tool install -e . # install exa globally from local source
exa configure # set up tenant credentials (stored in keyring)
exa update # clone CIM2 + SigmaHQ repos and build Field Oracle
```
## 快速开始
```
exa configure # set up tenant + credentials
exa update # download reference data + build oracle
exa sigma convert --rule proc_creation_powershell_encoded.yml
exa splunk one 'index=ad CommandLine="*mimikatz*"' --title "Mimikatz Detection"
```
## 命令
每个命令都支持 `--help` 以获取完整的用法和标志描述:
```
exa --help # list all commands
exa sigma convert --help # flags for a specific command
exa splunk deploy --help
```
### `exa configure`
交互式设置:输入您的租户 FQDN、客户端 ID 和客户端密钥。测试连接,将凭据保存到密钥环,并可选地下载 CIM2/SigmaHQ 参考数据。
### `exa update`
```
exa update # sync CIM2 + SigmaHQ repos, build Field Oracle
exa update self # git pull main + uv sync on exa-tools itself
exa update --check # show current SHAs without pulling
```
下载 [Content-Library-CIM2](https://github.com/ExabeamLabs/Content-Library-CIM2)、[new-scale-content-hub](https://github.com/ExabeamLabs/new-scale-content-hub) 和 [SigmaHQ/sigma](https://github.com/SigmaHQ/sigma),然后从 8,278 个解析器定义文件构建 Field Oracle。
### `exa config`
```
exa config set sigma.rules-dir "E:\SigmaHQ\rules\windows"
exa config set default-tenant sademodev22
exa config get sigma.rules-dir
exa config show
```
配置存储在 `~/.exa/config.json`。密钥永远不会写入此文件。
### `exa tables`
```
exa tables list [--name FILTER] [--tenant TENANT] [--json]
exa tables create NAME [--type TYPE] [--key COLNAME] [--columns a,b,c]
[--csv PATH] [--replace] [--tenant TENANT]
--type Context type: Other (default), User, TI_ips, TI_domains,
Device, Domain, IP
--key Key column name (default: "key", or first CSV column)
--columns Extra column names (comma-separated; ignored if --csv given)
--csv CSV file — headers become columns, rows uploaded immediately
--replace Use replace semantics when uploading CSV (default: append)
exa tables delete TABLE [--yes] [--purge-attributes] [--tenant TENANT]
TABLE Table ID or display name
exa tables records list TABLE [--limit N] [--offset N]
[--csv PATH] [--json] [--tenant TENANT]
exa tables records upload TABLE CSV_PATH [--replace] [--key COLNAME]
[--tenant TENANT]
--replace Overwrite entire table (default: append)
exa tables records export TABLE OUTPUT_PATH [--tenant TENANT]
```
### `exa hotkey`
诊断并修复由粗粒度 Network Zones 上下文表条目引起的 Apache Beam/Dataflow 热键风险。已确认可修复 Dataflow worker 不平衡问题(已知客户,作业 cv06f9,运行时间 47 分钟,出现 96 条 HotKeyLogger 警告)。
```
exa hotkey analyze [--ip-field COL] [--name-field COL]
[--json] [--csv] [--tenant TENANT]
Classify Network Zones table entries by Dataflow hot key risk.
COARSE = /8 or /16 (high risk). MEDIUM = /24 (acceptable). FINE = /32.
exa hotkey scan [--lookback N] [--threshold N] [--limit N]
[--ip-field COL] [--name-field COL]
[--json] [--csv] [--tenant TENANT]
Scan recent events for active source IPs per zone.
Flags zones with >N distinct IPs as HOT_KEY_RISK (default threshold: 500).
exa hotkey expand [--zone ZONE] [--lookback N] [--enumerate]
[--dry-run] [--limit N]
[--ip-field COL] [--name-field COL] [--tenant TENANT]
Expand COARSE zone(s) from /8 or /16 to /24-granularity entries.
Writes a rollback manifest to ~/.exa/hotkey-rollback/ before any change.
--zone Target a single zone by name (default: all COARSE zones)
--enumerate Create all /24 subnets in range (default: observed IPs only)
--dry-run Print planned changes without writing anything
exa hotkey autofix [--lookback N] [--threshold N] [--max-zones N]
[--enumerate] [--dry-run] [--json] [--tenant TENANT]
Full automated pipeline: analyze → scan → expand in one command.
--max-zones Safety cap (default 10). Refuses to expand more zones
than this in a single run.
Safe to schedule — non-interactive, exits non-zero on any failure.
exa hotkey rollback [--manifest PATH] [--confirm] [--tenant TENANT]
Restore Network Zones table from the most recent rollback manifest.
Use --manifest to specify an older manifest by path.
Requires --confirm to apply (shows diff first without it).
```
### `exa sigma convert`
```
exa sigma convert --rule proc_creation_powershell_encoded.yml
exa sigma convert --dir ./rules/windows/
exa sigma convert --dir ./rules/ --deploy
exa sigma convert --dir ./rules/ --deploy --tenant sademodev22
```
将 Sigma YAML 规则转换为 Exabeam EQL 关联规则。Field Oracle 为每个字段映射提供置信度评级。使用 `--deploy` 时,会通过 API 在租户上创建关联规则。
短别名:`exa sc`
### `exa sigma deploy`
```
exa sigma deploy --rule proc_creation_powershell_encoded.yml --tenant sademodev22
```
一步完成转换单个 Sigma 规则并部署。短别名:`exa sd`
### `exa sigma browse`
```
exa sigma browse --category process_creation --level high
exa sigma browse --tag t1059 --product windows
exa sigma browse --search "powershell"
```
从本地索引浏览 SigmaHQ 社区规则。按类别、产品、级别、ATT&CK 标签或关键字进行过滤。
### `exa splunk convert`
```
# 批量转换包含 'title' 和 'search' 列的 Excel 文件
exa splunk convert searches.xlsx
# 显示所有包含字段置信度的逐规则警告
exa splunk convert searches.xlsx --verbose
# 自定义输出文件
exa splunk convert searches.xlsx --output rules.json
# 跳过 RGXi 自动压缩(见下文)
exa splunk convert searches.xlsx --no-compress
```
输出一个丰富的表格,显示每个规则的索引、活动类型、EQL 预览、警告数量和部署状态。保存所有 API 就绪的 JSON 负载文件。
#### EQL 溢出自动压缩
Exabeam 的关联规则 API 强制执行 **1024 字符的 EQL 限制**。带有大型通配符值列表的 SPL 搜索(例如 40 个 `file-name=UBR*.py` 条件)通常会超出此限制。转换器不会将这些规则静默标记为 `EQL too long`,而是会自动压缩它们:
- **通配符列表** (`file-name=Foo*`, `file-path=*bar*`):折叠为每个字段一个 `RGXi("a|b|c")` 交替项。每个 sigma 修饰符都会被保留——`startswith` → `^prefix`,`endswith` → `suffix$`,`contains` → 内部片段,middle-glob → `^foo.*bar$`。
- **精确值列表**(无通配符):记录为上下文表候选,并写入 `标签:AMSI绕过, API部署, CIM2, DevSecOps, EQL, Exabeam, Python, SigmaHQ, SOC自动化, Splunk SPL, uv包管理器, 上游代理, 代码示例, 合规管理, 告警分类, 基线校准, 威胁中心, 威胁检测, 字段映射, 安全响应, 安全工程, 安全规则引擎, 安全运营, 扫描框架, 数据分析, 无后门, 网络安全, 规则转换, 误报率, 逆向工具, 邮件枚举, 隐私保护