Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
GitHub Advanced Security для Azure DevOps добавляет набор функций безопасности Advanced Security GitHub в Azure Repos и включает следующие функции:
- Защита от раскрытия секретов при отправке: проверьте, включают ли коммиты кода секреты, такие как учетные данные
- Сканирование репозитория на наличие секретов: сканирование репозитория и поиск разглашенных секретов, случайно добавленных
- Проверка зависимостей — поиск известных уязвимостей в открытых исходных кодах зависимостей (прямых и транзитивных).
- Сканирование кода — используйте подсистему статического анализа CodeQL для выявления уязвимостей приложений на уровне кода, таких как внедрение и обход проверки подлинности SQL.
Вы можете обеспечить защиту расширенной безопасности в вашей организации с помощью гибкости, чтобы обеспечить правильный уровень защиты для репозиториев. Расширенная безопасность GitHub для Azure DevOps доступна как защита секретов GitHub для Azure DevOps и GitHub Code Security для Azure DevOps.
Защита секретов включает следующие функции:
- Защита от push-уведомлений, чтобы предотвратить утечки секретов до их возникновения
- Оповещения о сканировании конфиденциальной информации помогают выявить существующие утечки до того, как они станут проблемой.
- Обзор безопасности, предоставляющий представление о уровне риска и защиты безопасности вашей организации.
Безопасность кода включает следующие функции:
- Оповещения зависимостей для поиска уязвимостей в зависимостях с открытым кодом
- Сканирование CodeQL для обнаружения уязвимостей непосредственно в коде
- Выводы проверки безопасности для сторонних инструментов
- Обзор безопасности, предоставляющий представление о уровне риска и защиты безопасности вашей организации.
Расширенная безопасность GitHub для Azure DevOps доступна только для Azure DevOps Services и специально для репозиториев кода Git.
GitHub Advanced Security для Azure DevOps работает с Azure Repos. Чтобы использовать GitHub Advanced Security с репозиториями GitHub, см. GitHub Advanced Security.
Предварительные условия
| Категория | Требования |
|---|---|
| Разрешения | — Чтобы просмотреть сводку всех оповещений для репозитория, нужны разрешения участника для репозитория. — Чтобы отклонить оповещения в 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 (в настоящее время .NET 8.x). Если на агенте нет совместимой версии, задача сканирования зависимостей в процессе сборки загрузит .NET.
Убедитесь, что пакет CodeQL установлен в кэш средств агента в агенте. Можете использовать переменную
enableAutomaticCodeQLInstall: trueс задачейAdvancedSecurity-Codeql-Init@1pipeline для YAML конвейеров или установить флажокEnable automatic CodeQL detection and installationдля классических конвейеров. Кроме того, инструкции по установке вручную см. в статье "Проверка кода для расширенной безопасности GitHub для Azure DevOps".
Включение GitHub Advanced Security
Вы можете включить расширенную безопасность на уровне организации, проекта или репозитория. Чтобы получить доступ к каждому из средств сканирования и результатов, сначала необходимо включить расширенную безопасность. После включения расширенной безопасности все будущие push-уведомления, содержащие секреты в репозиторий с включенной политикой, блокируются, а сканирование секретов репозитория происходит в фоновом режиме.
Подключение на уровне репозитория
- Перейдите к параметрам проекта Azure DevOps.
- Выберите Repos>репозитории.
- Выберите репозиторий, для которого необходимо включить расширенную безопасность.
- Нажмите кнопку "Включить и начать выставление счетов", чтобы активировать расширенную безопасность. Теперь в представлении репозитория отображается значок щита для любого репозитория с включенной расширенной безопасностью.
Подключение на уровне проекта
- Перейдите к параметрам проекта Azure DevOps.
- Выберите Repos.
- Выберите вкладку Параметры.
- Выберите Включить все и увидите оценку количества активных участников для вашего проекта.
- Выберите " Начать выставление счетов", чтобы активировать расширенную безопасность для каждого существующего репозитория в проекте.
- При необходимости выберите автоматическое включение расширенной безопасности для новых репозиториев, чтобы все созданные репозитории включили расширенную безопасность при создании.
Подключение на уровне организации
- Перейдите к параметрам организации Azure DevOps.
- Выберите Репозитории.
- Выберите " Включить все " и просмотрите оценку количества активных фиксаций для вашей организации.
- Выберите " Начать выставление счетов", чтобы активировать расширенную безопасность для каждого существующего репозитория в каждом проекте в организации.
- При необходимости выберите "Автоматически включить расширенную безопасность" для новых репозиториев, чтобы при создании всех созданных проектов была включена расширенная безопасность.
Настройка сканирования секретов
При включении расширенной безопасности защита при отправке и сканирование репозитория автоматически включаются. Вы можете включить или отключить защиту от отправки секретов на странице параметров репозитория.
Сканирование репозитория на наличие секретов автоматически запускается при включении функции Расширенной Безопасности для выбранного репозитория.
Настройка проверки зависимостей
Вы можете включить защиту секретов или безопасность кода на уровне организации, проекта или репозитория.
Подключение на уровне репозитория
- Перейдите к параметрам проекта Azure DevOps.
- Выберите Repos>репозитории.
- Выберите репозиторий, для которого необходимо включить расширенную безопасность.
- Переключите защиту секретов или безопасность кода.
- Нажмите кнопку "Начать выставление счетов". Теперь в представлении репозитория отображается значок щита для любого репозитория с включенным продуктом.
- Чтобы включить проверку зависимостей по умолчанию, установите флажок " Параметры " и установите флажок проверки зависимостей по умолчанию.
Подключение на уровне проекта
- Перейдите к параметрам проекта Azure DevOps.
- Выберите Repos.
- Выберите вкладку Параметры.
- Выберите Включить все и просмотрите оценку количества активных коммитеров по каждому продукту для вашего проекта.
- Переключите нужные продукты секретной защиты или безопасности кода.
- Выберите "Начать выставление счетов" , чтобы активировать защиту секретов и /или безопасность кода для каждого существующего репозитория в проекте.
- При необходимости переключите переключатель Автоматически включать расширенную безопасность для новых репозиториев, чтобы все вновь созданные репозитории имели включенную Защиту секретов или Безопасность кода при создании.
Подключение на уровне организации
- Перейдите к параметрам организации Azure DevOps.
- Выберите Репозитории.
- Выберите "Включить все " и узнайте оценку количества активных участников на продукт для вашей организации.
- Переключите нужные продукты секретной защиты или безопасности кода.
- Выберите " Начать выставление счетов", чтобы активировать расширенную безопасность для каждого существующего репозитория в каждом проекте в организации.
- При необходимости переключатель автоматически включает расширенную безопасность для новых репозиториев , чтобы при создании всех новых проектов была включена защита секретов или безопасность кода .
Настройка сканирования секретов
При включении защиты секретов функции защиты от нежелательной отправки и сканирование репозитория автоматически активируются. Вы можете включить или отключить защиту от отправки секретов на странице параметров репозитория.
Как уже упоминалось, сканирование репозитория секретов автоматически запускается при включении защиты секретов для выбранного репозитория.
Настройка проверки зависимостей
Чтобы получить доступ к функциям проверки зависимостей, для репозитория требуется продукт безопасности кода .
Сканирование зависимостей — это инструмент сканирования, работающий на базе конвейера. Результаты агрегируются по каждому репозиторию. Для сканирования ветви по умолчанию можно использовать параметр "Сканировать уязвимые зависимости" на странице параметров репозитория. Это автоматически включит задачу проверки зависимостей в любой процесс сборки, нацеленный на ветвь по умолчанию, или любую сборку pull request, нацеленную на ветвь по умолчанию.
Для более расширенной настройки или при необходимости сканирования всех ветвей рекомендуется добавить задачу проверки зависимостей ко всем конвейерам, которые требуется проверить. Дополнительные сведения см. в разделе сканирования зависимостей для дополнительной безопасности GitHub для Azure DevOps.
Настройка сканирования кодов
Чтобы получить доступ к функциям сканирования кода, необходимо включить продукт безопасности кода для репозитория.
Сканирование кода также является средством сканирования на основе конвейера, где результаты агрегируются в каждом репозитории.
Совет
Сканирование кода может быть более интенсивной задачей сборки, поэтому рекомендуется добавить задачу сканирования кода в отдельный клонированный конвейер основного производственного конвейера или создать новый конвейер.
Добавьте задачи в следующем порядке:
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Шаги сборки на заказ
- Расширенный анализ безопасности CodeQL (AdvancedSecurity-Codeql-Analyze@1)
Кроме того, укажите язык Initialize CodeQL, который вы анализируете в задаче. Вы можете использовать разделенный запятыми список для анализа нескольких языков одновременно. Поддерживаемые языки.csharp, cpp, go, java, javascript, python, ruby, swift Если вы используете локальные агенты, вы также можете добавить enableAutomaticCodeQLInstall: true переменную, чтобы автоматически установить последние биты CodeQL для агента.
Ниже приведен пример начального конвейера:
trigger:
- main
pool:
# Additional hosted image options are available: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted#software
vmImage: ubuntu-latest
steps:
- task: AdvancedSecurity-Codeql-Init@1
inputs:
languages: "java"
# Supported languages: csharp, cpp, go, java, javascript, python, ruby, swift
# You can customize the initialize task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-init-v1?view=azure-pipelines
# If you're using a self-hosted agent to run CodeQL, use `enableAutomaticCodeQLInstall` to automatically use the latest CodeQL bits on your agent:
enableAutomaticCodeQLInstall: true
# Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you're building from a clean state).
# - Disable the use of any build caching mechanisms as this can interfere with CodeQL's ability to capture all the necessary data during the build.
# - Disable the use of any distributed/multithreaded/incremental builds as CodeQL needs to monitor executions of the compiler to construct an accurate representation of the application.
# - For dependency scanning, ensure you have a package restore step for more accurate results.
# If you had a Maven app:
# - task: Maven@4
# inputs:
# mavenPomFile: 'pom.xml'
# goals: 'clean package'
# publishJUnitResults: true
# testResultsFiles: '**/TEST-*.xml'
# javaHomeOption: 'JDKVersion'
# jdkVersionOption: '1.17'
# mavenVersionOption: 'Default'
# Or a general script:
# - script: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- task: AdvancedSecurity-Dependency-Scanning@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-dependency-scanning-v1?view=azure-pipelines
- task: AdvancedSecurity-Codeql-Analyze@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-analyze-v1?view=azure-pipelines
Кроме того, укажите язык Initialize CodeQL, который вы анализируете в задаче. Если задан язык swift, необходимо выполнить пользовательские шаги сборки.
Совет
- Используется
javaдля анализа кода, написанного на Java, Kotlin или обоих. - Используется
javascriptдля анализа кода, написанного в JavaScript, TypeScript или обоих.
Если вы работаете на локальном агенте, выберите Enable automatic CodeQL detection and installation, чтобы автоматически использовать самую последнюю версию CodeQL на вашем агенте, если вы не установили последний пакет CodeQL в кэш инструментов агента.
Чтобы создать оповещения, выполните первую проверку конвейера, включающую задачи сканирования кода.
Настройка заметок пулреквеста
Для сканирования зависимостей и кода аннотации автоматически настраивают pull-запросы, где применяется политика проверки сборки, включающая задачи сканирования зависимостей и/или кода в вашем конвейере. Дополнительные сведения о настройке политик проверки сборки см. в разделе "Проверка сборки".
Заметки pull request также требуют выполнения сканирования расширенной безопасности на вашей основной и целевой ветвях, прежде чем сканировать исходную ветвь (ветвь pull request). Дополнительные сведения об устранении оповещений для ветвей запросов на вытягивание см. в разделе "Управление оповещениями проверки зависимостей на запросах на вытягивание" и "Управление оповещениями проверки кода на запросах на вытягивание".
Чтобы отключить расширенную безопасность, все оповещения и состояние оповещений сохраняются на вкладке "Расширенная безопасность" при следующем включении расширенной безопасности для репозитория.
Связанные статьи
- Оповещения проверки кода для расширенной безопасности GitHub для Azure DevOps
- Оповещения проверки зависимостей для расширенной безопасности GitHub для Azure DevOps
- Оповещения по обнаружению секретов в GitHub Advanced Security для Azure DevOps
- Разрешения для GitHub Advanced Security для Azure DevOps
- Выставление счетов за GitHub Advanced Security для Azure DevOps