Мониторинг работоспособности и аудит целостности правил аналитики

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

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

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

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

Сводка

Microsoft Sentinel предоставляет два типа журналов для мониторинга правил аналитики: журналы состояния и журналы аудита. В следующих разделах приведены сведения о записях каждого журнала и о том, где хранятся данные.

  • журналы состояния правил аналитики Microsoft Sentinel:

    • В этом журнале регистрируются события, которые записывают выполнение правил аналитики и конечный результат этих выполнений— если они успешно или неудачно завершились, и если они завершились сбоем, то почему.
    • Журнал также записывает для каждого выполнения правила аналитики:
      • Сколько событий было записано в запросе правила.
      • Указывает, превысило ли количество событий пороговое значение, заданное в правиле, в результате чего было сформировано оповещение.

    Эти журналы собираются в таблице SentinelHealth в системе Log Analytics.

  • журналы аудита правил аналитики Microsoft Sentinel:

    • Этот журнал фиксирует события, которые записывают изменения, внесенные в любое правило аналитики, включая следующие сведения:
      • Имя измененного правила.
      • Какие свойства правила были изменены.
      • Состояние параметров правила до и после изменения.
      • Пользователь или учетная запись, которые внесли изменение.
      • Исходный IP-адрес и дата и время изменения.
      • ... и многое другое.

    Эти журналы собираются в таблице SentinelAudit в Log Analytics.

Использование таблиц данных SentinelHealth и SentinelAudit

Чтобы получить данные аудита и работоспособности из таблиц SentinelHealth и SentinelAudit, необходимо сначала включить функцию работоспособности Microsoft Sentinel для рабочей области. Дополнительные сведения см. в статье Включение аудита и мониторинга работоспособности в Microsoft Sentinel.

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

Общие сведения о событиях в таблицах SentinelHealth и SentinelAudit

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

  • Запланированный запуск правила аналитики.
  • Запуск правил аналитики почти в реальном времени (NRT).

Дополнительные сведения см. в разделе Схема столбцов таблицы SentinelHealth.

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

  • Создание или обновление правила аналитики.
  • Правило аналитики удалено.

Дополнительные сведения см. в статье Схема столбцов таблицы SentinelAudit.

Выполнение запросов для обнаружения проблем с работоспособностью и целостностью

Для достижения наилучших результатов создайте запросы на предварительно созданных функциях для этих таблиц, _SentinelHealth() и _SentinelAudit(), а не запрашивать таблицы напрямую. Эти функции поддерживают обратную совместимость запросов, если в схему таблиц внесены изменения.

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

_SentinelHealth()
| where SentinelResourceType == "Analytics Rule"

При необходимости можно дополнительно отфильтровать список по определенному типу правила аналитики. Для этого используйте SentinelResourceKind параметр .

| where SentinelResourceKind == "Scheduled"

# OR

| where SentinelResourceKind == "NRT"

Ниже приведены примеры запросов, которые помогут вам приступить к работе:

  • Найдите правила, которые являются "автоматически отключенными правилами запланированной аналитики":

    _SentinelHealth()
    | where SentinelResourceType == "Analytics Rule"
    | where Reason == "The analytics rule is disabled and was not executed."
    
  • Подсчитайте правила и запуски, которые завершились успешно или сбоем, по причинам:

    _SentinelHealth()
    | where SentinelResourceType == "Analytics Rule"
    | summarize Occurrence=count(), Unique_rule=dcount(SentinelResourceId) by Status, Reason
    
  • Найдите действие удаления правил в таблице SentinelAudit . Этот запрос возвращает записи аудита, в которых было удалено правило аналитики, чтобы отслеживать, кто удалил правило и когда:

    _SentinelAudit()
    | where SentinelResourceType =="Analytic Rule"
    | where Description =="Analytics rule deleted"
    
  • Найдите действие в правилах по имени правила и имени действия:

    _SentinelAudit()
    | where SentinelResourceType =="Analytic Rule"
    | summarize Count= count() by RuleName=SentinelResourceName, Activity=Description
    
  • Найдите действия, связанные с правилами, по имени вызывающей стороны (сущности, выполнившей действие):

    _SentinelAudit()
    | where SentinelResourceType =="Analytic Rule"
    | extend Caller= tostring(ExtendedProperties.CallerName)
    | summarize Count = count() by Caller, Activity=Description
    

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

