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, 威胁情报, 开发者工具, 文档结构分析, 无后门, 检测规则生成, 脆弱性评估, 逆向工具