Поделиться через


Создайте задания KQL в озере данных Microsoft Sentinel

Задания KQL — это однократные или запланированные запросы KQL на данные в озере данных Microsoft Sentinel. Используйте задания для расследований и аналитических сценариев, таких как:

  • Длительные однократные запросы для расследований инцидентов и реагирования на инциденты (IR)
  • Задачи агрегирования данных, поддерживающие рабочие процессы обогащения с помощью журналов низкой точности
  • Сопоставление исторической информации об угрозах (TI) для ретроспективного анализа
  • Сканирования по обнаружению аномалий, которые выявляют необычные паттерны в нескольких таблицах

Задания KQL особенно эффективны, если запросы используют соединения или объединения в разных наборах данных.

Используйте задания для переноса данных с уровня озера данных к уровню аналитики. Попав в аналитический уровень, используйте расширенный редактор KQL для запроса данных. Повышение уровня аналитики данных имеет следующие преимущества:

  • Объедините текущие и исторические данные на уровне аналитики для выполнения расширенных моделей аналитики и машинного обучения в данных.
  • Сокращение затрат на запросы путем выполнения запросов на уровне аналитики.
  • Объединение данных из нескольких рабочих областей в одну рабочую область на уровне аналитики.
  • Объединение данных Microsoft Entra ID, Microsoft 365 и Microsoft Resource Graph на уровне аналитики для выполнения расширенной аналитики в разных источниках данных.

Замечание

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

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

Предпосылки

Чтобы создать задания KQL и управлять ими в озере данных Microsoft Sentinel, необходимо выполнить следующие предварительные требования.

Подключение к озеру данных

Чтобы создать задания KQL и управлять ими в озере данных Microsoft Sentinel, необходимо сначала подключиться к озеру данных. Дополнительные сведения о подключении к озеру данных см. в разделе Подключение к озеру данных Microsoft Sentinel.

Разрешения

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

Чтобы создать пользовательские таблицы на уровне аналитики, назначьте роль участника Log Analytics в рабочей области Log Analytics управляемому удостоверению озера данных.

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

  1. На портале Azure перейдите в рабочую область Log Analytics, которой вы хотите назначить роль.
  2. Выберите элемент управления доступом (IAM) в области навигации слева.
  3. выберите Добавить назначение ролей.
  4. В таблице Role выберите участник Log Analytics и выберите Далее.
  5. Выберите управляемое удостоверение, а затем выберите "Выбрать членов".
  6. Управляемое удостоверение вашего хранилища данных — это системное управляемое удостоверение с именем msg-resources-<guid>. Выберите управляемое удостоверение, а затем нажмите кнопку "Выбрать".
  7. Выберите Рецензирование и назначение.

Дополнительные сведения о назначении ролей для управляемых удостоверений см. статью Назначение ролей Azure с помощью портала Azure.

Создание задания