Дополнительные сведения о KQL см. в статье Общие сведения о язык запросов Kusto (KQL).

Другие ресурсы

Проблемы работоспособности запросов и целостности для запланированных правил

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

Сбой в одной из шести попыток указывает на задержку при активации оповещения. Следующий запрос вычисляет точную задержку:

_SentinelHealth()
| where SentinelResourceType == @"Analytics Rule" 
| where SentinelResourceKind == "Scheduled"
| extend startTime = todatetime(ExtendedProperties["QueryStartTimeUTC"]), executionStart = todatetime(ExtendedProperties["executionStart"])
| extend delay = datetime_diff('minute', startTime, executionStart)

Чтобы найти полные сбои (то есть пропущенное окно), используйте следующий запрос:

_SentinelHealth()| where SentinelResourceType == @"Analytics Rule" 
| where SentinelResourceKind == "Scheduled"
| where Status != "Success"
| extend startTime = tostring(ExtendedProperties["QueryStartTimeUTC"])
| summarize failuresByStartTime = count() by startTime, SentinelResourceId
| where failuresByStartTime == 6
| summarize count() by SentinelResourceId

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

Проблемы работоспособности запросов и целостности для правил NRT

Механизм повтора для правил NRT ведет себя иначе, чем запланированные правила. Если правило не выполняется, система также учитывает окно сбоя при следующем запуске (через минуту). Это поведение сохраняется при не более чем 60 сбоях (один час).

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

_SentinelHealth()
| where SentinelResourceKind == "NRT"
| extend startTime = todatetime(ExtendedProperties["QueryStartTimeUTC"]), endTime = todatetime(ExtendedProperties["QueryEndTimeUTC"]), alertsCreated = toint(ExtendedProperties["AlertsGeneratedAmount"])
| where alertsCreated == 0 
| extend ruleDelay = datetime_diff('minute', endTime, startTime)
| project TimeGenerated, ruleDelay, SentinelResourceId
| render timechart

Вы также можете определить правило аналитики для активации оповещений о значительных задержках (например, если правило NRT имеет задержку более 10 минут).

Состояния, ошибки и рекомендуемые шаги

Для выполнения правила аналитики по расписанию или выполнения правила аналитики NRT могут отображаться следующие состояния и описания:

  • Успешно. Правило выполнено успешно, создавая <n> оповещения.

  • Успешно. Правило выполнено успешно, но не достигло порогового значения (<n>), необходимого для создания оповещения.

  • Сбой. В этих описаниях объясняется сбой правила и что с ними можно сделать.

    Описание Исправления
    При выполнении запроса произошла внутренняя ошибка сервера.
    Истекло время ожидания выполнения запроса.
    Таблица, на которую ссылается запрос, не найдена. Убедитесь, что соответствующий источник данных подключен.
    При выполнении запроса произошла семантическая ошибка. Попробуйте сбросить правило аналитики, изменив и сохранив его (без изменения параметров).
    Функция, вызываемая запросом, называется зарезервированным словом. Удалите или переименуйте функцию.
    При выполнении запроса произошла синтаксическая ошибка. Попробуйте сбросить правило аналитики, изменив и сохранив его (без изменения параметров).
    Рабочая область не найдена.
    Этот запрос использует слишком много системных ресурсов, и выполнение этого запроса запрещено. Просмотрите и настройте правило аналитики. Ознакомьтесь с документацией по обзору языка запросов Kusto и по рекомендациям по использованию языка запросов Kusto.
    Функция, вызываемая запросом, не найдена. Проверьте наличие в рабочей области всех функций, вызываемых запросом.
    Рабочая область, используемая в запросе, не найдена. Убедитесь, что все рабочие области, указанные в запросе, существуют.
    У вас нет разрешений на выполнение этого запроса. Попробуйте сбросить правило аналитики, изменив и сохранив его (без изменения параметров).
    У вас нет разрешений на доступ к одному или нескольким ресурсам в запросе.
    Запрос ссылается на путь к хранилищу, который не найден.
    Запросу было отказано в доступе к пути к хранилищу.
    В этой рабочей области определено несколько функций с одинаковыми именами. Удалите или переименуйте избыточную функцию и сбросьте правило, изменив и сохранив его.
    Этот запрос не вернул никакого результата.
    В этом запросе не поддерживаются несколько наборов результатов.
    Результаты запроса содержат разное количество полей в каждой строке.
    Выполнение правила было отложено из-за длительного времени приема данных.
    Выполнение правила было задержано из-за временных проблем.
    Оповещение не было обогащено из-за временных сбоев.
    Оповещение не было обогащено из-за проблем с сопоставлением сущностей.
    < number> сущностей были исключены из оповещения <name> из-за ограничения размера оповещения в 32 КБ.
    < Количество> сущностей было удалено из оповещения <name> из-за проблем с сопоставлением сущностей.
    В результате запроса получено <number> событий, что превышает максимально допустимое количество результатов — <limit> — для правил типа <rule type> с конфигурацией группировки событий "оповещение для каждой строки". Для первых <limit-1> событий было создано отдельное оповещение для каждой строки, а также дополнительное агрегированное оповещение, чтобы охватить все события.
    - <number> = количество событий, возвращаемых запросом.
    - <limit> = в настоящее время 150 оповещений для запланированных правил, 30 для правил NRT
    - <тип правила> = запланированный или NRT

