Skip to main content

Concesión de acceso a las características de seguridad a registros privados

Si tu organización usa registros privados, puedes mejorar los resultados del análisis de code scanning y habilitar Dependabot para mantener más dependencias configurando el acceso a estos registros.

Acerca de la importancia de proporcionar acceso a registros privados

Cuando un repositorio usa código almacenado 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 configuración predeterminada de code scanning y Dependabot están limitados.

Code scanning acceso predeterminado de configuración a registros privados

Note

La configuración de registros privados para la configuración predeterminada code scanning para su uso en una organización se encuentra actualmente en versión preliminar pública y está sujeta a cambios. Los registros admitidos son: repositorios de Maven y fuentes nuGet.

El programa de instalación predeterminado de Code scanning analiza las variables de datos C# y Java sin compilarlo. Si no defines 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. La mayoría de las veces, esto es suficiente para exponer la mayoría de las vulnerabilidades. Sin embargo, en algunos casos la falta de acceso puede provocar 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 interpretarlos.

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.

Tip

Puede definir un registro privado de Maven y una fuente de NuGet privada para cada organización. Si los códigos base de la organización usan más de un registro o fuente, debes 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 code scanning

Debes ser un propietario de una organización para configurar el acceso a registros privados en la interfaz de usuario. También puedes usar la API de REST con permiso de propietario de la organización o {read,write}_org_private_registries.

  1. En la pestaña Configuración de la organización, desplázate hasta la sección "Seguridad" y selecciona Secretos y variables.
  2. En la lista expandida de secretos y variables, selecciona Registros privados para mostrar la página "Registros privados".
  3. Selecciona Nuevo registro privado para agregar detalles de acceso para un registro privado.
  4. Usa los campos URL y Type para definir la ubicación y el tipo del registro:
    • Dirección URL es la ubicación donde se accede al registro privado. Por ejemplo, para usar el registro GitHub Packages para NuGet: https://nuget.pkg.github.com/.
    • Type es el tipo de registro.
  5. Selecciona token o nombre de usuario y contraseña, en función del método de autenticación y escribe los datos en los campos adecuados.
  6. Define qué repositorios de la organización pueden acceder al registro privado mediante estos detalles: todos, privados e internos, o solo repositorios seleccionados.
  7. Cuando haya terminado de definir el registro privado, selecciona Agregar registro para guardar la información del Registro.

Tip

Al agregar 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 la configuración predeterminada de code scanning para usar una definición del Registro

Al habilitar la configuración predeterminada de code scanning 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, debes deshabilitar y volver a habilitar la configuración predeterminada code scanning para los repositorios que quieras usar la nueva definición. Las configuraciones nuevas o modificadas se recogerán automáticamente en ejecuciones posteriores.

Puedes confirmar si los registros privados se usaron correctamente mediante el análisis de code scanning examinando los archivos de registro de acciones. Consulta Determinar si la configuración predeterminada del examen de código usó registros privados.

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 ejecuta el análisis utilizando el codeql-action. No tiene acceso a los registros privados de nivel de organización que se usan de forma predeterminada.

Para los lenguajes compilados, el codeql-action debe observar una compilación del código. Puede revisar el flujo de trabajo de compilación existente para ejecutar también el codeql-action o crear un flujo de trabajo que compile la versión de producción del código y también ejecute el codeql-action.

Los registros privados usados por la compilación también deben ser accesibles para el flujo de trabajo que ejecuta el codeql-action. Para obtener más información sobre la configuración avanzada, consulta Establecimiento de la configuración avanzada para el examen del código.

Dependabot actualiza el acceso a los registros privados.

Dependabot usa los registros privados definidos en el archivo dependabot.yml. No tiene acceso a los registros privados a nivel de organización utilizados por la configuración predeterminada de code scanning.

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 puede 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, consulta Configuración del acceso a registros privados para Dependabot y Guía para la configuración de registros privados para Dependabot.