Вы можете создавать задания для выполнения по расписанию или однократно. При создании задания необходимо указать целевую рабочую область и таблицу результатов. Результаты можно записать в новую таблицу или добавить их в существующую таблицу на уровне аналитики. Можно создать новое задание KQL или создать задание из шаблона, содержащего параметры запроса и задания. Дополнительные сведения см. в разделе "Создание задания KQL на основе шаблона".

  1. Запустите процесс создания задания из редактора запросов KQL или на странице управления заданиями.

    1. Чтобы создать задание из редактора запросов KQL, нажмите кнопку "Создать задание " в правом верхнем углу редактора запросов. Снимок экрана: кнопка создания задания в редакторе запросов KQL.

    2. Чтобы создать задание на странице управления заданиями, выберите Microsoft Sentinel>Data lake exploration>Jobs нажмите кнопку Create job. Снимок экрана: кнопка создания задания на странице управления заданиями.

  2. Введите имя задания. Имя задания должно быть уникальным для арендатора. Имена заданий могут содержать до 256 символов. Нельзя использовать # или - в имени задания.

  3. Введите описание задания , предоставляющее контекст и назначение задания.

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

  5. Выберите целевую таблицу:

    1. Чтобы создать новую таблицу, выберите "Создать новую таблицу " и введите имя таблицы. Таблицы, созданные заданиями KQL, имеют суффикс _KQL_CL, добавленный к имени таблицы.

    2. Чтобы добавить к существующей таблице, выберите "Добавить в существующую таблицу " и выберите имя таблицы в раскрывающемся списке. При добавлении в существующую таблицу результаты запроса должны соответствовать схеме существующей таблицы.

  6. Нажмите кнопку Далее. Снимок экрана: страница сведений о новом задании.

  7. Просмотрите или напишите запрос на панели "Подготовка запроса ". Убедитесь, что средство выбора времени имеет требуемый диапазон времени для задания, если диапазон дат не указан в запросе.

  8. Выберите рабочие области для выполнения запроса из раскрывающегося списка "Выбранные рабочие области ". Эти рабочие области — это исходные рабочие области, таблицы которых требуется запрашивать. Выбор рабочих областей определяет таблицы, доступные для запроса. Выбранные рабочие области применяются ко всем вкладкам запросов в редакторе запросов. При использовании нескольких рабочих областей union() оператор применяется по умолчанию к таблицам с одинаковым именем и схемой из разных рабочих областей. workspace() Используйте оператор для запроса таблицы из определенной рабочей области, напримерworkspace("MyWorkspace").AuditLogs.

    Замечание

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

  9. Нажмите кнопку Далее.

    Снимок экрана: панель запросов проверки.

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

  10. Выберите однократное или запланированное задание.

    Замечание

    Редактирование одноразового задания немедленно активирует его выполнение.

  11. Если выбрано расписание, введите следующие сведения:

    1. Выберите частоту повтора в раскрывающемся списке. Вы можете выбрать по минутам, почасовой, ежедневной, еженедельной или ежемесячной.
    2. Задайте значение Повторять каждый для того, чтобы указать, как часто должно выполняться задание относительно выбранной частоты.
    3. В разделе "Задать расписание" выберите дату и введите время. Время начала задания в поле From должно быть не менее 30 минут после создания задания. Задание выполняется с этой даты и времени в соответствии с частотой, выбранной в раскрывающемся списке "Запуск каждого".
    4. Выберите дату До и введите время, чтобы указать, когда заканчивается график выполнения задачи. Если вы хотите, чтобы расписание продолжалось на неопределенный срок, выберите "Задать задание", которое будет выполняться на неопределенный срок.

    Времена начала и окончания задания устанавливаются для языкового стандарта пользователя.

    Замечание

    Если вы планируете выполнение задания на высокой частоте, например каждые 30 минут, необходимо учитывать время, затраченное на получение данных в озере данных. Обычно задержка составляет до 15 минут, прежде чем вновь поступившие данные доступны для запросов.

  12. Выберите Далее, чтобы просмотреть сведения о задании.

    Снимок экрана: панель заданий расписания.

  13. Просмотрите сведения о задании и нажмите кнопку "Отправить ", чтобы создать задание. Если задание является однократным заданием, оно выполняется после нажатия кнопки "Отправить". Если задание запланировано, он добавляется в список заданий на странице "Задания " и выполняется в соответствии с данными и временем начала. Снимок экрана: панель сведений о задании проверки.

  14. Задание запланировано, и отображается следующая страница. Вы можете просмотреть задание, выбрав ссылку. Снимок экрана: страница создания задания.

Создание задания из шаблона

Задание KQL можно создать из предварительно определенного шаблона задания. Шаблоны заданий содержат параметры запроса KQL и задания, такие как целевая рабочая область и таблица, расписание и описание. Вы можете создавать собственные шаблоны заданий или использовать встроенные шаблоны, предоставляемые корпорацией Майкрософт.

Чтобы создать задание из шаблона, выполните следующие действия.

  1. На странице "Задания " или редакторе запросов KQL выберите "Создать задание", а затем выберите "Создать из шаблона".

  2. На странице шаблонов заданий выберите шаблон, который вы хотите использовать в списке доступных шаблонов.

  3. Ознакомьтесь с Description и запросом KQL из шаблона.

  4. Выберите "Создать задание" из шаблона.

    Снимок экрана: страница шаблонов заданий.

  5. Откроется мастер создания заданий на странице создания нового задания KQL. Сведения о задании были предварительно заполнены из шаблона, за исключением рабочей области назначения.

  6. Выберите целевую рабочую область в раскрывающемся списке "Выбор рабочей области ".

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

  8. Остальные шаги совпадают с созданием нового задания. Поля предварительно заполнены из шаблона и могут быть изменены по мере необходимости. Дополнительные сведения см. в разделе "Создание задания".

Доступны следующие шаблоны:

Имя шаблона Категория
Увеличение числа аномальных попыток входа
Анализ анализа тенденций входа в Entra ID для обнаружения необычных изменений расположения пользователей в разных приложениях путем вычисления линий тренда разнообразия местоположений. Он выделяет топ три учетные записи с резким увеличением изменчивости местоположения и перечисляет их связанные местоположения в пределах 21-дневных периодов.

