cyb3rmik3/KQL-threat-hunting-queries
GitHub: cyb3rmik3/KQL-threat-hunting-queries
提供用于 Microsoft Sentinel 和 Defender XDR 的 KQL 威胁狩猎查询集合,帮助安全团队检测和响应威胁。
Stars: 769 | Forks: 96
# 使用KQL查询进行威胁狩猎/检测
[](https://twitter.com/intent/tweet?text=KQL%20Threat%20Hunting%20Queries%20by%20@cyb3rmik3&url=https://github.com/cyb3rmik3/KQL-threat-hunting-queries) [](https://twitter.com/cyb3rmik3)
```
_ _____ _ _____ _ _ ____ _____ _ _____ _ _ _ _ _ _ _____ ___ _ _ ____
| |/ / _ \| | |_ _| | | | _ \| ____| / \|_ _| | | | | | | | \ | |_ _|_ _| \ | |/ ___|
| ' | | | | | | | | |_| | |_) | _| / _ \ | | | |_| | | | | \| | | | | || \| | | _
| . | |_| | |___ | | | _ | _ <| |___ / ___ \| | | _ | |_| | |\ | | | | || |\ | |_| |
|_|\_\__\_|_____| |_| |_| |_|_| \_|_____/_/ \_|_| |_| |_|\___/|_| \_| |_| |___|_| \_|\____|
```
本仓库旨在提供现成的检测与狩猎查询(以及更多内容),以帮助分析师和威胁猎人充分利用 Microsoft Sentinel 和 Microsoft Defender XDR 中 KQL 的强大功能。
- [KQL 培训](#kql-training)
- [KQL 基础](#kql-basics)
- [威胁狩猎基础](#threat-hunting-basics)
- [KQL 社区](#kql-community)
请注意:
- 请阅读下方的[免责声明](#disclaimer)。
- 如果您觉得这里提供的查询有用,欢迎给本仓库点个 :star:。
祝您使用愉快,如有任何问题或建议,请联系:[cyb3rmik3](https://twitter.com/Cyb3rMik3)。
##### 喜欢我的工作吗?考虑请我喝杯咖啡吧! :)
# KQL 培训
### 微软安全运营分析师助理认证 (SC-200)
如果 Microsoft Sentinel 和 Microsoft 365 Defender 是您的日常工具,您应该考虑参加微软的认证安全运营分析师课程(考试代码 [SC-200](https://learn.microsoft.com/en-us/certifications/exams/sc-200/))。您将熟悉微软广泛的安全产品组合,以及如何使用它们提供数据、安全信号并分析警报和事件。
尽管如此,您也可以直接跳转到专注于 KQL 的微软课程:
- [利用 KQL 进行 Azure Sentinel 分析](https://learn.microsoft.com/en-us/training/paths/sc-200-utilize-kql-for-azure-sentinel/)
- [配置 Azure Sentinel 环境](https://learn.microsoft.com/en-us/training/paths/sc-200-configure-azure-sentinel-environment/)
### 在高级模式下创建查询
Microsoft Defender XDR 高级狩猎专家培训为安全分析师和威胁猎人提供了一份全面的指南,以提升他们在高级狩猎方面的技能。培训通过一系列名为“追踪对手”和“L33TSP3AK”的网络广播进行。
- [获取关于高级狩猎的专家培训](https://learn.microsoft.com/en-us/defender-xdr/advanced-hunting-expert-training)
### 面向威胁狩猎与检测工程的动手 KQL
Mehmet Ergene(又名 [cyb3rmonk](https://twitter.com/cyb3rmonk))创立了 blu raven 学院,在那里他提供以下 KQL 培训课程,包括在超真实实验室环境中的动手体验。
- [“安全分析 KQL 入门(免费)”](https://academy.bluraven.io/intro-to-kql-for-security-analysis)
- [“面向威胁狩猎与检测工程的动手 KQL”](https://academy.bluraven.io/hands-on-kusto-query-language-kql-for-security-analysts)
- [面向安全分析师的动手 Kusto 查询语言 (KQL)](https://academy.bluraven.io/hands-on-kusto-query-language-kql-for-security-analysts)
### Rod Trent 的 MustLearnKQL
[Rod Trent](https://github.com/rod-trent) 创建了 [MustLearnKQL](https://github.com/rod-trent/MustLearnKQL) 系列,这是一组博客文章和 YouTube 视频,旨在讨论和传授 Kusto 查询语言的强大功能和简洁性。
### 类似 CTF 的学习方式
- [KC7 Cyber](https://kc7cyber.com/) 是一种学习网络安全的新方式,注重实践、有趣且引人入胜。
- [Kusto 侦探事务所](https://detective.kusto.io/) 是一系列挑战,旨在帮助您学习 KQL。
### 微软云中的事件响应
[Invictus](https://github.com/invictus-ir) 创建了[“微软云中的事件响应”](https://academy.invictus-ir.com/advanced-incident-response-in-the-microsoft-cloud)培训,涵盖了如何在 Microsoft Azure 和 Microsoft 365 中进行事件响应。其中包括 KQL 基础知识,以及 KQL 查询包和更高级的用例与针对云攻击的 KQL 查询。
# KQL 基础
### 选择合适的表
数据被组织成数据库、表和列的层次结构,类似于 SQL。例如,高级狩猎架构中的 `DeviceNetworkEvents` 表包含有关网络连接和相关事件的信息。
### where 运算符
`where` 根据特定谓词进行筛选
```
DeviceNetworkEvents
| where LocalIP == "192.168.0.1"
```
### 包含/拥有
- **Contains**:查找任何子字符串匹配
- **Has**:查找特定单词(性能更好)
```
DeviceNetworkEvents
| where DeviceName has "ComputerName"
```
### 之前
返回相对于查询执行时间的时间偏移量
```
DeviceNetworkEvents
| where Timestamp > ago(1d)
```
### 项目
按照指定的顺序选择要包含的列
```
DeviceNetworkEvents
| where Timestamp > ago(1d)
| where DeviceName has "ComputerName"
| project Timestamp, ActionType, RemoteIP, RemotePort, RemoteUrl
```
# 威胁狩猎基础
## 微软威胁狩猎
威胁狩猎应是一个持续的过程。我们从循环顶部的假设开始。我们的假设帮助我们规划要狩猎什么,这需要我们了解在哪里狩猎以及如何进行。这意味着我们需要理解我们拥有的数据、工具、专业知识,以及如何运用它们。狩猎循环不会在执行狩猎时停止。在整个生命周期中,我们还需要进行几个阶段,包括对异常的响应。即使我们没有发现活跃的威胁,也会有一些活动需要执行。[了解更多](https://learn.microsoft.com/en-us/training/paths/sc-200-perform-threat-hunting-azure-sentinel/)。
标签:AMSI绕过, KQL培训, KQL查询, Kusto查询语言, Microsoft 365 Defender, Microsoft Sentinel, Microsoft XDR, URL发现, 威胁分析, 威胁响应, 威胁情报, 威胁检测, 安全检测, 安全运营中心, 开发者工具, 微软安全, 数据查询, 社区, 管理员页面发现, 网络安全, 网络映射, 自动化侦查工具, 隐私保护