Познакомьтесь с языком запросов расширенной охотыLearn the advanced hunting query language

Важно!

Улучшенный Центр безопасности Microsoft 365 теперь доступен в общедоступной предварительной версии.The improved Microsoft 365 security center is now available. Этот новый интерфейс Центра безопасности Microsoft 365 объединяет Defender для конечной точки, Defender для Office 365, Microsoft 365 Defender и другие решения.This new experience brings Defender for Endpoint, Defender for Office 365, Microsoft 365 Defender, and more into the Microsoft 365 security center. Узнайте о новых возможностях.Learn what's new.

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

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

Расширенный поиск основывается на языке запросов Kusto.Advanced hunting is based on the Kusto query language. Вы можете использовать операторы Kusto и операторы для создания запросов, которые размещают сведения в специализированной схеме.You can use Kusto operators and statements to construct queries that locate information in a specialized schema. Чтобы лучше понять эти концепции, запустите ваш первый запрос.To understand these concepts better, run your first query.

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

В Microsoft 365 центре безопасности перейдите в Службу охоты, чтобы выполнить первый запрос.In Microsoft 365 security center, go to Hunting to run your first query. Используйте следующий пример:Use the following example:

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

Запуск этого запроса в продвинутой охотеRun this query in advanced hunting

В начале запроса добавлен краткий комментарий, чтобы описать его.A short comment has been added to the beginning of the query to describe what it is for. Этот комментарий поможет, если позже вы решите сохранить запрос и поделиться им с другими в организации.This comment helps if you later decide to save the query and share it with others in your organization.

// Finds PowerShell execution events that could involve a download

Сам запрос обычно начинается с имени таблицы с несколькими элементами, которые начинаются с трубки ( | ).The query itself will typically start with a table name followed by several elements that start with a pipe (|). В этом примере мы начинаем с создания объединения из двух таблиц и добавления элементов по мере DeviceProcessEvents DeviceNetworkEvents необходимости.In this example, we start by creating a union of two tables, DeviceProcessEvents and DeviceNetworkEvents, and add piped elements as needed.

union DeviceProcessEvents, DeviceNetworkEvents

Установите диапазон времениSet the time range

Первый элемент с конвейером — это фильтр времени, который был в течение предыдущих семи дней.The first piped element is a time filter scoped to the previous seven days. Ограничение диапазона времени позволяет убедиться, что запросы выполняются хорошо, возвращают управляемые результаты и не отжимаются.Limiting the time range helps ensure that queries perform well, return manageable results, and don't time out.

| where Timestamp > ago(7d)

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

За диапазоном времени сразу последует поиск имен файлов процессов, представляющих приложение PowerShell.The time range is immediately followed by a search for process file names representing the PowerShell application.

// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")

Поиск определенных строк командSearch for specific command strings

После этого запрос ищет строки в строках команд, которые обычно используются для скачивания файлов с помощью PowerShell.Afterwards, the query looks for strings in command lines that are typically used to download files using PowerShell.

// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
    "DownloadFile",
    "DownloadData",
    "DownloadString",
    "WebRequest",
    "Shellcode",
    "http",
    "https")

Настройка столбцов результатов и длиныCustomize result columns and length

Теперь, когда запрос четко определяет данные, которые необходимо найти, можно определить, как выглядят результаты.Now that your query clearly identifies the data you want to locate, you can define what the results look like. project возвращает определенные столбцы и top ограничивает количество результатов.project returns specific columns, and top limits the number of results. Эти операторы помогают обеспечить, чтобы результаты были хорошо отформатированы и достаточно большие и просты в обработке.These operators help ensure the results are well-formatted and reasonably large and easy to process.

| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, 
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp

Выберите запрос Run, чтобы увидеть результаты.Select Run query to see the results. Используйте значок расширения в правом верхнем справа от редактора запроса, чтобы сосредоточиться на запросе и результатах поиска.Use the expand icon at the top right of the query editor to focus on your hunting query and the results.

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

Совет

Результаты запроса можно просматривать как диаграммы и быстро настраивать фильтры.You can view query results as charts and quickly adjust filters. Инструкции по работе с результатами запросовFor guidance, read about working with query results

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

Вы только что запустите первый запрос и имеете общее представление о его компонентах.You've just run your first query and have a general idea of its components. Пришло время немного отойтки и изучить некоторые основы.It's time to backtrack slightly and learn some basics. Язык запросов Kusto, используемый в расширенной охоте, поддерживает ряд операторов, включая обычные, описанные ниже.The Kusto query language used by advanced hunting supports a range of operators, including the following common ones.

