О важности предоставления доступа к частным реестрам
Если репозиторий использует код, хранящийся в частном реестре, некоторые функции безопасности должны получить доступ к реестру, чтобы обеспечить их эффективную работу. Без доступа ко всем зависимостям репозитория, настройка по умолчанию code scanning и Dependabot ограничены.
Code scanning по умолчанию для настройки доступа к частным реестрам
Note
Настройка частных реестров для установки code scanning по умолчанию для использования в организации в настоящее время находится в public preview и подлежит изменению. Поддерживаемые реестры: репозитории Maven и веб-каналы NuGet.
Программа установки Code scanning по умолчанию анализирует код C# и Java без создания кода. Если вы не определяете доступ к частным реестрам вашей организации, то code scanning будет собирать только необходимые данные из зависимостей, доступных в общедоступных реестрах. В большинстве случаев это достаточно для обнаружения большинства уязвимостей. Однако в некоторых случаях отсутствие доступа может привести к ложным отрицательным результатам, то есть code scanning не может обнаружить уязвимость в коде, так как у нее нет всех сведений, необходимых для анализа кода. Например, некоторые пути потока данных не могут быть обнаружены, так как шаги определены в зависимостях, которые недоступны, и code scanning не знает, как их интерпретировать.
При настройке доступа к частным реестрам, используемым в вашей организации, code scanning имеет доступ ко всем нужным сведениям и гораздо менее вероятно пропустить уязвимость.
Tip
Вы можете определить один частный реестр Maven и один частный веб-канал NuGet для каждой организации. Если базы кода в организации используют несколько реестров или веб-каналов, необходимо определить доступ к наиболее важному реестру для баз кода в этой организации.
Определение доступа к реестру для настройки по умолчанию code scanning
Вам нужно быть владелец организации для настройки доступа к частным реестрам в пользовательском интерфейсе. Rest API можно также использовать с владелец организации или {read,write}_org_private_registries
разрешениями.
- На вкладке "Параметры" организации прокрутите вниз до раздела "Безопасность" и выберите секреты и переменные.
- В развернутом списке секретов и переменных выберите частные реестры , чтобы отобразить страницу "Частные реестры".
- Выберите новый частный реестр , чтобы добавить сведения о доступе для частного реестра.
- Используйте поля URL-адреса и типа для определения расположения и типа реестра:
- URL-адрес — это расположение, в котором осуществляется доступ к частному реестру. Например, чтобы использовать реестр GitHub Packages для NuGet:
https://nuget.pkg.github.com/
- Тип реестра.
- URL-адрес — это расположение, в котором осуществляется доступ к частному реестру. Например, чтобы использовать реестр GitHub Packages для NuGet:
- Выберите маркер или имя пользователя и пароль в зависимости от метода проверки подлинности, а затем введите данные в соответствующие поля.
- Определите, какие репозитории в организации могут получить доступ к частному реестру, используя следующие сведения: все, частные и внутренние или выбранные репозитории.
- Завершив определение частного реестра, нажмите кнопку "Добавить реестр ", чтобы сохранить сведения о реестре.
Tip
При добавлении частного реестра в организацию маркер или пароль хранится в виде зашифрованного секрета. После создания реестра маркер или пароль нельзя просмотреть еще раз.
Включение настройки code scanning по умолчанию для использования определения реестра
Если включить настройку code scanning по умолчанию для репозитория или группы репозиториев, GitHub проверяет, имеют ли репозитории доступ к существующим частным реестрам. Если в репозитории доступны частные реестры, code scanning будет использовать соответствующие определения во время анализа.
При первом настройке частных реестров необходимо отключить и повторно включить настройку code scanning по умолчанию для любых репозиториев, которые вы хотите использовать новое определение. Новые или измененные конфигурации будут автоматически выбраны при последующих запусках.
Вы можете убедиться, что частные реестры успешно использовались в анализе code scanning путем поиска в файлах журнала действий, см. статью "Определение того, используется ли настройка по умолчанию для сканирования кода любые частные реестры".
Code scanning расширенный доступ к частным реестрам
Расширенная настройка Code scanning использует все частные реестры, доступные рабочему процессу, который выполняет анализ с помощью .codeql-action
У него нет доступа к частным реестрам уровня организации, используемым по умолчанию.
Для скомпилированных языков codeql-action
необходимо наблюдать за сборкой кода. Можно изменить существующий рабочий процесс сборки, чтобы также запустить codeql-action
или создать новый рабочий процесс, который создает рабочую версию кода, а также запускает его codeql-action
.
Все частные реестры, используемые сборкой, также должны быть доступны рабочему процессу, который выполняется codeql-action
. Дополнительные сведения о расширенной настройке см. в разделе Настройка расширенной настройки для сканирования кода.
Dependabot обновляет доступ к частным реестрам
Dependabot использует все частные реестры, определенные в dependabot.yml
файле. У него нет доступа к частным реестрам уровня организации, используемым программой установки code scanning по умолчанию.
Dependabot не может проверить наличие обновлений системы безопасности или версий для кода, хранящегося в частном реестре, если он не сможет получить доступ к реестру. Если доступ к частному реестру не настроен, Dependabot не может вызывать запросы на вытягивание для обновления любого из зависимостей, хранящихся в реестре.
При настройке доступа к одному или нескольким частным реестрам Dependabot может предлагать запросы на вытягивание для обновления уязвимой зависимости или поддержания зависимости, см[. раздел AUTOTITLE и Настройка доступа к частным реестрам для Dependabot](/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot).