Настройка расширенной безопасности GitHub для Azure DevOps

GitHub Advanced Security для Azure DevOps добавляет в Azure Repos полный набор функций безопасности GitHub Advanced Security и включает в себя следующие функции:

  • Защита от раскрытия секретов при отправке: проверьте, включают ли коммиты кода секреты, такие как учетные данные
  • Сканирование репозитория на наличие секретов: сканирование репозитория и поиск разглашенных секретов, случайно добавленных
  • Сканирование зависимостей — поиск известных уязвимостей в зависимостях с открытым исходным кодом (прямые и транзитивные)
  • Сканирование кода — используйте подсистему статического анализа CodeQL для выявления уязвимостей приложений на уровне кода, таких как внедрение и обход проверки подлинности SQL.

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

Защита секретов включает следующие функции:

  • Защита от push-уведомлений, чтобы предотвратить утечки секретов до их возникновения
  • Оповещения о сканировании конфиденциальной информации помогают выявить существующие утечки до того, как они станут проблемой.
  • Обзор безопасности, предоставляющий представление о уровне риска и защиты безопасности вашей организации.

Безопасность кода включает следующие функции:

  • Оповещения зависимостей для поиска уязвимостей в зависимостях с открытым кодом
  • Сканирование CodeQL для обнаружения уязвимостей непосредственно в коде
  • Выводы проверки безопасности для сторонних инструментов
  • Обзор безопасности, предоставляющий представление о уровне риска и защиты безопасности вашей организации.

GitHub Расширенная безопасность для Azure DevOps доступна только для служб Azure DevOps и специально для репозиториев кода Git.

GitHub Advanced Security for Azure DevOps работает с Azure Repos. Чтобы использовать GitHub Advanced Security с репозиториями GitHub, см. GitHub Advanced Security.

Предварительные условия

Категория Требования
Разрешения — Чтобы просмотреть сводку всех оповещений для репозитория, нужны разрешения участника для репозитория.
— Чтобы закрыть оповещения в расширенной безопасности: Администратор проекта разрешения.
— Управление разрешениями в дополнительной безопасности: член группы Администраторы собраний проектов или Дополнительная безопасность: управление параметрами при наличии набора разрешений, установленного на Разрешить.

Дополнительные сведения о разрешениях расширенной безопасности см. в разделе Управление разрешениями расширенной безопасности.

Дополнительные предварительные требования для локальных агентов

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

URL-адрес домена Описание
https://governance.dev.azure.com Для организаций, использующих домен dev.azure.com для доступа к экземпляру DevOps
https://dev.azure.com Для организаций, использующих домен dev.azure.com для доступа к приложению DevOps
https://advsec.dev.azure.com Для организаций, использующих домен dev.azure.com для доступа к приложению DevOps
https://{organization_name}.governance.visualstudio.com Для организаций, использующих домен {organization_name}.visualstudio.com для доступа к экземпляру DevOps
https://{organization_name}.visualstudio.com  Для организаций, использующих домен {organization_name}.visualstudio.com для доступа к экземпляру DevOps
https://{organization_name}.advsec.visualstudio.com Для организаций, использующих домен {organization_name}.visualstudio.com для доступа к платформе DevOps
  • Запустите совместимую версию среды выполнения .NET. По состоянию на апрель 2026 г. текущая версия по-прежнему .NET 8.x. Если совместимая версия не присутствует в агенте, задача проверки зависимостей загружает .NET.

  • Убедитесь, что пакет CodeQL установлен в кэш средств агента в агенте. Можете использовать переменную enableAutomaticCodeQLInstall: true с задачей AdvancedSecurity-Codeql-Init@1 pipeline для YAML конвейеров или установить флажок Enable automatic CodeQL detection and installation для классических конвейеров. Кроме того, инструкции по установке вручную см. в разделе Сканирование кода для GitHub Advanced Security для Azure DevOps.

Включение расширенной безопасности GitHub

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

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

  1. Перейдите к параметрам Project для Azure DevOps project.
  2. Выберите Repos>Repositories.
  3. Выберите репозиторий, для которого необходимо включить расширенную безопасность.
  4. Нажмите кнопку "Включить и начать выставление счетов", чтобы активировать расширенную безопасность. Теперь в представлении репозитория отображается значок щита для любого репозитория с включенной расширенной безопасностью.