Используйте рабочую книгу для аудита и мониторинга работоспособности

Чтобы визуализировать данные о состоянии правил аналитики и данные аудита, установите и настройте книгу «Состояние и аудит аналитики» из Центра содержимого Microsoft Sentinel.

  1. Чтобы сделать книгу доступной в вашей рабочей области, установите решение, содержащее книгу, из центра содержимого Microsoft Sentinel:

    1. На портале Microsoft Sentinel выберите Центр содержимого (предварительная версия) в меню Управление содержимым.

    2. В Центре содержимого введите health в строке поиска и выберите Analytics Health & Audit среди решений Workbook в разделе Standalone в результатах.

      Снимок экрана с выбором книги «Состояние аналитики» в центре контента.

    3. Выберите Установить в области сведений, а затем выберите Сохранить, которая появится на его месте.

  2. Когда решение указывает, что оно установлено, выберите Книги в меню Управление угрозами .

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

  3. В коллекции Рабочие книги выберите вкладку Шаблоны, введите health в строке поиска и выберите Работоспособность и аудит аналитики из результатов.

    Снимок экрана, на котором показан выбор книги «Состояние аналитики» в галерее шаблонов.

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

  5. В книге Excel сначала выберите подписку и рабочую область, которые вы хотите просмотреть (возможно, они уже выбраны), затем задайте временной диапазон, чтобы отфильтровать данные в соответствии с вашими задачами. Используйте переключатель Показать справку, чтобы отобразить встроенные пояснения в книге.

    Снимок экрана вкладки

Эта книга содержит три раздела с вкладками:

Просмотрите сводки о состоянии и результатах аудита на вкладке "Обзор"

На вкладке Обзор отображаются сводки по работоспособности и аудиту:

  • Сводные данные о состоянии запусков правил аналитики в выбранной рабочей области: количество запусков, число успешных и неудачных выполнений, а также сведения о событиях сбоев.
  • Сводки аудита действий по правилам аналитики в выбранной рабочей области: количество действий по времени, количество действий по типам и количество действий разных типов по правилам.

Используйте вкладку "Состояние", чтобы выявить проблемы с правилами аналитики

Вкладка Состояние позволяет просматривать определённые события состояния.

