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

Примечание

Хотите попробовать Microsoft 365 Defender? Узнайте больше о том, как оценить и выполнить пилотное Microsoft 365 Defender.

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

  • Microsoft 365 Defender
  • Microsoft Defender для конечной точки

Расширенный поиск основывается на языке запросов Kusto. Операторы и инструкции Kusto можно использовать для создания запросов, которые могут находить информацию в специализированной схеме.

Просмотрите это короткое видео, чтобы ознакомиться с некоторыми полезными основами языка запросов Kusto.

Чтобы лучше понять эти концепции, запустите ваш первый запрос.

Попробуйте выполнить первый запрос

На портале Microsoft 365 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)

Проверка определенных процессов

За диапазоном времени сразу же следует поиск имен файлов процесса, представляющих приложение 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 365 Defender портале

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

Откройте новую вкладку, выбрав "Создать в расширенной охоте" на портале Microsoft 365 Defender.

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

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

Примечание

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

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

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

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

Примечание

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

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

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

Примечание

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