Целевая таблица: UserAppSigninLocationTrend

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Охота
Аномальное поведение при входе в систему в связи с изменениями местоположения
Определение аномального поведения входа на основе изменения местоположения у пользователей и приложений Entra ID для выявления внезапных изменений в поведении.

Целевая таблица: UserAppSigninLocationAnomalies

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Обнаружение аномалий
Аудит редких действий в приложении
Найдите приложения, выполняющие редкие действия (например, согласие, гранты), которые могут тихо создавать привилегии. Сравните текущий день с последними 14 днями аудита, чтобы определить новые действия аудита. Полезно для отслеживания вредоносных действий, связанных с добавлением или удалением пользователей или групп, с помощью Azure Приложений и автоматических утверждений.

Целевая таблица: AppAuditRareActivity

Обратная проверка запроса: 14 дней

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Охота
Эксклюзивные операции уровня подписки Azure
Определите конфиденциальные события Azure уровня подписки на основе журналов действий Azure. Например, мониторинг на основе имени операции "Создание или обновление моментального снимка", который используется для создания резервных копий, но может быть неправильно использован злоумышленниками для дампа хэшей или извлечения конфиденциальной информации с диска.

Целевая таблица: AzureSubscriptionSensitiveOps

Обратная проверка запроса: 14 дней

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Охота
Тенденция ежедневной активности по приложению в AuditLogs
За последние 14 дней определите, происходит ли операция "Согласие на приложение", начатая пользователем или приложением. Это может указывать на то, что разрешения на доступ к перечисленным AzureApp были предоставлены злоумышленнику. Согласие на приложение, добавление главного объекта службы и добавление событий Auth2PermissionGrant должны происходить редко. При наличии, дополнительный контекст добавляется из AuditLogs на основе идентификатора корреляции из той же учетной записи, что выполнила "согласие на использование приложения".

Целевая таблица: AppAuditActivityBaseline

Обратная проверка запроса: 14 дней

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Отправная точка
Ежедневные тенденции геолокации по пользователю или приложению в SignInLogs
Создавайте ежедневные тенденции для всех входов пользователей, количества локаций и использования их приложений.

Целевая таблица: UserAppSigninLocationBaseline

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Отправная точка
Тенденция ежедневного сетевого трафика на IP-адрес назначения
Создайте базовые показатели, включая байты и уникальные пиры для обнаружения маячковой активности и эксфильтрации данных.

Целевая таблица: NetworkTrafficDestinationIPDailyBaseline

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Отправная точка
Тенденция ежедневного сетевого трафика на IP-адрес назначения с статистикой передачи данных
Определите внутренний узел, который инициировал исходящий трафик к заданному назначению, включая тенденции объема и оценку радиуса воздействия.

Целевая таблица: NetworkTrafficDestinationIPTrend

Период обратного анализа запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Охота
Тенденция ежедневного сетевого трафика для каждого исходного IP-адреса
Создайте базовые показатели, включая байты и уникальные пиры для обнаружения маячковой активности и эксфильтрации данных.

Целевая таблица: NetworkTrafficSourceIPDailyBaseline

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Отправная точка
Тенденция ежедневного сетевого трафика для каждого исходного IP-адреса с статистикой передачи данных
Сегодняшние подключения и байты оцениваются по сравнению с дневной базой хоста, чтобы определить, отклоняются ли наблюдаемые поведения значительно от установленного образца.

Целевая таблица: NetworkTrafficSourceIPTrend

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Охота
Тенденция местоположений ежедневного входа для каждого пользователя и приложения
Создайте базовый план входа для каждого пользователя или приложения с типичным географическим и IP-адресом, что позволяет эффективно и экономично обнаруживать аномалии в масштабе.

Целевая таблица: UserAppSigninLocationDailyBaseline

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Отправная точка
Тенденция ежедневного выполнения процесса
Определите новые процессы и распространенность, что упрощает обнаружение новых редких процессов.

Целевая таблица: EndpointProcessExecutionBaseline

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Отправная точка
Идентификатор записи редкий агент пользователя для каждого приложения
Установите базовую линию типа UserAgent (т. е. браузер, офисное приложение и т. д.), который обычно используется для конкретного приложения, анализируя данные за несколько дней. Затем он в текущем дне ищет любые отклонения от этого шаблона, то есть типы UserAgent, ранее не встречавшихся в сочетании с этим приложением.

Целевая таблица: UserAppRareUserAgentAnomalies

Обратный просмотр запросов: 7 дней

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Обнаружение аномалий
Сопоставление сетевых журналов IOC
Определите все IP-индикаторы компрометации (IOCs) из разведывательной информации об угрозах (TI), выполнив поиск соответствий в CommonSecurityLog.

