Использование пользовательских функций

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

  • Microsoft Defender

Важно!

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

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

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

Типы функций

Расширенная охота включает три различных типа функций:

Скриншот панели расширенных охотничьих функций, показывающих категории встроенных функций, общих функций и моих функций.

  • Встроенные функции — предопределенные функции, входящие в состав расширенного поиска Microsoft Defender. Все расширенные экземпляры охоты предоставляют эти функции, и их нельзя изменить.
  • Общие функции — пользовательские функции, создаваемые пользователями. Все пользователи определённого арендатора имеют доступ к этим функциям. Пользователи могут изменять эти функции и управлять ими.
  • Мои функции — пользовательские функции, создаваемые пользователем. Только пользователь, создавший эти функции, может просматривать и изменять их.

Пользовательские функции, импортированные из Microsoft Sentinel log Analytics

Клиенты Microsoft Sentinel, которые ранее создали и сохранили пользовательские функции в рабочей области Log Analytics, могут получить доступ к этим функциям на портале Defender в разделе Общие функции>Функции рабочей области Sentinel. Эти функции можно использовать для рабочих книг, правил аналитики и запуска запросов расширенного поиска в портале Defender, но не в настраиваемых правилах обнаружения.

Дополнительные сведения о пользовательских правилах обнаружения на портале Defender см. в разделе "Создание настраиваемых правил обнаружения".

Примечание.

При создании новой функции в расширенной охоте нельзя использовать то же имя, что и импортированные и сохраненные в функциях рабочей области Sentinel.

Напишите собственную пользовательскую функцию

В редакторе запросов расширенной охоты после создания запроса создайте функцию из него следующим образом:

  1. Выберите Сохранить , а затем — Сохранить как функцию. Скриншот меню «Сохранение», где нужно выбрать «Сохранить как функцию» для создания повторно используемой пользовательской функции.

  2. На всплывающей панели Сохранить как функцию укажите следующие сведения:

    • Name — имя функции. Может содержать только цифры, английские буквы и символы подчеркивания. Чтобы избежать случайного использования ключевых слов Kusto, имена функций начинаются или заканчиваются символом подчеркивания или начинаются с прописной буквы.
    • Расположение — папка, в которой требуется сохранить функцию, общую или частную.
    • Описание — описание, которое помогает другим пользователям понять назначение функции и ее работу.
    • Параметры . Добавьте параметр для каждой переменной в функции, для которых требуется значение при его использовании. Дополнительные сведения см. в разделе Добавление параметров в настраиваемую функцию.

    Скриншот панели «Сохранить как функции», используемой для определения названия, места хранения, описания и параметров пользовательской функции.

  3. Выберите Сохранить.

Важно!

Пользовательские функции, создаваемые при расширенной охоте, можно использовать в пользовательских правилах обнаружения и расширенных запросах охоты, если вы не сохраняете функцию в рабочей области Microsoft Sentinel.

Если создать пользовательскую функцию и сохранить ее в рабочей области Microsoft Sentinel, ее можно использовать в книгах и правилах аналитики для любого содержимого Microsoft Sentinel в этой рабочей области, но не в пользовательских правилах обнаружения.

Добавление параметров в настраиваемую функцию

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

Чтобы добавить параметры при сохранении пользовательской функции, выберите Добавить параметр и введите следующие свойства:

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

Перечисление параметров в порядке их создания. Список параметров, которые не имеют значения по умолчанию, перед параметрами, имеющими значение по умолчанию.

Создание пользовательских функций с табличными параметрами

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

Чтобы создать табличные параметры для пользовательской функции, выполните следующие действия:

  1. Выберите Добавить параметр , а затем выберите таблицу в качестве типа.
  2. Введите имя и значение по умолчанию для таблицы.
  3. Сопоставите каждый столбец, на который ссылается запрос, с таблицей. Выберите Добавить столбец и введите свойства столбца.

Снимок экрана: конфигурация параметра таблицы с сопоставлением столбцов в пользовательских функциях.

Примечание.

  • Функцию можно сохранить с несколькими таблицами.
  • Если запрос не ссылается ни на какие столбцы в параметре таблицы, вы по-прежнему можете сохранить и запустить функцию без сопоставления столбцов.
  • Табличные и скалярные параметры можно задать в одной функции.

Используйте пользовательскую функцию

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

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

Если запрос требует аргументов, предоставьте их с помощью следующего синтаксиса: function_name(параметр 1, параметр 2, ...)

Снимок экрана: параметр

Примечание.

Нельзя использовать функции внутри другой функции.

Просмотр и изменение кода функции

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

Снимок экрана: параметр

Изменение пользовательской функции

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

Снимок экрана: параметр

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

Примечание.

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

Удалить пользовательскую функцию

Вы можете удалить функции из раздела Мои функции и функции, созданные в разделе Общие функции. Вы не можете удалить функции, которые вы не создали, если у вас нет разрешений диспетчера данных безопасности.

Чтобы удалить функцию, выделите три точки справа от функции и нажмите кнопку Удалить.

Скриншот контекстного меню функции с опцией Delete для пользовательской функции.

Совет

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