Познакомьтесь с языком запросов расширенной охоты

Область применения:

  • Microsoft Defender XDR

Расширенный поиск основывается на языке запросов 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 значениями) и примерами запросов.

Работа с несколькими запросами в редакторе

Редактор запросов можно использовать для экспериментов с несколькими запросами. Чтобы использовать несколько запросов, выполните следующие действия:

  • Разделите каждый запрос пустой строкой.
  • Поместите курсор на любую часть запроса, чтобы выбрать этот запрос перед его выполнением. При этом будет выполняться только выбранный запрос. Чтобы выполнить другой запрос, переместите курсор соответствующим образом и выберите Выполнить запрос.

Пример выполнения нескольких запросов на странице **Новый запрос** на портале Microsoft Defender

Для более эффективной рабочей области можно также использовать несколько вкладок на одной странице поиска. Выберите Новый запрос , чтобы открыть вкладку для нового запроса.

Открытие новой вкладки путем выбора Create новых в расширенной охоте на портале Microsoft Defender

Затем можно выполнять различные запросы, не открывая новую вкладку браузера.

Выполнение различных запросов, не покидая страницу расширенной охоты на портале Microsoft Defender

Примечание.

Использование нескольких вкладок браузера с расширенной охотой может привести к потере несохраненных запросов. Чтобы избежать этого, используйте функцию вкладки в расширенной охоте вместо отдельных вкладок браузера.

Использование примеров запросов

Раздел Начало работы содержит несколько простых запросов, использующих часто используемые операторы. Попробуйте выполнить эти запросы и внести в них небольшие изменения.

Раздел **Начало работы** на странице **Расширенная охота** на портале Microsoft Defender

Примечание.

Кроме примеров базовых запросов, вы можете получить доступ к общим запросам для определенных сценариев охоты на угрозы. Изучите общие запросы в левой части страницы или репозитория запросов GitHub.

Документация по языку условий запросов

Дополнительные сведения о языке запросов Kusto и поддерживаемых операторах см. в статье Документация по языку запросов Kusto.

Примечание.

Некоторые таблицы в этой статье могут быть недоступны в Microsoft Defender для конечной точки. Включите Microsoft Defender XDR для поиска угроз с помощью дополнительных источников данных. Вы можете переместить расширенные рабочие процессы охоты с Microsoft Defender для конечной точки на Microsoft Defender XDR, выполнив действия, описанные в разделе Миграция расширенных запросов охоты из Microsoft Defender для конечной точки.

Совет

Хотите узнать больше? Engage с сообществом Microsoft Security в нашем техническом сообществе: Microsoft Defender XDR Техническое сообщество.