Управление содержимым в виде кода с помощью репозиториев Microsoft Sentinel

Репозитории Microsoft Sentinel позволяют развертывать настраиваемое содержимое Sentinel из внешнего репозитория системы управления версиями и управлять им в рамках непрерывной интеграции и непрерывной доставки (CI/CD). Эта автоматизация устраняет необходимость в ручных процессах для обновления и развертывания пользовательского содержимого в рабочих областях. Подмножество контента как кода — это правила обнаружения как код (DaC). Microsoft Sentinel Repositories также поддерживает DaC.

Дополнительные сведения о содержимом Sentinel см. в разделе Сведения о содержимом и решениях Microsoft Sentinel.

Как работают репозитории Microsoft Sentinel

Эти пользовательские типы контента Microsoft Sentinel можно развернуть из внешнего репозитория системы контроля версий, который вы подключаете к Microsoft Sentinel:

  • Правила аналитики
  • Правила автоматизации
  • Пользовательские правила обнаружения (предварительная версия)
  • Поисковые запросы
  • Парсеры
  • Руководства
  • Рабочие книги

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

Планирование подключения к репозиторию

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

  • Поддерживаются только подключения к репозиториям GitHub и Azure DevOps.
  • Требуется доступ уровня Collaborator к вашему репозиторию GitHub или доступ уровня Project Administrator к вашему репозиторию Azure DevOps.
  • Приложению Microsoft Sentinel требуется авторизация в репозитории.
  • Действия должны быть включены для GitHub.
  • Конвейеры должны быть включены для Azure DevOps.
  • Подключение Azure DevOps должно располагаться в том же клиенте, что и рабочая область Microsoft Sentinel.

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

Если вы нашли содержимое в публичном репозитории, в котором вы не являетесь участником, сначала импортируйте его, создайте форк или клонируйте его в репозиторий, в котором вы являетесь участником. Затем подключите репозиторий к рабочей области Microsoft Sentinel. Дополнительные сведения см. в статье Развертывание пользовательского содержимого из репозитория.

Максимальное количество подключений и развертываний

  • Каждая рабочая область Microsoft Sentinel в настоящее время ограничена пятью подключениями к репозиторию.
  • История развертывания каждой группы ресурсов Azure ограничена 800 развертываниями. При наличии большого объема развертываний шаблонов в одной или нескольких группах ресурсов может появиться сообщение об ошибке Deployment QuotaExceeded . Дополнительные сведения см. в документации по шаблонам Azure Resource Manager в разделе DeploymentQuotaExceeded.

Планирование содержимого репозитория

Репозитории Microsoft Sentinel поддерживают развертывание содержимого, которое хранится в виде файлов Bicep или шаблонов Azure Resource Manager (ARM). Мы рекомендуем использовать Bicep, который является более интуитивно понятным и упрощает описание Azure ресурсов и Microsoft Sentinel содержимого.

Шаблон для каждого типа контента имеет определенную структуру и имя параметра, как описано в справочнике по шаблону ресурсов Sentinel. Примеры каждого типа контента см. в репозитории RepositoriesSampleContent.

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

Снимок экрана с успешным подключением к репозиторию. Показан RepositoriesSampleContent. Этот снимок экрана сделан после того, как образец был импортирован из репозитория SentinelCICD в частный репозиторий GitHub в организации FourthCoffee.

Хотя вы можете создавать шаблоны с нуля, часто проще начать либо с YAML-файлов из общедоступного репозитория Sentinel на GitHub, либо с готового содержимого Microsoft Sentinel. В этой таблице показано, как преобразовать шаблон ARM для использования с репозиториями Microsoft Sentinel.

Тип контента Преобразовать из общедоступного YAML-файла Sentinel Экспорт из Sentinel Справочник по шаблонам Примеры шаблонов
Правила аналитики Скрипт PowerShell Функция экспорта или сценарий PowerShell Reference Шаблоны ARM
Правила автоматизации Н/Д Функция экспорта или сценарии PowerShell Reference Н/Д
Поисковые запросы Скрипт PowerShell команды CLI Azure Reference Пример содержимого
Парсеры Скрипт PowerShell ASIM команды CLI Azure Reference Templates
Сценарии Н/Д Служебная программа PowerShell Reference Н/Д
Workbooks Н/Д Экспорт книг в виде шаблонов ARM Reference Н/Д

Важно!

Особенности Bicep:

  • Чтобы использовать файлы Bicep, необходимо обновить подключение к репозиториям, если подключение было создано до 1 ноября 2024 г. Для обновления необходимо удалить и повторно создать подключения к репозиториям.
  • Файлы Bicep не поддерживают свойство id. При декомпиляции ARM JSON в Bicep убедитесь, что это свойство отсутствует. Например, шаблоны правил аналитики, экспортированные из Microsoft Sentinel имеют id свойство, которое требуется удалить.
  • Измените схему JSON ARM на версию 2019-04-01 , чтобы получить наилучшие результаты при декомпиляции.

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

Сведения о создании пользовательского содержимого с нуля см. в соответствующем Microsoft Sentinel вики-сайте GitHub для каждого типа контента.

Развертывание пользовательских правил обнаружения в виде кода (предварительная версия)

Важно!

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

Вы можете управлять пользовательскими правилами обнаружения как кодом в своем репозитории с помощью расширения Microsoft Security BICEP. Пользовательские правила обнаружения используют другое расширение BICEP и другого поставщика ресурсов, чем другие типы содержимого Microsoft Sentinel.

Предварительные требования для пользовательских правил обнаружения

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

  • Лицензия Microsoft 365 E5 (или эквивалентная лицензия, содержащая Microsoft Defender XDR).
  • Рабочие области Microsoft Sentinel подключены к порталу Microsoft Defender.

