Познакомьтесь с языком запросов расширенной охоты
Расширенный поиск основывается на языке запросов Kusto. Операторы и инструкции Kusto можно использовать для создания запросов, которые находят сведения в специализированной схеме.
Посмотрите это короткое видео, чтобы узнать некоторые удобные основы языка запросов Kusto.
Чтобы лучше понять эти концепции, запустите ваш первый запрос.
Попробуйте выполнить первый запрос
На портале Microsoft Defender перейдите в раздел Охота, чтобы выполнить первый запрос. Используйте следующий пример:
// Finds PowerShell execution events that could involve a download
union DeviceProcessEvents, DeviceNetworkEvents
| where Timestamp > ago(7d)
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Выполнение этого запроса в расширенной охоте
Описание запроса и указание таблиц для поиска
В начале запроса добавлен короткий комментарий, описывающий, для чего он предназначен. Этот комментарий будет полезным, если впоследствии вы решите сохранить запрос и поделиться им с другими пользователями в вашей организации.
// Finds PowerShell execution events that could involve a download
Сам запрос обычно начинается с имени таблицы, за которой следует несколько элементов, которые начинаются с канала (|
). В этом примере мы начнем с создания объединения из двух таблиц и DeviceProcessEvents
, и DeviceNetworkEvents
добавим по конвейеру элементы по мере необходимости.
union DeviceProcessEvents, DeviceNetworkEvents
Установка диапазона времени
Первый элемент с каналом — это фильтр времени, ограниченный до предыдущих семи дней. Ограничение временного диапазона гарантирует, что запросы работают хорошо, возвращают управляемые результаты и не превышают времени ожидания.
| where Timestamp > ago(7d)
Примечание.
Фильтры времени Kusto находятся в формате UTC независимо от часового пояса, указанного в параметрах.
Проверка определенных процессов
За диапазоном времени сразу же следует поиск имен файлов процесса, представляющих приложение PowerShell.
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
Поиск определенных командных строк
Затем запрос ищет строки в командных строках, которые обычно используются для скачивания файлов с помощью PowerShell.
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
Настройка результирующих столбцов и длины
Теперь, когда запрос четко определяет данные, которые вы хотите найти, вы можете определить, как будут выглядеть результаты.
project
возвращает определенные столбцы и top
ограничивает количество результатов. Эти операторы помогают гарантировать, что результаты хорошо отформатированы и достаточно велики и просты в обработке.
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Выберите Выполнить запрос , чтобы просмотреть результаты.
Совет
Результаты запросов можно просматривать в виде диаграмм и быстро настраивать фильтры. Инструкции см. в статье о работе с результатами запроса.
Общие операторы запросов
Вы только что выполнили первый запрос и получили общее представление о его компонентах. Пришло время немного отступить и узнать некоторые основы. Язык запросов Kusto, используемый в расширенной охоте, поддерживает ряд операторов, включая обычные, описанные ниже.
Оператор | Описание и использование |
---|---|
where |
Фильтрация таблицы по подмножеству строк, удовлетворяющих предикату. |
summarize |
Создание таблицы, в которой объединяется содержимое исходной таблицы. |
join |
Объединение строк двух таблиц, чтобы сформировать новую таблицу, сопоставляя значения заданных столбцов из каждой таблицы. См. статью Объединение таблиц в KQL , чтобы узнать, как это сделать. |
count |
Возврат количества записей в исходный набор записей. |
top |
Возврат первых N записей, отсортированных по заданным столбцам. |
limit |
Возврат до заданного количества строк. |
project |
Выбор столбцов, которые нужно включить, переименовать или перетащить, и вставка новых вычисляемых столбцов. |
extend |
Создание вычисляемых столбцов и их добавление в результирующий набор. |
makeset |
Возврат динамического массива (JSON) множества различных значений, которые выражение (Expr) принимает в группе. |
find |
Поиск строк, соответствующих предикату, по набору таблиц. |
Чтобы просмотреть реальные примеры этих операторов, запустите их из пункта Начать работу в разделе Расширенная охота.
Общие сведения о типах данных
Расширенная охота поддерживает типы данных Kusto, включая следующие распространенные типы:
Тип данных | Описание и влияния запроса |
---|---|
datetime |
Данные и сведения о времени, обычно представляющие временные метки событий. См. поддерживаемые форматы даты и времени |
string |
Строка символов в UTF-8, заключенная в одиночные (' ) или двойные кавычки (" ).
Дополнительные сведения о строках |
bool |
Этот тип данных поддерживает состояния true или false .
См. поддерживаемые литералы и операторы |
int |
32-битное целое число |
long |
64-битное целое число |
Дополнительные сведения об этих типах данных см. в статье Скалярные типы данных Kusto.
Помощь при написании запросов
Ниже перечислены функции, благодаря которым запросы можно создавать быстрее.
- Автозаполнения — при написании запросов расширенная охота предоставляет предложения от IntelliSense.
- Дерево схем — представление схемы, включающее список таблиц и их столбцов, предоставляется рядом с рабочей областью. Чтобы получить об элементе дополнительные сведения, нужно навести на него указатель мыши. Чтобы вставить элемент в редактор запросов, нужно дважды щелкнуть по нему.
-
Справочник по схеме — справочник на портале с описаниями таблиц и столбцов, а также поддерживаемыми типами событий (
ActionType
значениями) и примерами запросов
Работа с несколькими запросами в редакторе
Редактор запросов можно использовать для экспериментов с несколькими запросами. Чтобы использовать несколько запросов, выполните следующие действия:
Разделите каждый запрос пустой строкой.
Поместите курсор на любую часть запроса, чтобы выбрать этот запрос перед его выполнением. При этом будет выполняться только выбранный запрос. Чтобы выполнить другой запрос, переместите курсор соответствующим образом и выберите Выполнить запрос.
Для более эффективной рабочей области можно также использовать несколько вкладок на одной странице поиска. Выберите Новый запрос , чтобы открыть вкладку для нового запроса.
Затем можно выполнять различные запросы, не открывая новую вкладку браузера.
Примечание.
Использование нескольких вкладок браузера с расширенной охотой может привести к потере несохраненных запросов. Чтобы избежать этого, используйте функцию вкладки в расширенной охоте вместо отдельных вкладок браузера.
Использование примеров запросов
Раздел Начало работы содержит несколько простых запросов, использующих часто используемые операторы. Попробуйте выполнить эти запросы и внести в них небольшие изменения.
Примечание.
Кроме примеров базовых запросов, вы можете получить доступ к общим запросам для определенных сценариев охоты на угрозы. Изучите общие запросы в левой части страницы или репозитория запросов GitHub.
Документация по языку условий запросов
Дополнительные сведения о языке запросов Kusto и поддерживаемых операторах см. в статье Документация по языку запросов Kusto.
Примечание.
Некоторые таблицы в этой статье могут быть недоступны в Microsoft Defender для конечной точки. Включите Microsoft Defender XDR для поиска угроз с помощью дополнительных источников данных. Вы можете переместить расширенные рабочие процессы охоты с Microsoft Defender для конечной точки на Microsoft Defender XDR, выполнив действия, описанные в разделе Миграция расширенных запросов охоты из Microsoft Defender для конечной точки.
Статьи по теме
- Обзор расширенной охоты
- Работа с результатами запросов
- Использование общих запросов
- Охота на различных устройствах, в письмах, приложениях и удостоверениях
- Сведения о схеме
- Применение рекомендаций по использованию запросов
Совет
Хотите узнать больше? Общайтесь с членами сообщества Microsoft Security в нашем техническом сообществе: Microsoft Defender XDR Tech Community.