Снимок экрана включения GitHub Advanced Security.

введение на уровне проекта

  1. Перейдите к параметрам Project для Azure DevOps project.
  2. Выберите Repos.
  3. Выберите вкладку Параметры.
  4. Выберите Включить все и увидите оценку количества активных участников для вашего проекта. Это действие позволяет только существующим репозиториям использовать продукт.
  5. Выберите " Начать выставление счетов", чтобы активировать расширенную безопасность для каждого существующего репозитория в проекте.
  6. При необходимости выберите автоматическое включение расширенной безопасности для новых репозиториев , чтобы все созданные репозитории в будущем включили расширенную безопасность при создании. Этот параметр отличается от действия "Включить все " и должен быть выбран независимо.

Снимок экрана активации на уровне проекта расширенной безопасности.

Подключение на уровне организации

  1. Перейдите к параметрам Organization для организации Azure DevOps.
  2. Выберите Репозитории.
  3. Выберите " Включить все " и просмотрите оценку количества активных фиксаций для вашей организации. Это действие позволяет только существующим репозиториям использовать продукт.
  4. Выберите " Начать выставление счетов", чтобы активировать расширенную безопасность для каждого существующего репозитория в каждом проекте в организации.
  5. При необходимости выберите "Автоматически включить расширенную безопасность" для новых проектов , чтобы при создании новых проектов были включены расширенные средства безопасности. Этот параметр отличается от действия "Включить все " и должен быть выбран независимо.

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

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

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

  1. Перейдите к параметрам Project для Azure DevOps project.
  2. Выберите Repos>Repositories.
  3. Выберите репозиторий, для которого необходимо включить расширенную безопасность.
  4. Переключите защиту секретов или безопасность кода.
  5. Нажмите кнопку "Начать выставление счетов". Теперь в представлении репозитория отображается значок щита для любого репозитория с включенным продуктом.
  6. Чтобы включить проверку зависимостей по умолчанию, установите флажок " Параметры " и установите флажок проверки зависимостей по умолчанию.

Снимок экрана включения GitHub Advanced Security.

введение на уровне проекта

  1. Перейдите к параметрам Project для Azure DevOps project.
  2. Выберите Repos.
  3. Выберите вкладку Параметры.
  4. Выберите Включить все и просмотрите оценку количества активных коммитеров по каждому продукту для вашего проекта. Это действие активирует только выбранный продукт для существующих репозиториев.
  5. Активируйте нужные продукты Секретной Защиты или Безопасности Кода и все связанные подфункции.
  6. Выберите "Начать выставление счетов" , чтобы активировать защиту секретов и /или безопасность кода для каждого существующего репозитория в проекте.
  7. При необходимости включите расширенную безопасность для новых репозиториев , чтобы все созданные репозитории в будущем включили защиту секретов или безопасность кода при создании. Этот параметр отличается от действия "Включить все " и должен быть выбран независимо.

Снимок экрана активации на уровне проекта расширенной безопасности.

Подключение на уровне организации

  1. Перейдите к параметрам Organization для организации Azure DevOps.
  2. Выберите Репозитории.
  3. Выберите "Включить все " и узнайте оценку количества активных участников на продукт для вашей организации. Это действие активирует только выбранный продукт для существующих репозиториев.
  4. Активируйте нужные продукты Секретной Защиты или Безопасности Кода и все связанные подфункции.
  5. Выберите " Начать выставление счетов", чтобы активировать расширенную безопасность для каждого существующего репозитория в каждом проекте в организации.
  6. При необходимости переключите включение автоматической расширенной безопасности для новых проектов, чтобы при создании новых проектов была включена защита секретов или безопасность кода. Этот параметр отличается от действия "Включить все " и должен быть выбран независимо.

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

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

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

Снимок экрана: включение защиты push-уведомлений.

Сканирование репозитория на наличие секретов автоматически запускается при включении функции Расширенной Безопасности для выбранного репозитория.

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

Снимок экрана: включение защиты push-уведомлений.

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

Настройка проверки зависимостей

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

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

