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

Расширенный поиск основывается на языке запросов Kusto. Вы можете использовать операторы и операторы 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

Выполнение подозрительного запроса команд загрузки PowerShell в расширенной охоте

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

// 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 Поиск строк, соответствующих предикату, по набору таблиц.

Чтобы увидеть живой пример этих операторов, запустите их в панели «Старт» на странице расширенного поиска в портале Microsoft Defender.

Общие сведения о типах данных

Расширенная охота поддерживает типы данных Kusto, включая следующие распространенные типы:

Тип данных Описание и последствия запроса
datetime Данные и сведения о времени, обычно представляющие временные метки событий. Поддерживаемые форматы даты и времени
string Строка символов в UTF-8, заключенная в одиночные (') или двойные кавычки ("). Тип данных String
bool Этот тип данных поддерживает состояния true или false. Поддерживаемые логические литералы и операторы
int 32-битное целое число
long 64-битное целое число

Чтобы узнать больше о скалярных типах данных Кусто, см. Типы скалярных данных Кусто.

Помощь при написании запросов

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

  • Автоподсказки — по мере ввода запросов расширенный поиск предлагает варианты IntelliSense.
  • Дерево схем — представление схемы, включающее список таблиц и их столбцов, предоставляется рядом с рабочей областью. Чтобы получить об элементе дополнительные сведения, нужно навести на него указатель мыши. Чтобы вставить элемент в редактор запросов, нужно дважды щелкнуть по нему.
  • Справочник по схеме — справочник на портале с описаниями таблиц и столбцов, а также поддерживаемыми типами событий (ActionType значениями) и примерами запросов

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

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

  • Разделите каждый запрос пустой строкой.

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

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

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

    Открытие новой вкладки с помощью команды «Создать» в разделе расширенного поиска угроз на портале Microsoft Defender

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

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

Примечание.

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

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

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

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

Примечание.

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

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

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

Примечание.

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

Совет

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