davidmunteanm-lab/microsoft-sentinel-detections
GitHub: davidmunteanm-lab/microsoft-sentinel-detections
为 Microsoft Sentinel 编写的 KQL 检测规则与威胁搜寻查询集合,每条查询映射 MITRE ATT&CK 技术并附带调优说明,可直接部署到 Sentinel 工作区。
Stars: 0 | Forks: 0
# Microsoft Sentinel 检测
[](LICENSE)
[](https://learn.microsoft.com/azure/data-explorer/kusto/query/)
[](https://attack.mitre.org/)
这是为 Microsoft Sentinel 编写的、由 **Kusto Query Language (KQL)** 实现的检测规则和搜寻查询集合。每个查询都映射到 MITRE ATT&CK 技术,并附带调优说明,可以直接作为计划的分析规则或保存的搜寻查询放入 Sentinel 工作区。
这是作为我的 [SOC Analyst 作品集](https://github.com/davidmunteanm-lab/soc-analyst-portfolio) 的配套资源,同时也是我在准备 Microsoft SC-900 认证期间的实践练习。
## 包含内容
### `detections/` — 计划分析规则
8 个旨在部署为 Sentinel 分析规则的检测查询。每个规则都内嵌了严重性、战术、技术、预期数据源和调优说明。
| # | 检测 | 战术 | 严重性 |
| --- | --- | --- | --- |
| 01 | [登录暴力破解失败](detections/01-failed-logon-brute-force.kql) | 凭据访问 | 中 |
| 02 | [暴力破解后成功登录](detections/02-successful-logon-after-brute-force.kql) | 凭据访问 | 高 |
| 03 | [不可能的旅行](detections/03-impossible-travel.kql) | 初始访问 | 高 |
| 04 | [可疑的 PowerShell 执行](detections/04-suspicious-powershell-execution.kql) | 执行 / 防御规避 | 高 |
| 05 | [批量文件删除 (勒索软件)](detections/05-mass-file-deletion.kql) | 影响 | 严重 |
| 06 | [MFA 疲劳 / 推送轰炸](detections/06-mfa-fatigue-attack.kql) | 凭据访问 | 高 |
| 07 | [可疑的收件箱转发规则](detections/07-suspicious-inbox-forwarding-rule.kql) | 收集 / 数据外泄 | 高 |
| 08 | [特权组添加](detections/08-privileged-group-addition.kql) | 权限提升 / 持久化 | 高 |
### `hunting-queries/` — 主动威胁搜寻
4 个搜寻查询 — 范围更广、更具探索性的查询,旨在调查或威胁搜寻期间按需运行,而不是转换为嘈杂的警报。
| # | 搜寻 | 战术 |
| --- | --- | --- |
| 01 | [罕见的进程执行](hunting-queries/01-rare-process-execution.kql) | 执行 / 防御规避 |
| 02 | [DNS 隧道指标](hunting-queries/02-dns-tunneling-indicators.kql) | 命令与控制 / 数据外泄 |
| 03 | [通过 RDP 横向移动](hunting-queries/03-lateral-movement-rdp.kql) | 横向移动 |
| 04 | [异常的云应用使用](hunting-queries/04-anomalous-cloud-app-usage.kql) | 初始访问 / 防御规避 |
### `docs/` — 参考资料
- **[sentinel-architecture.md](docs/sentinel-architecture.md)** — Sentinel 端到端的工作原理(SC-900 级别)、四大支柱、警报与事件的对比,以及何时选择 Sentinel 而非第三方 SIEM。
- **[kql-cheatsheet.md](docs/kql-cheatsheet.md)** — 我日常实际使用的运算符的实用 KQL 模式。
- **[mitre-mapping.md](docs/mitre-mapping.md)** — 每个查询到其 MITRE ATT&CK 技术的映射索引。
## 预期数据源
这些查询引用了 Microsoft Sentinel schema 中的标准表:
| 表 | 源连接器 |
| --- | --- |
| `SecurityEvent` | Windows 安全事件 |
| `SigninLogs` | Microsoft Entra ID |
| `AuditLogs` | Microsoft Entra ID |
| `OfficeActivity` | Microsoft 365 / Exchange Online |
| `DeviceProcessEvents`, `DeviceFileEvents` | Microsoft Defender for Endpoint |
| `DnsEvents` | DNS 数据连接器 |
每个查询都在头部注释中声明了其预期的数据源。
## 使用方法
1. 在 Azure 门户中打开 Microsoft Sentinel 工作区。
2. **对于分析规则:** 将 `detections/` 文件中的 KQL 复制到 **Analytics → Create → Scheduled query rule** 中。根据头部注释配置计划、严重性和实体映射。
3. **对于搜寻查询:** 将 `hunting-queries/` 文件中的 KQL 复制到 **Hunting → Queries → New query** 中,或直接在 Logs 中运行。
4. 调整每个查询顶部的 `let` 变量中的阈值,以匹配您环境的基线。大多数规则被刻意设置为保守模式,以在初始部署中保持较低的误报率。
## 设计选择
所有查询中使用的一些约定:
- **时间过滤优先** — 每个查询都以 `where TimeGenerated >= ago(...)` 开头,以限制扫描大小。
- **`let` 常量置顶** — 阈值、回溯窗口和白名单被声明为变量,因此无需重写查询主体即可轻松调优。
- **使用布尔数学进行严重性评分** — 对于多个因素综合得出结论的检测(例如可疑的 PowerShell),每个因素都会为 `SuspicionScore` 贡献分数。可调优、透明、易于调试。
- **内嵌调优说明** — 每个查询头部都解释了该规则能捕获什么、为什么重要,以及哪里可能出现误报。面向值班分析师,而不仅仅是规则作者。
## 验证
查询是根据[已记录的 Sentinel schema](https://learn.microsoft.com/azure/sentinel/data-source-schema-reference) 编写的,并使用官方的 Microsoft Kusto VS Code 扩展验证了 KQL 语法。它们引用了标准数据连接器中的真实表和列名,只要在工作区中启用了相应的连接器,即可不加修改地直接运行。
## 参考
- [Microsoft Sentinel 文档](https://learn.microsoft.com/azure/sentinel/)
- [Azure Sentinel — 官方示例仓库](https://github.com/Azure/Azure-Sentinel)
- [KQL 快速参考](https://learn.microsoft.com/azure/data-explorer/kql-quick-reference)
- [MITRE ATT&CK 企业矩阵](https://attack.mitre.org/matrices/enterprise/)
- [SC-900 学习指南](https://learn.microsoft.com/credentials/certifications/exams/sc-900/)
## 联系方式
- LinkedIn: [david-marian-muntean](https://www.linkedin.com/in/david-marian-muntean-a41313286/)
- 电子邮件: david.muntean.m@gmail.com
标签:AMSI绕过, DNS 反向解析, KQL, Microsoft Sentinel, 威胁检测, 安全运营, 扫描框架, 攻击狩猎