ОператорOperator Описание и использованиеDescription and usage
where Фильтрация таблицы по подмножеству строк, удовлетворяющих предикату.Filter a table to the subset of rows that satisfy a predicate.
summarize Создание таблицы, в которой объединяется содержимое исходной таблицы.Produce a table that aggregates the content of the input table.
join Объединение строк двух таблиц, чтобы сформировать новую таблицу, сопоставляя значения заданных столбцов из каждой таблицы.Merge the rows of two tables to form a new table by matching values of the specified column(s) from each table.
count Возврат количества записей в исходный набор записей.Return the number of records in the input record set.
top Возврат первых N записей, отсортированных по заданным столбцам.Return the first N records sorted by the specified columns.
limit Возврат до заданного количества строк.Return up to the specified number of rows.
project Выбор столбцов, которые нужно включить, переименовать или перетащить, и вставка новых вычисляемых столбцов.Select the columns to include, rename or drop, and insert new computed columns.
extend Создание вычисляемых столбцов и их добавление в результирующий набор.Create calculated columns and append them to the result set.
makeset Возврат динамического массива (JSON) множества различных значений, которые выражение (Expr) принимает в группе.Return a dynamic (JSON) array of the set of distinct values that Expr takes in the group.
find Поиск строк, соответствующих предикату, по набору таблиц.Find rows that match a predicate across a set of tables.

Чтобы просмотреть реальные примеры этих операторов, запустите их из пункта Начать работу в разделе Расширенная охота.To see a live example of these operators, run them from the Get started section in advanced hunting.

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

Расширенный поиск поддерживает типы данных Kusto, включая следующие распространенные типы:Advanced hunting supports Kusto data types, including the following common types:

Тип данныхData type Описание и влияния запросаDescription and query implications
datetime Данные и сведения о времени, как правило, представляющие время событий.Data and time information typically representing event timestamps. См. поддерживаемые форматы датSee supported datetime formats
string Строка символов в UTF-8, заключенная в одиночные кавычка () или ' двойные кавычка ( " ).Character string in UTF-8 enclosed in single quotes (') or double quotes ("). Подробнее о строкахRead more about strings
bool Этот тип данных поддерживает true или false заявляет.This data type supports true or false states. См. поддерживаемые литералы и операторыSee supported literals and operators
int 32-bit integer32-bit integer
long 64-bit integer64-bit integer

Дополнительные сведения об этих типах данных читайте в материале о типах данных Kusto scalar.To learn more about these data types, read about Kusto scalar data types.

Помощь при написании запросовGet help as you write queries

Ниже перечислены функции, благодаря которым запросы можно создавать быстрее.Take advantage of the following functionality to write queries faster:

  • Autosuggest— при написании запросов расширенный поиск предоставляет предложения из IntelliSense.Autosuggest—as you write queries, advanced hunting provides suggestions from IntelliSense.
  • Дерево схемы— представление схемы, которое включает список таблиц и их столбцов, предоставляется рядом с рабочей областью.Schema tree—a schema representation that includes the list of tables and their columns is provided next to your working area. Чтобы получить об элементе дополнительные сведения, нужно навести на него указатель мыши.For more information, hover over an item. Чтобы вставить элемент в редактор запросов, нужно дважды щелкнуть по нему.Double-click an item to insert it to the query editor.
  • Ссылка схемы— ссылка на портал с описаниями таблиц и столбцов, а также поддерживаемые типы событий ActionType (значения) и примеры запросовSchema reference—in-portal reference with table and column descriptions as well as supported event types (ActionType values) and sample queries

Работа с несколькими запросами в редактореWork with multiple queries in the editor

Редактор запроса можно использовать для экспериментов с несколькими запросами.You can use the query editor to experiment with multiple queries. Использование нескольких запросов:To use multiple queries:

  • Отделяйте каждый запрос пустой строкой.Separate each query with an empty line.
  • Поместите курсор в любую часть запроса, чтобы выбрать этот запрос перед его запуском.Place the cursor on any part of a query to select that query before running it. При этом будет работать только выбранный запрос.This will run only the selected query. Чтобы запустить другой запрос, переместим курсор соответствующим образом и выберите запрос Run.To run another query, move the cursor accordingly and select Run query.

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

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

Раздел Начало работы содержит несколько простых запросов, использующих часто используемые операторы.The Get started section provides a few simple queries using commonly used operators. Попробуйте выполнить эти запросы и внести в них небольшие изменения.Try running these queries and making small modifications to them.

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

Примечание

Кроме примеров базовых запросов, вы можете получить доступ к общим запросам для определенных сценариев охоты на угрозы.Apart from the basic query samples, you can also access shared queries for specific threat hunting scenarios. Ознакомьтесь с общими запросами в левой части страницы или репозитории GitHub запроса.Explore the shared queries on the left side of the page or the GitHub query repository.

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

Дополнительные сведения о языке запросов Kusto и поддерживаемых операторах см. в статье Документация по языку запросов Kusto.For more information on Kusto query language and supported operators, see Kusto query language documentation.

Примечание

Некоторые таблицы в этой статье могут быть недоступны в Microsoft Defender для конечной точки.Some tables in this article might not be available in Microsoft Defender for Endpoint. Включи Microsoft 365 Defender, чтобы искать угрозы с помощью дополнительных источников данных.Turn on Microsoft 365 Defender to hunt for threats using more data sources. Вы можете переместить расширенные процессы охоты из Microsoft Defender для endpoint в Microsoft 365 Defender, следуя шагам в миграции расширенных запросов охоты из Microsoft Defender для конечной точки.You can move your advanced hunting workflows from Microsoft Defender for Endpoint to Microsoft 365 Defender by following the steps in Migrate advanced hunting queries from Microsoft Defender for Endpoint.