maverick-sahu/kql-detection-rules
GitHub: maverick-sahu/kql-detection-rules
基于 Microsoft Defender XDR 高级狩猎的原生 KQL 检测规则库,提供经生产环境验证并映射 MITRE ATT&CK 的企业级威胁检测方案。
Stars: 0 | Forks: 0
# KQL 检测规则 – Microsoft Defender XDR




## 平台
此存储库中的所有规则均运行于:
**Microsoft Defender XDR → Hunting → Advanced Hunting**
无需 Microsoft Sentinel 许可证。这些查询使用原生的 MDE 表,任何拥有 Microsoft Defender for Endpoint Plan 2 或 Microsoft 365 Defender 的组织均可使用。
## 使用的 MDE 表
| 表 | 涵盖范围 |
|-------|---------------|
| `DeviceProcessEvents` | 进程创建、命令行、父子关系 |
| `DeviceFileEvents` | 文件读取、写入、创建、删除 |
| `DeviceNetworkEvents` | 出站/入站连接、传输字节 |
| `DeviceRegistryEvents` | 注册表项和值更改 |
| `DeviceLogonEvents` | 交互式、远程和服务登录 |
| `DeviceImageLoadEvents` | 加载到进程中的 DLL/模块 |
| `IdentityLogonEvents` | Azure AD / Entra ID 登录事件 (Defender for Identity) |
## 为什么创建此存储库
大多数公共检测规则库主要针对 Sentinel,或者是为实验室环境编写的。这里的规则源自生产环境——针对跨 CrowdStrike 和 MDE 技术栈的真实企业遥测数据进行了调优,通过历史日志测试进行了验证,并在 24/7 MXDR 运营中通过误报反馈循环进行了优化。
每条规则包括:
- **调优说明** — 导致误报的原因以及如何抑制它们
- **MITRE 映射** — 战术、技术和子技术 ID
- **风险评分** — 在适用的情况下,规则会分配一个分数,而不是简单的二元告警,从而减少噪音
- **告警详情字符串** — 为在 MDR 事件队列中进行分类的 SOC 分析师提供预格式化的上下文
- **威胁行为者参考** — 在现实世界中观察到使用每种技术的攻击组织
## 存储库结构
```
kql-detection-rules/
├── rules/
│ ├── initial-access/ # T1078, T1566 etc.
│ ├── execution/ # T1059, T1204 etc.
│ ├── persistence/ # T1053, T1547 etc.
│ ├── defense-evasion/ # T1562 etc.
│ ├── credential-access/ # T1539, T1003 etc.
│ ├── lateral-movement/ # T1021 etc.
│ └── exfiltration/ # T1048 etc.
├── playbooks/ # IR response playbooks linked to rules
└── docs/
├── MITRE_COVERAGE.md # ATT&CK coverage map + Navigator JSON
└── RULE_TEMPLATE.md # Standard template for new rules
```
## 覆盖范围摘要
| 战术 | 规则 | 涵盖的技术 |
|--------|:-----:|--------------------|
| Initial Access | 0 | |
| Execution | 0 | |
| Persistence | 0 | |
| Defense Evasion | 0 | |
| Credential Access | 0 | |
| Lateral Movement | 0 | |
| Exfiltration | 0 | |
| **总计** | **0** | **涵盖 7 项战术的 9 种技术** |
完整的 ATT&CK Navigator 层 → [docs/MITRE_COVERAGE.md](docs/MITRE_COVERAGE.md)
## 规则索引
### 初始 Access
| 文件 | 技术 | 严重程度 | MDE 表 |
|------|-----------|:--------:|-----------|
| [impossible-travel.kql](rules/initial-access/impossible-travel.kql) | T1078 – Valid Accounts | 高 | `IdentityLogonEvents` |
### Execution
| 文件 | 技术 | 严重程度 | MDE 表 |
|------|-----------|:--------:|-----------|
| [powershell-encoded-command.kql](rules/execution/powershell-encoded-command.kql) | T1059.001 – PowerShell | 高–严重 | `DeviceProcessEvents` |
| [malicious-office-macro.kql](rules/execution/malicious-office-macro.kql) | T1204.002 – Malicious File | 高–严重 | `DeviceProcessEvents` |
### Persistence
| 文件 | 技术 | 严重程度 | MDE 表 |
|------|-----------|:--------:|-----------|
| [scheduled-task-creation.kql](rules/persistence/scheduled-task-creation.kql) | T1053.005 – Scheduled Task | 中–高 | `DeviceProcessEvents`, `DeviceRegistryEvents` |
### Defense Evasion
| 文件 | 技术 | 严重程度 | MDE 表 |
|------|-----------|:--------:|-----------|
| [defender-tampering.kql](rules/defense-evasion/defender-tampering.kql) | T1562.001 – Impair Defenses | 高 | `DeviceProcessEvents`, `DeviceRegistryEvents` |
### Credential Access
| 文件 | 技术 | 严重程度 | MDE 表 |
|------|-----------|:--------:|-----------|
| [web-session-cookie-theft.kql](rules/credential-access/web-session-cookie-theft.kql) | T1539 – Steal Web Session Cookie | 高–严重 | `DeviceFileEvents`, `DeviceNetworkEvents` |
| [lsass-access.kql](rules/credential-access/lsass-access.kql) | T1003.001 – LSASS Memory | 严重 | `DeviceProcessEvents`, `DeviceFileEvents` |
### 横向 Movement
| 文件 | 技术 | 严重程度 | MDE 表 |
|------|-----------|:--------:|-----------|
| [rdp-lateral-movement.kql](rules/lateral-movement/rdp-lateral-movement.kql) | T1021.001 – Remote Desktop Protocol | 中–高 | `DeviceLogonEvents`, `DeviceNetworkEvents` |
### Exfiltration
| 文件 | 技术 | 严重程度 | MDE 表 |
|------|-----------|:--------:|-----------|
| [large-upload-to-external.kql](rules/exfiltration/large-upload-to-external.kql) | T1048.003 – Exfiltration Over Alt Protocol | 中–高 | `DeviceNetworkEvents` |
## 规则标头格式
每个 `.kql` 文件都使用此标准标头:
```
// Rule Name : [Descriptive name]
// MITRE Tactic : [Tactic]
// MITRE Technique: [TID.SubID] – [Name]
// Severity : Critical / High / Medium / Low
// Data Sources : [MDE tables used]
// Platform : Microsoft Defender XDR → Advanced Hunting
// Frequency : Every X hour(s)
// Lookback : X hour(s)
// False Positives: [Known FP sources and mitigation]
// Author : Raunak Sahu
// Last Updated : [YYYY-MM-DD]
```
## 如何在 Microsoft Defender XDR 中运行
1. 转到 **Microsoft Defender XDR → Hunting → Advanced Hunting**
2. 将此存储库中任何 `.kql` 文件内的 KQL 复制到查询编辑器中
3. 根据需要调整 `ago()` 回溯时间窗口
4. 在生产环境中使用之前,请查看文件标头中的**调优说明**
5. 若要将其安排为自定义检测,请执行以下操作:**Create detection rule** → 设置频率和操作(告警 / 隔离设备 / 等)
6. 映射实体字段 (DeviceName, AccountName, RemoteIP) 以丰富告警卡片
## 相关资源
- [MDE Advanced Hunting 架构参考](https://learn.microsoft.com/en-us/microsoft-365/security/defender/advanced-hunting-schema-tables)
- [MITRE ATT&CK 企业矩阵](https://attack.mitre.org/)
- [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) — 从 [docs/MITRE_COVERAGE.md](docs/MITRE_COVERAGE.md) 导入 JSON
- [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) — 模拟 TTP 以验证规则
- [MDE 自定义检测文档](https://learn.microsoft.com/en-us/microsoft-365/security/defender/custom-detection-rules)
## 作者
**Raunak Sahu**
检测工程师 | 蓝队 | 在 Deloitte USI 工作 4.5 年
[](https://linkedin.com/in/raunak-sahu-95a10b171)
寻求检测工程师和威胁猎手职位 — 美国远程或 relocatio。
## 许可证
MIT — 可免费使用、改编和分享。请注明出处。
标签:KQL查询, PE 加载器, 安全运营, 微软Defender, 扫描框架, 检测规则, 网络资产发现, 高级狩猎