Снимок экрана с выбранной вкладкой

  • Отфильтруйте все данные на странице по статусу (успешно или неуспешно) и типу правила (по расписанию или NRT).
  • Просмотрите тенденции успешных и неудачных запусков правил (в зависимости от фильтра состояния) за выбранный период времени. Вы можете выделить участок на графике тренда по временной шкале, чтобы увидеть часть исходного диапазона времени. Снимок экрана: правило аналитики выполняется с течением времени в книге работоспособности аналитики.
  • Отфильтруйте остальную часть страницы по причине.
  • Просматривайте общее число запусков по всем правилам аналитики с пропорциональным распределением по статусам на круговой диаграмме.
  • Далее представлена таблица с количеством уникальных правил аналитики, которые выполнялись, с разбивкой по типам правил и состоянию.
    • Выберите состояние, чтобы отфильтровать оставшиеся диаграммы для этого состояния.
    • Очистите фильтр, щелкнув значок "Очистить выделение" (он выглядит как значок "Отменить") в правом верхнем углу диаграммы. Снимок экрана с количеством выполненных правил по статусу и типу в книге «Работоспособность аналитики».
  • Просмотрите каждое состояние с количеством возможных причин этого состояния. (Отображаются только причины, представленные в запусках за выбранный период времени.)
    • Выберите состояние, чтобы отфильтровать оставшиеся диаграммы для этого состояния.
    • Очистите фильтр, щелкнув значок "Очистить выделение" (он выглядит как значок "Отменить") в правом верхнем углу диаграммы. Снимок экрана с количеством уникальных причин по статусу в книге аналитики работоспособности.
  • Далее приведён список этих причин с суммарным количеством запусков правил и количеством уникальных правил, которые запускались.
    • Выберите причину для фильтрации следующих диаграмм по этой причине.
    • Очистите фильтр, щелкнув значок "Очистить выделение" (он выглядит как значок "Отменить") в правом верхнем углу диаграммы. Снимок экрана запусков правил по уникальным причинам в книге аналитики работоспособности.
  • После этого отобразится список уникальных правил аналитики, которые были запущены, с последними результатами и линиями тенденций их успешности и неудачи (в зависимости от состояния, выбранного для фильтрации списка).
    • Выберите правило для детализации и отображения новой таблицы со всеми выполнениями этого правила (в выбранный период времени).
    • Очистите таблицу, щелкнув значок "Очистить выделение" (он выглядит как значок "Отменить") в правом верхнем углу диаграммы. Снимок экрана со списком выполненных уникальных правил, со статусом и линиями тренда, в книге «Состояние аналитики».
  • Если выбрать правило в списке, появится новая таблица со сведениями о работоспособности выбранного правила. Снимок экрана: список запусков выбранного правила аналитики в книге работоспособности средств аналитики.

Использование вкладки "Аудит" для проверки изменений правил аналитики

Вкладка Аудит позволяет детализировать определенные события аудита.

Снимок экрана, показывающий выбор вкладки «Аудит» в книге «Состояние аналитики».

  • Фильтруйте данные всей страницы по типу правил аудита (запланированные или Fusion, которые основаны на корреляции и обнаруживают многоступенчатые атаки).
  • Просмотрите тенденции аудита действий по правилам аналитики за выбранный период времени. Вы можете выделить участок на графике тренда по временной шкале, чтобы увидеть часть исходного диапазона времени. Снимок экрана динамики активности аудита в книге состояния аналитики.
  • Просмотрите количество событий аудита с разбивкой по действиям и типу правил.
    • Выберите действие, чтобы отфильтровать следующие диаграммы для этого действия.
    • Очистите фильтр, щелкнув значок "Очистить выделение" (он выглядит как значок "Отменить") в правом верхнем углу диаграммы. Снимок экрана числа событий аудита по действиям и типам в книге «Состояние аналитики».
  • Просмотр количества событий, проверяемых по имени правила.
    • Выберите имя правила, чтобы отфильтровать следующую таблицу для этого правила, а также детализировать и отобразить новую таблицу со всеми действиями в этом правиле (в выбранный период времени). (См. после следующего снимка экрана.)
    • Очистите фильтр, щелкнув значок "Очистить выделение" (он выглядит как значок "Отменить") в правом верхнем углу диаграммы. Снимок экрана событий аудита по имени правила и инициатору вызова в книге мониторинга работоспособности аналитики.
  • Посмотрите количество событий аудита по инициатору (субъекту, выполнившему действие).
  • Если вы выбрали имя правила на предыдущей диаграмме, появится другая таблица, показывающая проверенные действия в этом правиле. Выберите значение, которое отображается в виде ссылки в столбце ExtendedProperties, чтобы открыть боковую панель, отображающую изменения, внесенные в правило. Снимок экрана активности аудита для выбранного правила в книге мониторинга работоспособности аналитики.