rearc/detection-engineering-skill
GitHub: rearc/detection-engineering-skill
一个 Databricks Genie Code 技能插件,通过自然语言交互引导 Agent 完成安全遥测数据的基线评估、细分分析和检测规则回测,最终自动打包生成有据可查的检测规则。
Stars: 0 | Forks: 0
# Databricks Genie Code 的检测工程技能
一个 [Genie Code 技能](https://docs.databricks.com/aws/en/genie-code/skills),它可以将 Databricks Genie Code 的 Agent 模式变成一个实用的检测工程助手。用自然语言向 Genie 询问有关您安全遥测数据的问题——它会运行受限的 SQL,呈现分布证据,在遇到歧义时主动请求输入,并帮助您打包具有充分依据的检测规则。
## 什么是 Genie Code?
[Genie Code](https://docs.databricks.com/aws/en/genie-code) 是内置于 Databricks 工作区中的 AI 编程助手。它可以直接在 Notebook、SQL 编辑器和其他开发界面中生成并运行代码、查询和 pipeline。
## 此技能的功能
该技能通过结构化的工作流程帮助 Genie 协助检测工程师:
1. **认知** — 描述表结构 (schema) 和样本数据行
2. **基线评估** — 衡量频率、时间和行为分布
3. **细分** — 按实体、角色或时间维度进行拆分,以从干扰中剥离出有效信号
4. **评估** — 针对历史数据对候选检测逻辑进行回测
5. **打包** — 生成包含候选逻辑、证据和注意事项的检测规范
此技能附带了包含 SQL 查询示例的参考文件,可帮助 Genie 分析您的安全遥测数据。您可以根据需要对这些参考文件进行修改和扩展。
| 分析类型 | 参考文件 |
| --- | --- |
| 字段分析(null 率、基数、高频值) | `summarize-columns.md` |
| 按小时/按天维度的行为基线 | `temporal-baseline.md` |
| 每个实体或细分的百分位分布 | `grouped-percentiles.md` |
| 实体级行为比率(非工作时间占比、失败率等) | `derived-rate-percentiles.md` |
| 候选检测逻辑回测(事件级、聚合、时间分桶) | `evaluate-detection-rule.md` |
| 事件间的间隔分析(Beaconing、暴力破解、自动化) | `inter-event-time.md` |
## 设置
### 前置条件
- 启用了 Genie Code 的 Databricks 工作区
- 具备 Genie Code 中 Agent 模式(全页模式)的访问权限
- 对您想要建立基线的安全遥测表拥有 Unity Catalog 的 `SELECT` 权限
### 安装技能
Genie Code 会从 Databricks 工作区文件系统中的固定目录路径发现技能。请选择以下其中一种:
**工作区级技能**(对工作区中的所有用户可用 — 需要工作区管理员权限):
```
Workspace/.assistant/skills/detection-engineering/
```
**个人技能**(仅对您自己可用):
```
/Users/{your-username}/.assistant/skills/detection-engineering/
```
**步骤:**
1. 在 Databricks 工作区中,使用工作区文件浏览器导航到上述目标目录。
2. 创建一个名为 `detection-engineering` 的文件夹。
3. 将此代码库 `detection-engineering/` 文件夹中的所有文件上传到该目录中:
- `SKILL.md`
- `summarize-columns.md`
- `temporal-baseline.md`
- `grouped-percentiles.md`
- `derived-rate-percentiles.md`
- `evaluate-detection-rule.md`
- `inter-event-time.md`
4. 打开一个新的 Genie Code 对话线程(Agent 模式)。技能会在下一次 Agent 模式会话中自动被发现 — 无需额外的注册步骤。
### 使用技能
在 Agent 模式下,通过 `@mention` 显式调用该技能:
```
@detection-engineering I want to baseline off-hours logon activity in catalog.security.logon_events
```
Genie Code 将调用该技能的 `SKILL.md` 指令,并在分析过程中根据需要按需加载参考文件。
## 示例演示
下面的截图展示了一个完整的会话流程:从提出关于非工作时间登录活动的开放式问题,到最终生成打包好的检测规则。
### 步骤 1 — 提出自然语言问题
在 Agent 模式下,提出类似以下的问题:
Genie Code 会调用检测工程技能。它会自动开始执行:先熟悉表结构 (schema),衡量总体的非工作时间事件量,并按用户进行细分以揭示活动集中的区域 — 在向您提出任何问题之前完成这些操作。

### 步骤 2 — 提供专家上下文并进行迭代
回复 Genie 无法仅通过 SQL 推断出的上下文信息:
### 步骤 3 — 打包检测规则
当证据足够充分时,请 Genie 将其打包为 Lakewatch 中的新检测规则:
Genie 会引导您进入 Lakewatch UI 的 Detection Rules 选项卡,根据你们的对话自动填写相关字段,并为您创建检测规则。

## 技能结构
```
detection-engineering/
├── SKILL.md # Main skill definition — loaded by Genie Code
├── summarize-columns.md # Column profiling templates
├── temporal-baseline.md # Hour-of-day and day-of-week baselines
├── grouped-percentiles.md # Percentile distributions per entity
├── derived-rate-percentiles.md # Per-entity behavioral rate calculations
├── evaluate-detection-rule.md # Detection rule backtesting (3 templates)
└── inter-event-time.md # Gap analysis between consecutive events
```
`SKILL.md` 定义了 Agent 的行为,并通过相对链接引用了其他文件。Genie Code 仅在需要特定分析类型时才会加载相应的参考文件,从而保持响应的专注度。
标签:AI助手, Databricks, SQL, 代码示例, 多线程, 安全运营, 扫描框架, 数据分析, 系统审计, 防御加固