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