Настройте расширение BICEP для Microsoft Security

Для пользовательских правил обнаружения требуется расширение Microsoft Security BICEP. bicepconfig.json Создайте файл в корневом каталоге репозитория:

{
  "extensions": {
    "MicrosoftSecurity": "br:mcr.microsoft.com/bicep/extensions/microsoftsecurity:v1.0.1"
  }
}

Эта конфигурация необходима для синхронизации на основе репозитория и прямого развертывания BICEP.

Создайте BICEP-файл для пользовательского правила обнаружения

Определите настраиваемое правило обнаружения для типа ресурса Microsoft.Security/detectionRules. Создайте файл (например, .bicep) со следующей detectionRule.bicep структурой:

extension MicrosoftSecurity

resource detectionRule 'Microsoft.Security/detectionRules@2026-06-01-preview' = {
  id: 'custom-rule-id'
  displayName: 'Custom Rule Display Name'
  status: 'enabled'
  queryCondition: {
    queryText: 'DeviceProcessEvents | take 10 | project DeviceId, Timestamp, FileName'
  }
  schedule: {
    frequency: 'PT1H'
  }
  detectionAction: {
    alertTemplate: {
      title: '<ruleTitle>'
      description: 'Custom detection rule'
      severity: 'medium'
      tactics: [
        {
          tactic: 'Execution'
          techniques: [
            {
              technique: 'T1059'
            }
          ]
        }
      ]
      entityMappings: {
        hosts: [
          {
            id: 'h'
            deviceIdColumn: 'DeviceId'
          }
        ]
      }
    }
  }
}

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

Развертывание настраиваемых правил обнаружения

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

Метод развертывания Description Кто выполняет развертывание
Репозитории Microsoft Sentinel (синхронизация) Автоматическая синхронизация из репозитория GitHub или Azure DevOps на Microsoft Sentinel. Sentinel автоматически запускает развертывание при каждом коммите.
ИНТЕРФЕЙС командной строки BICEP (прямой) Разверните с помощью az deployment group create из Azure CLI. Развертывание выполняется вручную или из пользовательского конвейера.

Вариант 1. Развертывание с помощью репозиториев Microsoft Sentinel

  1. Закоммитьте файл BICEP и bicepconfig.json в свой репозиторий GitHub или Azure DevOps.
  2. На портале Microsoft Defender перейдите в раздел Microsoft Sentinel>Управление содержимым>Репозитории.
  3. Создайте новое подключение к репозиторию или измените существующее.
  4. В параметрах подключения выберите настраиваемые правила обнаружения в разделе "Типы контента".
  5. Сохраните подключение.

После включения Microsoft Sentinel автоматически синхронизирует пользовательские правила обнаружения из репозитория.

Вариант 2. Развертывание с помощью BICEP напрямую

Выполните следующую команду Azure CLI:

az deployment group create \
  --resource-group <RESOURCE_GROUP> \
  --template-file detectionRule.bicep \
  --name mtp-deployment

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

Проверка развертывания

После развертывания с помощью любого варианта:

  1. Убедитесь, что правило обнаружения отображается в списке пользовательских правил обнаружения на портале Microsoft Defender.
  2. Убедитесь, что правило включено и производит ожидаемые результаты.
  3. Если вы использовали синхронизацию репозитория (вариант 1), внесите изменения в репозиторий для проверки поведения синхронизации.

Ограничения предварительной версии

На этапе предварительной версии:

  • Настраиваемая частота для данных Microsoft Sentinel не поддерживается.
  • Настраиваемые сведения не поддерживаются.

Повышение производительности с помощью интеллектуальных развертываний

Совет

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

Функция интеллектуального развертывания — это серверная возможность, которая повышает производительность за счет активного отслеживания изменений, внесенных в файлы содержимого подключенного репозитория. Он использует CSV-файл в папке .sentinel в репозитории для аудита каждой фиксации. Рабочий процесс позволяет избежать повторного развертывания содержимого, которое не было изменено с момента последнего развертывания. Этот процесс повышает производительность развертывания и предотвращает нежелательное изменение неизменённых данных в рабочей области, например сброс динамических расписаний для правил аналитики.

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

Рассмотрите варианты настройки развертывания

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

Настройка рабочего процесса или конвейера

Настройте рабочий процесс или конвейер одним из следующих способов:

  • настройка различных триггеров развертывания
  • Развертывание содержимого только из определенной корневой папки для заданной рабочей области
  • запланируйте периодический запуск рабочего процесса
  • объединение различных событий рабочего процесса
  • Отключите интеллектуальные развертывания

Эти настройки определяются в файле .yml, предназначенном для вашего рабочего процесса или конвейера. Дополнительные сведения о реализации см. в разделе Настройка развертываний репозитория.

Настройка развертывания

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

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

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

Управление репозиториями Microsoft Sentinel с помощью API

Сведения об управлении репозиториями Microsoft Sentinel с помощью API см. в разделе Действия по управлению версиями и системам управления версиями в MICROSOFT SENTINEL REST API.

Важно!

Начиная с июня 2026 г. более старые версии API, используемые репозиториями Microsoft Sentinel, больше не будут поддерживаться. Если вы используете API для создания подключений к репозиторию и управления ими, перейдите на API версии 2025-09-01, 2025-06-01 или 2025-07-01-preview до 15 июня 2026 г., чтобы избежать прерывания работы службы. Существующие подключения к репозиторию не затрагиваются.

Дальнейшие действия

Получите дополнительные примеры и пошаговые инструкции по развертыванию Microsoft Sentinel репозиториев.