YuvrajKaushal/AI-powered-detection-rule-generator
GitHub: YuvrajKaushal/AI-powered-detection-rule-generator
一个基于 Claude 的交互式 CLI 安全检测规则生成器,能将自然语言威胁描述转化为 Sigma、KQL、SPL、SentinelOne 和 YARA 五种格式的生产就绪检测规则。
Stars: 0 | Forks: 0
# 检测规则生成器
一个交互式 AI 驱动的 CLI agent,能够从纯英文查询中生成生产就绪的安全检测规则。
同时支持 **5 种规则格式**:
| 格式 | 平台 | 用例 |
|---|---|---|
| **Sigma** | 任何 SIEM(与平台无关的 YAML) | 通用规则共享,sigma2splunk/sigma2kql 转换 |
| **KQL** | Microsoft Sentinel, Defender XDR | Azure/M365 环境的威胁狩猎和告警 |
| **SPL** | Splunk SIEM | 保存的搜索、关联规则、告警 |
| **SentinelOne** | SentinelOne EDR | Deep Visibility 狩猎 + STAR 自动化响应 |
| **YARA** | 文件/内存扫描器 | 恶意软件检测、IR 分诊、AV 规则 |
KQL 查询以 [SlimKQL/Detections.AI](https://github.com/SlimKQL/Detections.AI/tree/main/KQL) 社区检测库中的真实世界模式为模型。
## 前置条件
- Python 3.10 或更高版本
- 一个 Anthropic API key([在此获取](https://console.anthropic.com))
## 安装说明
**1. 克隆或下载项目**
```
Automated script/
├── detection_agent.py
├── requirements.txt
├── README.md
└── rules/ ← auto-created on first run
├── threat_intel/
├── behavioral/
├── lateral_movement/
├── privilege_escalation/
├── persistence/
├── exfiltration/
└── compliance/
```
**2. 安装依赖**
```
pip install -r requirements.txt
```
**3. 设置你的 Anthropic API key**
PowerShell(仅当前会话):
```
$env:ANTHROPIC_API_KEY = "sk-ant-YOUR_KEY_HERE"
```
PowerShell(跨会话保留 — 添加到你的 profile 中):
```
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-YOUR_KEY_HERE", "User")
```
## 运行 Agent
```
python detection_agent.py
```
在启动时,你会看到**格式选择器下拉菜单**。选择要生成的规则格式:
```
========================================================================
SELECT RULE FORMATS
========================================================================
[1] [ ] Sigma Generic SIEM YAML rule (platform-agnostic)
[2] [ ] KQL Microsoft Sentinel / Defender 365
[3] [+] SPL Splunk Search Processing Language
[4] [+] SentinelOne Deep Visibility query + STAR automated rule
[5] [ ] YARA Malware / file content scanning
Active : SPL, SentinelOne
Enter numbers to select (e.g. 1 3 4) | 'all' | Enter = confirm
>
```
- 输入**数字**来选择格式:`1 3 4` 选择 Sigma + SPL + SentinelOne
- 输入 **`all`** 选择所有格式
- 按 **Enter** 确认并保留当前选择
- `[+]` 标记显示当前激活的格式
## 命令
一旦进入 agent 提示符 (`detection>`):
| 命令 | 动作 |
|---|---|
| `<任意查询>` | 为该查询生成检测规则 |
| `format` | 重新打开格式选择器以更改激活的格式 |
| `list` | 按类别浏览所有已保存的规则 |
| `help` | 显示帮助和示例查询 |
| `quit` | 退出 |
## 编写查询
输入任何自然语言的威胁描述。你可以尽可能具体或宽泛:
```
detection> detect ransomware encrypting files across network shares
detection> detect LSASS credential dumping via Mimikatz
detection> detect lateral movement via PsExec
detection> detect PowerShell encoded command execution
detection> detect DNS tunneling for data exfiltration
detection> detect Pass-the-Hash attack using stolen NTLM hashes
detection> detect new scheduled task created for persistence
detection> detect suspicious OAuth application consent
detection> detect mass email deletion in Exchange Online
detection> detect brute force login attempts against Active Directory
detection> detect living-off-the-land binaries (LOLBins) abuse
detection> CVE-2026-26119 Windows Admin Center privilege escalation
```
agent 会自动:
- 将规则分类到正确的威胁类别中
- 映射到 MITRE ATT&CK 技术 ID
- 分配严重级别
- 为每个选定的格式生成规则
## 格式详情
### Sigma
与平台无关的 YAML 检测规则。可以使用 [sigma-cli](https://github.com/SigmaHQ/sigma-cli) 转换为 Splunk、Elasticsearch、Sentinel 等。
```
title: Ransomware File Encryption Activity
status: experimental
logsource:
category: file_event
product: windows
detection:
selection:
TargetFilename|endswith:
- '.encrypted'
- '.locky'
condition: selection
level: high
```
### KQL
用于 **Microsoft Sentinel** (Log Analytics) 和 **Microsoft Defender XDR** (Advanced Hunting) 的查询。遵循 SlimKQL 社区惯例:
- `let LookBack = 1h;` 时间窗口变量
- 使用 `dynamic([...])` 数组配合 `has_any()` 进行多值匹配
- 跨表 `let` + `join`/`union` 用于关联检测
- `invoke FileProfile()` 用于罕见/低普遍性文件检测
- `externaldata()` 用于导入外部 IOC CSV 列表
会生成两个查询:
- **狩猎查询** — 用于在高级狩猎控制台中进行手动威胁狩猎
- **定时告警** — 准备好作为带有频率、周期和触发器设置的 Sentinel Analytics Rule 进行部署
### SPL
Splunk Search Processing Language 保存的搜索。包括:
- 带有正确 `sourcetype` 和 `EventCode` 引用的完整搜索字符串
- 用于自动告警的 Cron 调度
- 告警阈值和比较器
- 时间范围(与 SPL 字符串分开 — 粘贴到 Splunk 的时间选择器中)
### SentinelOne
生成两个制品:
- **Deep Visibility 查询** — 用于 SentinelOne Deep Visibility 狩猎控制台的 PowerQuery 语法
- **STAR Rule** — 用于自动化实时检测的 Storyline Active Response 规则,包含 severity、action 和 `treatAsThreat` 分类
### YARA
用于文件和内存扫描的完整 YARA 规则。适用于:
- VirusTotal Livehunt / Retrohunt
- ClamAV 自定义签名
- IR 工具包中的 YARA-X / yaraScan
- 恶意软件沙箱引爆丰富化
包含 `meta`、`strings`(明文 + 十六进制 + regex)和 `condition` 块。
## 已保存的规则
规则以 JSON 文件的形式保存在 `rules//` 下:
```
rules/
├── threat_intel/ ← IOC-based detections (hashes, IPs, domains)
├── behavioral/ ← Anomaly and pattern-based detections
├── lateral_movement/ ← PsExec, WMI, RDP, Pass-the-Hash
├── privilege_escalation/ ← UAC bypass, token abuse, LSASS
├── persistence/ ← Scheduled tasks, registry, services
├── exfiltration/ ← DNS tunneling, large transfers
└── compliance/ ← Audit, policy, access control
```
每个 JSON 文件包含规则元数据和所有生成的格式块:
```
{
"title": "Suspicious PowerShell Encoded Command",
"category": "behavioral",
"severity": "high",
"mitre_attack": ["T1059.001", "T1027"],
"tags": ["powershell", "windows", "lolbas"],
"splunk": { "search": "...", "cron_schedule": "..." },
"sentinelone": { "deep_visibility_query": "...", "star_rule": { ... } },
"sigma": { "rule": "..." },
"kql": { "hunting_query": "...", "scheduled_alert": { ... } },
"yara": { "rule": "..." }
}
```
使用 `detection> list` 按类别浏览所有已保存的规则。
## KQL 参考 — SlimKQL 模式
此 agent 的 KQL 生成参考了 [SlimKQL/Detections.AI](https://github.com/SlimKQL/Detections.AI/tree/main/KQL) 社区库中的真实世界检测查询。使用的模式包括:
| 模式 | 示例用法 |
|---|---|
| `let LookBack = 1h;` + `ago(LookBack)` | 在所有表过滤器中保持一致的时间窗口 |
| `let List = dynamic([...])` + `has_any(List)` | 用于进程/域列表的高效多值匹配 |
| `let SubSet = Table \| where ... \| distinct Field;` 然后使用 `has_any(SubSet)` 过滤 | 跨表关联检测 |
| `invoke FileProfile("SHA1", 1000)` | 通过 GlobalPrevalence < 阈值 进行罕见二进制文件检测 |
| `externaldata(Col:type)[h'url']` | 导入实时 IOC CSV 数据源 |
| `matches regex @"pattern"` 配合 `tolower()` | 不区分大小写的复杂字符串匹配 |
| 多表 `\| union` | 合并 ProcessEvents + FileEvents + NetworkEvents |
## 故障排除
**`ANTHROPIC_API_KEY` 未设置**
```
$env:ANTHROPIC_API_KEY = "sk-ant-..."
```
**空的或格式错误的 JSON 输出**
对于全 5 种格式的查询,模型会生成大量输出。如果遇到解析错误,请尝试选择较少的格式或重试 — 自适应思维模型偶尔会将 JSON 包装在 markdown 围栏中,解析器会自动处理这种情况。
**未创建规则目录**
`rules/` 文件夹和所有类别子目录会在首次运行时自动创建。无需手动设置。
## 模型
由 **Claude Opus 4.8** (`claude-opus-4-8`) 提供支持,并启用了自适应扩展思维。该模型在生成规则之前会对威胁场景进行推理,与非思维模型相比,能够产生更高质量、具备上下文感知的检测。
标签:AI智能体, EDR, Homebrew安装, Python, 威胁情报, 开发者工具, 文档结构分析, 无后门, 检测规则生成, 脆弱性评估, 逆向工具