Целевая таблица: NetworkLogIOCMatches

Обратный просмотр запросов: 1 час

Расписание: по часам

Дата начала: Текущая дата + 1 ч
Охота
Новые процессы, наблюдаемые за последние 24 часа
Новые процессы в стабильных средах могут указывать на вредоносные действия. Анализ сеансов входа, в которых запущены эти двоичные файлы, могут помочь определить атаки.

Целевая таблица: EndpointNewProcessExecutions

Обратная проверка запроса: 14 дней

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Охота
Операции с файлами в SharePoint через ранее невиданные IP-адреса
Определите аномалии с помощью поведения пользователя, задав пороговое значение для значительных изменений в действиях отправки и скачивания файлов с новых IP-адресов. Он устанавливает базовый уровень типичного поведения, сравнивает его с недавней активностью и помечает отклонения, превышающие пороговое значение по умолчанию 25.

Целевая таблица: SharePointFileOpsNewIPs

Обратная проверка запроса: 14 дней

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Охота
Пало Альто потенциальные сетевые маяки
Определите шаблоны сигнализации из журналов сетевого трафика Palo Alto на основе повторяющихся временных дельта-шаблонов. Запрос использует различные функции KQL для вычисления разницы во времени, а затем сравнивает её с общим количеством событий, наблюдаемых в течение дня, чтобы определить долю маячения.

Таблица назначения: PaloAltoNetworkBeaconingTrend

Обратный просмотр запросов: 1 день

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Охота
Подозрительная попытка входа в Windows вне обычного времени
Определите необычные события входа в Windows, происходящие вне обычных часов пользователя, сравнив с активностью входов за последние 14 дней и помечая аномалии на основе исторических шаблонов.

Целевая таблица: WindowsLoginOffHoursAnomalies

Обратная проверка запроса: 14 дней

Расписание: ежедневно

Дата начала: Текущая дата + 1 ч
Обнаружение аномалий

Соображения и ограничения

При создании заданий в озере данных Microsoft Sentinel рассмотрите следующие ограничения и рекомендации.

KQL

  • Поддерживаются все операторы и функции KQL, кроме следующих:

    • adx()
    • arg()
    • externaldata()
    • ingestion_time()
  • При использовании stored_query_results команды укажите диапазон времени в запросе KQL. Селектор времени над редактором запросов не работает с этой командой.

  • Определяемые пользователем функции не поддерживаются.

Вакансии

  • Имена заданий должны быть уникальными для клиента.
  • Имена заданий могут содержать до 256 символов.
  • Имена заданий не могут содержать # или -.
  • Время начала задания должно быть не менее 30 минут после создания или редактирования задания.

Задержка приема в дата-озере

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

Чтобы избежать запросов к данным, которые еще не доступны, включите параметр задержки в запросы или задания KQL. Например, при планировании автоматических заданий задайте время now() - delayокончания запроса, где delay соответствует обычной задержке готовности к данным в течение 15 минут. Этот подход гарантирует, что запросы направлены на только данные, которые полностью загружены и готовы к анализу.

let lookback = 15m;
let delay = 15m;
let endTime = now() - delay;
let startTime = endTime - lookback;
CommonSecurityLog
| where TimeGenerated between (startTime .. endTime)

Этот подход эффективен для заданий с короткими окнами обратного просмотра или частыми интервалами выполнения.

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

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

Имена столбцов

Имена столбцов должны начинаться с буквы.

Для экспорта не поддерживаются следующие стандартные столбцы. Процесс загрузки данных перезаписывает эти столбцы на конечном уровне:

  • Идентификатор арендатора (TenantId)

  • _ВремяПолучения

  • Тип

  • Система источников

  • _ResourceId (идентификатор ресурса)

  • _SubscriptionId (идентификатор подписки)

  • _ItemId

  • _BilledSize (Размер счета)

  • _ПодлежитУчету

  • _WorkspaceId

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

Просмотрите ограничения службы в разделе лимиты службы озера данных Microsoft Sentinel.

Замечание

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

Параметры и ограничения сервиса для заданий KQL

В следующей таблице перечислены параметры службы и ограничения для заданий KQL в озере данных Microsoft Sentinel.

Категория Параметр или ограничение
Параллельное выполнение задач для каждого арендатора 3
Время ожидания выполнения запроса задания 1 час
Задачи для каждого арендатора (включенные задачи) 100
Количество выходных таблиц в одном задании 1
Область запроса Несколько рабочих областей
временной диапазон запроса До 12 лет

Советы по устранению неполадок и сообщения об ошибках см. в разделе Устранение неполадок KQL-запросов для озера данных Microsoft Sentinel.