rizko-d/kql-detection-library

GitHub: rizko-d/kql-detection-library

为 Microsoft Sentinel 云安全监控场景精心整理的 KQL 检测规则库,每条规则均映射 MITRE ATT&CK 技术并配套测试验证工具。

Stars: 0 | Forks: 0

# KQL 检测库 **Azure Sentinel / Microsoft 365 检测规则库** —— 专为 Microsoft 云环境中的威胁检测、威胁狩猎和安全监控精心整理的 KQL 查询。 ## 概述 | 指标 | 数值 | |---|---| | **总规则数** | 5(当前)—— 计划增加至约 70 条,请参阅 [路线图](#roadmap) | | **覆盖战术** | 14 项中的 3 项 | | **覆盖技术** | 约 200 项中的 5 项 | | **目标平台** | Microsoft Sentinel (Log Analytics / KQL) | | **规则格式** | 包含 MITRE ATT&CK frontmatter 的标准化 KQL | ## 快速开始 ``` // Copy any rule directly into Sentinel Log Analytics Workspace // or deploy as Scheduled Query Rule via ARM / CLI. ``` ### 前置条件 - **Microsoft Sentinel** 工作区(或 Azure Log Analytics) - 每个规则所需的日志表(参见各规则的 `Data Source` 标题) - 最低权限要求:`Microsoft.OperationalInsights/workspaces/query/read` ## 规则索引 ### 凭证访问 | 规则 | 技术 | 严重性 | 数据源 | |---|---|---|---| | [RDP 暴力破解](azure-sentinel/credential-access/brute-force-rdp.kql) | T1110 | 高 | SigninLogs, AADNonInteractiveUserSignInLogs | | [Kerberoasting 检测](azure-sentinel/credential-access/kerberoasting-detection.kql) | T1558.003 | 高 | SecurityEvent, IdentityLogonEvents | | [DCSync 检测](azure-sentinel/credential-access/dcsync-detection.kql) | T1003.006 | 严重 | DirectoryServiceAccess, BehaviorAnalytics | ### 执行 | 规则 | 技术 | 严重性 | 数据源 | |---|---|---|---| | [PowerShell 混淆](azure-sentinel/execution/powershell-obfuscation.kql) | T1059.001 | 中 | DeviceProcessEvents (MDE) | ### 持久化 | 规则 | 技术 | 严重性 | 数据源 | |---|---|---|---| | [计划任务创建](azure-sentinel/persistence/scheduled-task-creation.kql) | T1053.005 | 中 | SecurityEvent, DeviceEvents | ## 规则格式 每条规则遵循以下结构: ``` // === MITRE ATT&CK === // Technique: TXXXX.XXX — Description // Tactic: Tactic Name // Severity: High / Medium / Low / Critical // Data Source: TableName (Source) // False Positives: Known noise sources // Recommended Response: Step-by-step IR guidance // === QUERY === ``` ## 测试 请查看 `mapping/test-cases/` 获取示例数据及预期检测逻辑: ``` python tools/rule-validator.py azure-sentinel/ ``` 每个测试用例都使用真实的事件数据模拟相关的表结构,并验证查询语法。该测试(而非实际的 Sentinel 部署)可在部署前捕获结构性错误和 schema 不匹配的问题。 ## MITRE ATT&CK 覆盖范围 有关完整的战术/技术映射,请参阅 [ATTACK_MATRIX.md](ATTACK_MATRIX.md)。 ## 路线图 ### v0.1 — MVP(当前) - [x] RDP 暴力破解检测 (T1110) - [x] Kerberoasting 检测 (T1558.003) - [x] DCSync 检测 (T1003.006) - [x] PowerShell 混淆检测 (T1059.001) - [x] 计划任务持久化 (T1053.005) - [x] 规则验证器工具 - [x] 每条规则的测试框架 - [x] MITRE ATT&CK 映射 ### v0.2 — 执行与防御规避(+10 条规则) - [ ] **LSASS 访问 / Mimikatz 检测** (T1003.001) — 通过 lsass.exe 进行 ProcessAccess,Event 4663 - [ ] **AMSI 绕过检测** (T1562.001) — AmsiScanBuffer patching,注册表禁用 - [ ] **进程镂空检测** (T1055.012) — 可信二进制文件中的无支持内存 + 挂起线程 - [ ] **日志清除检测** (T1070.001) — Event 1102(安全日志已清除),wevtutil /auditpol - [ ] **注册表 Run Key 持久化** (T1547.001) — CurrentVersion\Run 修改 (Event 4657) - [ ] **WMI 事件订阅持久化** (T1546.003) — \_\_EventFilter / \_\_FilterToConsumerBinding (Event 5861) - [ ] **启动文件夹持久化** (T1547.001) — 在 StartUp 文件夹中创建 LNK - [ ] **DLL 搜索顺序劫持** (T1574.001) — 从用户可写路径加载 DLL - [ ] **BITS 任务持久化** (T1197) — 后台智能传输服务任务创建 - [ ] **服务安装检测** (T1543.003) — 非管理员创建新服务 (Event 4697) ### v0.3 — 横向移动与发现(+10 条规则) - [ ] **Pass-the-Hash 检测** (T1550.002) — NTLM 登录类型 3 异常 - [ ] **远程服务创建** (T1543.003) — 来自远程的 sc.exe / PowerShell New-Service - [ ] **WMI 执行检测** (T1047) — wmic process call create,Invoke-CimMethod - [ ] **PsExec / SMB 执行** (T1570) — PSEXESVC 服务 + 命名管道 \psexecsvc - [ ] **网络共享发现** (T1135) — net view / net share 枚举爆发 - [ ] **DCOM 横向移动** (T1021.003) — MMC20.Application,ShellWindows,Excel DCOM - [ ] **WinRM / PowerShell 远程控制** (T1021.006) — WinRM 服务访问,PS 会话创建 - [ ] **RDP 横向移动** (T1021.001) — 来自非管理员工作站的 RDP 登录成功 - [ ] **SMB 命名管道模拟** (T1550.003) — SMB 会话后的 \\pipe\\\* 访问 - [ ] **Active Directory 发现** (T1087.002) — BloodHound / AD 枚举工具(adfind,sharphound) ### v0.4 — 数据外传与 C2(+10 条规则) - [ ] **异常出站流量** (T1048) — 来自非 Web 服务器的出口流量异常 - [ ] **DNS 隧道异常** (T1572) — 高熵子域名,TXT 查询爆发 - [ ] **Beaconing 模式检测** (T1071.001) — 周期性 HTTP/HTTPS 连接间隔分析 - [ ] **大文件上传异常** (T1030) — 通过 Web / 云存储上传 > 100MB 的文件 - [ ] **数据暂存检测** (T1074) — 在敏感共享上创建归档(zip/rar/7z) - [ ] **基于 WebSocket 的 C2** (T1071.001) — 与罕见域的长连接 WebSocket - [ ] **基于 HTTPS 的 C2 (JA3/S)** — 针对已知 C2 框架的 JA3 hash 聚类 - [ ] **云存储数据外传** (T1567.002) — 上传文件至个人云(Dropbox,GDrive) - [ ] **邮件转发数据外传** (T1114.003) — 创建自动转发规则到外部域 - [ ] **ICMP / 自定义协议隧道** (T1571) — 非 DNS/HTTP 的出站协议异常 ### v0.5 — 云特有与 Kubernetes(+10 条规则) - [ ] **Azure AD MFA 绕过 / 旧版身份验证** (T1078.004) — 旧版协议身份验证,无 MFA 条件访问 - [ ] **可疑的 OAuth 同意授权** (T1525.001) — 具有高权限的第三方应用授权 - [ ] **异常的服务主体使用** (T1098) — 非工作时间出现新的 SPN / client secret - [ ] **容器逃逸检测** (T1611) — --privileged 标志,宿主机挂载,--pid=host - [ ] **Azure Key Vault 访问异常** (T1552.005) — 来自意外 IP / 区域的机密访问 - [ ] **Kubernetes RBAC 滥用** (T1087.004) — ClusterRole 提权,通过 API 枚举 secret - [ ] **Azure VM Run Command 滥用** (T1059.009) — RunCommand / Invoke-AzVMRunCommand - [ ] **Blob 存储公共访问** (T1530) — 匿名 blob 枚举,存储账户配置错误 - [ ] **Azure 资源删除** (T1485) — 几分钟内大量删除资源组 / NSG - [ ] **Azure Logic App / Automation Account 滥用** (T1053.006) — 可疑的 runbook/作业创建 ### v0.6 — 狩猎与基线(+10 条查询) - [ ] **威胁狩猎查询模块** — `hunting-queries/` 目录 - [ ] **用户行为基线 KQL** — 历史登录时间,地理位置,设备数量 - [ ] **非托管设备访问检测** — 设备合规性检查 + 条件访问绕过 - [ ] **异常登录时间分析** — 特定用户首次在凌晨 3 点登录 - [ ] **跨租户访问异常** — B2B 来宾账户枚举 - [ ] **服务账户交互式登录** — 服务账户不应有交互式会话 - [ ] **Pass-the-Hash 狩猎** — 跨非 DC 主机的 RC4 NTLM 登录 - [ ] **黄金票据狩猎** — Kerberos 票据生命周期 > 10 小时(Event 4768/4769 异常) - [ ] **邮箱访问异常** — 通过未知 IP 的 EWS/Graph API 访问邮箱 - [ ] **Identity Protection 洞察** — 聚合的 Azure AD Identity Protection 风险检测 ### v0.7 — 工具与 CI - [ ] **`rule-scaffold.py`** — 带有自动生成 frontmatter 的模板生成新规则 - [ ] **`coverage-report.py`** — 从规则目录自动生成 ATT&CK 矩阵 Markdown - [ ] **`test-simulator.py`** — 按表结构生成模拟事件 - [ ] **GitHub Actions CI** — 在每次 push + PR 时运行 `rule-validator.py` - [ ] **ARM Template 导出器** — 通过 ARM/Bicep 将规则部署为 Sentinel 分析规则 - [ ] **Sentinel-as-code (Terraform)** — 用于 `azurerm_sentinel_alert_rule` 的 Terraform 模块 - [ ] **规则依赖检查器** — 交叉引用规则间的表和可用数据连接器 - [ ] **误报测试仪表板** — 在历史数据上量化每条规则误报率的 KQL ### v0.8 — 高级功能 - [ ] **Sentinel Workbook 生成器** — 从规则集自动创建 Azure Workbook JSON - [ ] **Tier-2:关联规则** — 多事件链检测(例如:用户进行 RDP 登录 → 创建任务 → 转储 LSASS) - [ ] **Tier-3:机器学习 / Fusion 异常** — 时间序列异常检测规则 - [ ] **跨工作区狩猎** — 跨越多个 Sentinel 工作区的 KQL 查询 - [ ] **Watchlist 集成** — 通过 Sentinel watchlist 进行动态白名单设置(企业 IP 范围,已知良好的 hash) - [ ] **KQL 单元测试框架** — 自动化基于 `datatable` 的断言预期结果测试 - [ ] **MITRE ATT&CK Navigator 层** — 将规则导出为 ATT&CK Navigator 热力图 JSON - [ ] **多语言规则转换器** — Sigma 到 KQL 的翻译映射器 ## 部署 ### 手动方式 1. 打开 Azure Portal → Sentinel → Logs 2. 粘贴 KQL 查询 3. 调整时间范围和阈值 4. 点击 **+ New alert rule** → 配置触发频率 / 抑制 ### 自动化方式 (ARM / CLI) — 将在 v0.7 中推出 ``` # 使用 az CLI 的示例 az deployment group create --resource-group rg-sentinel --template-file deploy-rule.json ``` ## 贡献 1. Fork 该仓库 2. 按照上述[格式](#rule-format)创建规则 3. 将 MITRE 映射添加到 `mapping/mitre-attack.yaml` 4. 添加包含示例数据的测试用例 5. 运行 `python tools/rule-validator.py` 6. 提交 PR ## 许可证 MIT — 请参阅 [LICENSE](LICENSE)。
标签:AMSI绕过, Azure Sentinel, KQL, OpenCanary, 威胁检测, 安全运营, 扫描框架, 网络安全, 逆向工具, 隐私保护