Acerca de la importancia de dar acceso a registros privados
Cuando el código de un repositorio tiene dependencias almacenadas en un registro privado, algunas características de seguridad necesitan acceso al registro para permitir que funcionen de forma eficaz. Sin acceso a todas las dependencias de un repositorio, la eficacia de code scanning la configuración predeterminada y Dependabot están limitadas.
Code scanning acceso de configuración predeterminado a registros privados
Si no define el acceso a los registros privados que usa la organización, code scanning solo recopilará los datos necesarios de las dependencias disponibles en los registros públicos. Casi siempre, con esto solo ya se ven expuestos la mayoría de vulnerabilidades. Sin embargo, en algunos casos la falta de acceso puede dar lugar a resultados falsos negativos. Es decir, code scanning no puede detectar una vulnerabilidad en el código porque no tiene toda la información que necesita para analizar el código. Por ejemplo, es posible que algunas de las rutas de flujo de datos no se detecten porque los pasos se definen en dependencias que no son accesibles y code scanning no sabe cómo interpretarlas.
Al configurar el acceso a los registros privados usados en su organización, code scanning tiene acceso a toda la información que necesita y es mucho menos probable que se pierda una vulnerabilidad.
Code scanning el programa de instalación predeterminado admite los siguientes tipos de registro:
| Language | Tipos de registro |
|---|---|
| C# | Fuente de NuGet |
| Go | Servidor GOPROXY, origen de Git |
| Java | Repositorio de Maven |
Sugerencia
Puedes definir uno de cada tipo de registro para cada organización. Si los bases de código de la organización usan más de un registro de un tipo determinado, debe configurar un punto de acceso unificado o definir el acceso al registro más importante para los bases de código de esa organización.
Definición del acceso al registro para la code scanning configuración predeterminada
Debes ser propietario de una organización para configurar el acceso a registros privados en la interfaz de usuario. También puede usar la API REST con los permisos de propietario de la organización o {read,write}_org_private_registries.
- En la pestaña Configuración de la organización, acceda a la sección "Seguridad" y seleccione Secretos y variables.
- En la lista expandida de secretos y variables, seleccione Registros privados para ver la página "Registros privados".
- Seleccione Nuevo registro privado para añadir los detalles del acceso para un registro privado.
- Use los campos URL y Tipo para definir la ubicación y el tipo de registro:
*
URL es la ubicación donde se accede al registro privado. Por ejemplo, para usar el GitHub Packages registro para NuGet:
https://nuget.pkg.github.com/ORGANIZATION/index.json, dondeORGANIZATIONes el nombre de la organización en GitHub. * Tipo es el tipo de registro. - Seleccione Token o Nombre de usuario y contraseña, en función del método de autenticación y escriba los datos en los campos correspondientes. Algunos tipos de tokens de autenticación, como , GitHubPersonal Access Tokenestán vinculados a una identidad de usuario determinada. Seleccione la opción Nombre de usuario y contraseña para estos y escriba el nombre de usuario correspondiente como Nombre de usuario y el token como Contraseña.
- Define qué repositorios de la organización pueden acceder al registro privado mediante estas categorías: todos, privados e internos o solo repositorios seleccionados.
- Cuando termine de definir el registro privado, seleccione Añadir registro para guardar la información del registro.
Sugerencia
Al añadir un registro privado a una organización, el token o la contraseña se almacenan como un secreto cifrado. Una vez creado el registro, no se puede volver a ver el token o la contraseña.
Habilitación de code scanning la configuración predeterminada para usar una definición de registro
Al habilitar code scanning la configuración predeterminada para un repositorio o grupo de repositorios, GitHub comprueba si los repositorios tienen acceso a los registros privados existentes. Si hay registros privados disponibles para un repositorio, code scanning usará las definiciones pertinentes durante el análisis.
Al configurar registros privados por primera vez, debe deshabilitar y volver a habilitar code scanning la configuración predeterminada para los repositorios que quiera usar la nueva definición. Las configuraciones nuevas o modificadas se aplicarán automáticamente en ejecuciones posteriores.
Para los lenguajes que admiten registros de paquetes privados, la configuración predeterminada de code scanning generará información sobre el página de estado de la herramienta. Esto muestra qué configuraciones privadas del Registro estaban disponibles para un análisis, pero no si code scanning la configuración predeterminada pudo descargar correctamente las dependencias privadas de ellas. Para obtener más información sobre página de estado de la herramienta, consulta Usar la página de estado de la herramienta para el examen de código.
Como alternativa, puede confirmar si los registros privados se usaron correctamente mediante code scanning el análisis examinando los archivos de registro de acciones, consulte Registros de análisis de código.
Code scanning acceso de configuración avanzada a registros privados
Code scanning la configuración avanzada utiliza cualquier registro privado disponible para el flujo de trabajo que realiza el análisis utilizando `codeql-action`. No tiene acceso a los registros privados de la organización que se usan de forma predeterminada.
Para los lenguajes compilados, el codeql-action debe tener en cuenta una compilación del código. Puede revisar el flujo de trabajo de compilación existente para ejecutar el codeql-action también o crear un flujo de trabajo que compile la versión de producción del código y también ejecute el codeql-action.
El flujo de trabajo que ejecuta el codeql-action también debe poder acceder a los registros privados usados por la compilación. Para obtener más información sobre la configuración avanzada, consulte Establecimiento de la configuración avanzada para el examen del código.
Dependabot actualiza el acceso a los registros privados.
Dependabot puede usar cualquiera de los registros privados de nivel de organización, así como usar los registros privados definidos en el `dependabot.yml` archivo en el repositorio.
Dependabot no puede comprobar si hay actualizaciones de seguridad o de versión para el código almacenado en un registro privado a menos que pueda acceder al registro. Si no configura el acceso al registro privado, Dependabot no podrá generar solicitudes de incorporación de cambios para actualizar ninguna de las dependencias almacenadas en el registro.
Al configurar el acceso a uno o varios registros privados, Dependabot puede proponer solicitudes de incorporación de cambios para actualizar una dependencia vulnerable o para mantener una dependencia, consulte Configuración del acceso a registros privados para Dependabot y Guía para la configuración de registros privados para Dependabot.