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

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

С помощью Microsoft Defender для облака можно настроить заметки pr в Azure DevOps. Заметки pr можно получить в GitHub, если вы являетесь клиентом расширенной безопасности GitHub.

Что такое заметки запроса на вытягивание

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

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

Необходимые компоненты

Для GitHub:

Для Azure DevOps:

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

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

Чтобы включить заметки запроса на вытягивание в 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"]
    

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

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

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

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

    Все проблемы, обнаруженные сканером, будут доступны для просмотра в разделе "Измененные файлы" запроса на вытягивание.

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

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

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

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

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

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

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

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

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

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

  4. Выберите Политики.

  5. Перейдите в главную ветвь политик>филиала.

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

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

  7. Убедитесь, что проверка сборки для репозитория включена.

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

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

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

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

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

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

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

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

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

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

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

  5. Переключение заметок запроса на вытягивание в on.

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

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

    Примечание.

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

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

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

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

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

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

Сведения о API:

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

  • Обновление проекта 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 с минимальным уровнем серьезности medium с помощью средства 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.