Включить аннотации для pull request в GitHub и Azure DevOps

Средства безопасности DevOps отображают результаты проверки безопасности в виде аннотаций в запросах на включение изменений (PR). Операторы безопасности могут активировать аннотации PR в Microsoft Defender для облака. Любые обнаруженные проблемы можно устранить разработчиками. Этот процесс может предотвратить и устранить потенциальные уязвимости безопасности и неправильные конфигурации до того, как они попадут в рабочий этап. Средства безопасности DevOps помечают уязвимости в изменениях, внесённых в pull request, а не все уязвимости, обнаруженные по всему файлу. Разработчики могут видеть аннотации в своих системах управления исходным кодом, а специалисты по безопасности — любые неустраненные проблемы в Microsoft Defender для облака.

С помощью Microsoft Defender для облака можно настроить аннотации PR в Azure DevOps. Аннотации PR можно получить в GitHub, если вы клиент GitHub Advanced Security.

Note

Аннотации запроса на вытягивание, также известные как аннотации запросов на слияние (GitLab), не поддерживаются в проектах GitLab, подключенных к Defender для облака DevOps.

Defender для облака будет представлять результаты безопасности для всех подключенных репозиториев GitLab. Однако запросы слияния GitLab не отображают эти выводы как встроенные заметки.

GitHub поддерживает аннотации запроса на вытягивание, когда включена GitHub Advanced Security.

Что такое аннотации к запросу на включение изменений

Аннотации запроса на слияние — это комментарии, которые добавляются к запросу на слияние в GitHub или Azure DevOps. Эти аннотации содержат отзывы об изменениях в коде и выявленных проблемах безопасности в запросе на включение изменений и помогают рецензентам лучше понять эти изменения.

Пользователи с доступом к репозиторию могут добавлять заметки, предлагать изменения, задавать вопросы или предоставлять отзывы о коде. Заметки также можно использовать для отслеживания проблем и ошибок, которые необходимо исправить перед объединением кода в основную ветвь. Безопасность DevOps в Defender для облака использует аннотации для отображения результатов анализа безопасности.

Prerequisites

Для GitHub:

Для Azure DevOps:

Включите аннотации к pull request в GitHub

Включив аннотации к pull request в GitHub, ваши разработчики смогут видеть свои проблемы безопасности при создании PR непосредственно в основной ветке.

Чтобы включить аннотации в pull request в GitHub:

  1. Перейдите к GitHub и войдите.

  2. Выберите репозиторий, подключенный к Defender для облака.

  3. Перейдите к Your repository's home page>.github/workflows.

    Снимок экрана, на котором показано, куда перейти, чтобы выбрать папку рабочего процесса GitHub.

  4. Выберите msdevopssec.yml, который был создан в предварительных требованиях.

    Снимок экрана, на котором показано, где на экране выберите файл msdevopssec.yml.

  5. Выберите "Изменить".

    Снимок экрана, на котором показано, как выглядит кнопка редактирования.

  6. Найдите и обновите раздел триггера, чтобы включить:

    # Triggers the workflow on push or pull request events but only for the main branch
    pull_request:
      branches: ["main"]
    

    Вы также можете просмотреть пример репозитория.

    (Необязательно) Вы можете выбрать, на каких ветках это будет запускаться, указав ветку или ветки в разделе trigger. Если вы хотите включить все ветви, удалите строки со списком ветвей. 

  7. Выберите Начать фиксацию.

  8. Выберите " Зафиксировать изменения".

    Все проблемы, обнаруженные сканером, будут отображаться в разделе «Измененные файлы» вашего pull request.

    • Используется в тестах. Оповещение не в рабочем коде.

Включить аннотации для запроса на вытягивание в Azure DevOps

Включив аннотации pull request в Azure DevOps, ваши разработчики смогут видеть свои проблемы безопасности при создании PR непосредственно в основную ветку.

Включение политики проверки сборки для сборки CI

Прежде чем включить аннотации запроса на включение, для основной ветки должна быть включена политика проверки сборки для CI-сборки.

Чтобы включить политику проверки сборки для сборки CI:

  1. Войдите в проект Azure DevOps.

  2. Перейдите в Параметры проекта>Репозитории.

    Снимок экрана, на котором показано, куда перейти, чтобы выбрать репозитории.

  3. Выберите репозиторий, для которого нужно включить pull request.

  4. Выберите правила.

  5. Перейдите в Политики ветви>Основная ветвь.

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

  6. Найдите раздел «Проверка сборки».

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

    Снимок экрана: расположение переключателя сборки CI.

  8. Нажмите Сохранить.

    Снимок экрана: проверка сборки.

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

Включить аннотации для запроса на включение изменений

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

  1. Войдите на портал Azure.

  2. Перейдите в Defender для облака>Безопасность DevOps.

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

  4. Выберите " Управление ресурсами".

    Снимок экрана, на котором показано, как управлять ресурсами.

  5. Переключите аннотации pull request в режим Вкл..

    Снимок экрана: переключатель включен.

  6. (Необязательно) Выберите категорию в раскрывающемся меню.

    Note

    В настоящее время поддерживаются только неправильные настройки инфраструктуры как кода (ARM, Bicep, Terraform, CloudFormation, Dockerfiles, Helm Chart и многое другое).

  7. (Необязательно) Выберите уровень серьезности в раскрывающемся меню.

  8. Нажмите Сохранить.

С этого момента все аннотации в ваших pull request’ах будут отображаться в соответствии с вашими настройками.

Чтобы включить аннотации запросов на включение изменений для своих проектов и организаций в Azure DevOps:

Это можно сделать программно, вызвав API Update Azure DevOps Resource, предоставляемый корпорацией Майкрософт. Поставщик ресурсов безопасности.

Сведения о API:

HTTP-метод: PATCH URL-адреса:

  • Обновление проекта Azure DevOps: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>/projects/<adoProjectName>?api-version=2023-09-01-preview
  • Обновление организации Azure DevOps]: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>?api-version=2023-09-01-preview

Текст запроса :

{
   "properties": {
"actionableRemediation": {
              "state": <ActionableRemediationState>,
              "categoryConfigurations":[
                    {"category": <Category>,"minimumSeverityLevel": <Severity>}
               ]
           }
    }
}

Параметры / доступные параметры

<ActionableRemediationState> Описание: Состояние конфигурации аннотации PR Параметры: Включено | Отключено

<Category> Описание: категория результатов, которые добавляются к запросам на включение изменений. Параметры: IaC | Код | Артефакты | Зависимости | Контейнеры Примечание: В настоящее время поддерживается только IaC

<Severity> Описание: минимальный уровень серьёзности результата, который учитывается при создании аннотаций PR. Параметры: высокий | Средний | Низкий

Пример включения аннотаций PR для организации Azure DevOps в категории IaC с минимальным уровнем серьезности «Средний» с помощью средства командной строки az cli.

Обновить организацию:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'Medium'}]}}}

Пример включения аннотаций PR для проекта Azure DevOps для категории IaC с минимальным уровнем серьезности High с помощью инструмента az cli.

Обновление проекта:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg/projects/testProject?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'High'}]}}}"

Узнать больше

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

Теперь узнайте больше о безопасности DevOps.