Для более расширенной настройки или при необходимости сканирования всех ветвей рекомендуется добавить задачу проверки зависимостей ко всем конвейерам, которые требуется проверить. Подробности см. в Проверка зависимостей для GitHub Advanced Security в Azure DevOps.

Настройка сканирования кодов

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

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

Настройка по умолчанию — самый быстрый способ включения сканирования кода. Настройка по умолчанию выполняется на запланированной основе с помощью Azure Pipelines, обнаруживает поддерживаемые в репозитории языки CodeQL и автоматически настраивает их сканирование. Если языки в вашем репозитории изменяются, конфигурация сканирования обновляется автоматически.

Пул агентов и расписание проверки для настройки по умолчанию используются во всех репозиториях в организации. Эти параметры можно настроить в репозиториях параметров организациив раскрывающемся> списке настраиваемых параметров настройки CodeQL по умолчанию. Дополнительные сведения о каждом параметре см. в разделе "Настройка параметров настройки по умолчанию".

Расширенная настройка обеспечивает полный контроль над конфигурацией сканирования путем добавления задач конвейера CodeQL непосредственно в конвейеры. Дополнительные сведения о настройке расширенной настройки см. в разделе "Настройка сканирования кода".

Совет

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

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

Настройка заметок пулреквеста

Для сканирования зависимостей и кода примечания настраиваются автоматически для запросов на слияние, где применяется политика проверки сборки, включающая задачи проверки зависимостей и/или сканирования кода, включенные в ваш конвейер. Дополнительные сведения о настройке политик проверки сборки см. в разделе "Проверка сборки".

Заметки pull request также требуют выполнения сканирования расширенной безопасности на вашей основной и целевой ветвях, прежде чем сканировать исходную ветвь (ветвь pull request). Дополнительные сведения об устранении оповещений для ветвей запросов на вытягивание см. в разделе "Управление оповещениями проверки зависимостей на запросах на вытягивание" и "Управление оповещениями проверки кода на запросах на вытягивание".

Настройка проверок статуса pull request

Расширенные проверки состояния безопасности позволяют блокировать объединение pull-запросов при обнаружении уязвимостей. Эти проверки состояния оценивают сканирование зависимостей, сканирование кода и результаты проверки секретов и отправляют состояние в запрос на вытягивание на основе этих результатов.

Доступны две проверки состояния:

  • Блокировать все критически важные и высокоопасные уязвимости (AdvancedSecurity/AllHighAndCritical): используйте эту проверку, чтобы обеспечить разрешение всех критически важных и серьезных по уровню оповещений в хранилище перед слиянием.
  • Блокировать новые критически важные и высокие уязвимости (AdvancedSecurity/NewHighAndCritical): используйте эту проверку, чтобы предотвратить появление новых уязвимостей, не требуя первой исправления всех существующих уязвимостей. Для этой проверки требуется политика проверки сборки с задачами расширенной безопасности для сканирования ветки Pull Request (PR).

Настройка проверок статуса в рамках политик ветки

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

  1. Перейдите к параметрам Project>Repos.
  2. При необходимости выберите репозиторий, который требуется настроить.
  3. Выберите политики и выберите ветвь, которую вы хотите защитить. По умолчанию будет защищена ветвь репозиториев по умолчанию.
  4. Если он еще не создан, добавьте политику проверки сборки . Это необходимо для правильного выполнения обеих проверок состояния. Если в конвейере проверки сборки есть несколько задач расширенной безопасности, включите Wait for Processing свойство для задач AdvancedSecurity-CodeQL-Analyze и AdvancedSecurity-Publish .
  5. В разделе "Проверки состояния" выберите + добавить новую политику проверки состояния.
  6. В меню "Состояние для проверки" введите AdvancedSecurity для типа и AllHighAndCritical или NewHighAndCritical для имени. (Эти параметры отображаются после первого успешного запуска конвейера с задачами расширенной безопасности.)
  7. Выберите требование политики (обязательный или необязательный) и задайте любые другие необходимые параметры. Оставьте расширенные параметры по умолчанию — изменение авторизованной личности или запрос идентификатора итерации мешает отправке проверок состояния.
  8. Нажмите Сохранить.

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

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

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