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

Важно!

Улучшенный Центр безопасности Microsoft 365 теперь доступен в общедоступной предварительной версии. Этот новый интерфейс Центра безопасности Microsoft 365 объединяет Defender для конечной точки, Defender для Office 365, Microsoft 365 Defender и другие решения. Узнайте о новых возможностях.

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

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

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

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

В Microsoft 365 центре безопасности перейдите в Службу охоты, чтобы выполнить первый запрос. Используйте следующий пример:

// 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

Выберите запрос Run, чтобы увидеть результаты. Используйте значок расширения в правом верхнем справа от редактора запроса, чтобы сосредоточиться на запросе и результатах поиска.

Изображение управления Expand в редакторе расширенного запроса на охоту

Совет

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

Узнайте об общих операторах запросов

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

Оператор Описание и использование
where Фильтрация таблицы по подмножеству строк, удовлетворяющих предикату.
summarize Создание таблицы, в которой объединяется содержимое исходной таблицы.
join Объединение строк двух таблиц, чтобы сформировать новую таблицу, сопоставляя значения заданных столбцов из каждой таблицы.
count Возврат количества записей в исходный набор записей.
top Возврат первых N записей, отсортированных по заданным столбцам.
limit Возврат до заданного количества строк.
project Выбор столбцов, которые нужно включить, переименовать или перетащить, и вставка новых вычисляемых столбцов.
extend Создание вычисляемых столбцов и их добавление в результирующий набор.
makeset Возврат динамического массива (JSON) множества различных значений, которые выражение (Expr) принимает в группе.
find Поиск строк, соответствующих предикату, по набору таблиц.

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

Понимание типов данных

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

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

Дополнительные сведения об этих типах данных читайте в материале о типах данных Kusto scalar.

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

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

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

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

Редактор запроса можно использовать для экспериментов с несколькими запросами. Использование нескольких запросов:

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

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

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

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

Изображение окна расширенной охоты

Примечание

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

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

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

Примечание

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