Skip to main content

Accès des fonctionnalités de sécurité aux registres privés

Si votre organisation utilise des registres privés, vous pouvez améliorer les résultats de l’analyse code scanning et permettre à Dependabot de gérer davantage de dépendances en configurant l’accès à ces registres.

À propos de l’importance de fournir un accès aux registres privés

Lorsque le code d’un référentiel a des dépendances stockées dans un registre privé, certaines fonctionnalités de sécurité doivent accéder au Registre pour les permettre de fonctionner efficacement. Sans accéder à toutes les dépendances d’un référentiel, l’efficacité de code scanning et Dependabot sont limités.

Accès des configurations par défaut de Code scanning aux registres privés

Si vous ne définissez pas l’accès aux registres privés utilisés par votre organisation, code scanning ne collectera les données nécessaires qu’à partir des dépendances disponibles dans les registres publics. La plupart du temps, cela suffit à faire apparaître la plupart des vulnérabilités. Toutefois, dans certains cas, le manque d’accès peut entraîner des résultats faux négatifs. En d’autres termes, code scanning ne peut pas détecter une vulnérabilité dans le code, car elle n’a pas toutes les informations dont il a besoin pour analyser le code. Par exemple, certains chemins de flux de données peuvent ne pas être détectés, car des étapes sont définies dans des dépendances qui ne sont pas accessibles et code scanning ne sait pas comment les interpréter.

Lorsque vous configurez l’accès aux registres privés utilisés dans votre organisation, code scanning a accès à toutes les informations nécessaire et est beaucoup moins susceptible de ne pas détecter une vulnérabilité.

La configuration par défaut de Code scanning prend en charge les types de registre suivants :

LanguageTypes de registre
C#Flux NuGet
GoServeur GOPROXY, source Git
JavaRéférentiel Maven

Conseil

Vous pouvez définir un registre de chaque type pour chaque organisation. Si les bases de code de votre organisation utilisent plusieurs registres d’un type donné, vous devez configurer un point d’accès unifié ou définir l’accès au registre le plus important pour les bases de code de cette organisation.

Définition de l’accès au registre pour la configuration par défaut de code scanning

Vous devez être propriétaire d’une organisation pour configurer l’accès aux registres privés dans l’interface utilisateur. Vous pouvez également utiliser l’API REST avec les autorisations du propriétaire de l'organisation ou {read,write}_org_private_registries.

  1. Dans l’onglet Paramètres de l’organisation, faites défiler vers le bas jusqu’à la section « Sécurité » et sélectionnez Secrets et variables.
  2. Dans la liste développée des secrets et variables, sélectionnez Registres privés pour afficher la page « Registres privés ».
  3. Sélectionnez Nouveau registre privé pour ajouter des détails d’accès pour un registre privé.
  4. Utilisez les champs URL et Type pour définir l’emplacement et le type du registre : * URL est l’emplacement où vous accédez au registre privé. Par exemple, pour utiliser le registre GitHub Packages pour NuGet : https://nuget.pkg.github.com/. * Type représente le type de registre.
  5. Sélectionnez Jeton ou Nom d’utilisateur et mot de passe, en fonction de la méthode d’authentification, puis saisissez les données dans les champs appropriés. Certains types de jetons d’authentification, tels qu’un jeton personnel GitHub Personal Access Token, sont liés à une identité d’utilisateur particulière. Sélectionnez l’option Nom d’utilisateur et mot de passe pour celles-ci , puis entrez le nom d’utilisateur approprié en tant que nom d’utilisateur et le jeton en tant que mot de passe.
  6. Définissez les dépôts de l’organisation qui peuvent accéder au registre privé en utilisant ces détails : tous les dépôts, dépôts privés et internes, ou dépôts sélectionnés uniquement.
  7. Une fois que vous avez terminé de définir le registre privé, sélectionnez Ajouter un registre pour enregistrer les informations du registre.

Conseil

Lorsque vous ajoutez un registre privé à une organisation, le jeton ou le mot de passe est stocké sous la forme d’un secret chiffré. Une fois le registre créé, le jeton ou le mot de passe ne peut plus être affiché.

Activation de la configuration par défaut de code scanning pour utiliser une définition de registre

Lorsque vous activez la configuration par défaut de code scanning pour un dépôt ou un groupe de dépôts, GitHub vérifie si ces dépôts ont accès à des registres privés existants. Si des registres privés sont disponibles pour un dépôt, code scanning utilisera les définitions correspondantes lors de l’analyse.

Lors de la première configuration de registres privés, vous devez désactiver puis réactiver la configuration par défaut de code scanning pour tous les dépôts que vous souhaitez utiliser avec la nouvelle définition. Les configurations nouvelles ou modifiées seront automatiquement appliquées lors des exécutions suivantes.

Pour les langues qui prennent en charge les registres de packages privés, code scanning génère des informations sur page d’état de l’outil. Cela vous montre quelles configurations de registre privé étaient disponibles pour une analyse, mais pas si la configuration par défaut de code scanning a réussi à télécharger les dépendances privées à partir de celles-ci. Pour plus d’informations à propos de page d’état de l’outil, consultez Utiliser la page d’état de l’outil pour l’analyse du code.

Vous pouvez également vérifier si des registres privés ont été utilisés par l’analyse de code scanning en consultant les fichiers journaux Actions. Consultez Journaux d’analyse du code.

Accès de la configuration avancée de Code scanning aux registres privés

La configuration avancée de Code scanning utilise tous les registres privés disponibles pour le workflow qui exécute l’analyse à l’aide de codeql-action. Elle n’a pas accès aux registres privés au niveau de l’organisation utilisés par la configuration par défaut.

Pour les langages compilés, codeql-action doit observer une phase de compilation du code. Vous pouvez modifier votre workflow de build existant pour qu’il exécute également codeql-action, ou créer un workflow qui génère la version de production du code et exécute également codeql-action.

Tous les registres privés utilisés par la build doivent également être accessibles au workflow qui exécute codeql-action. Pour plus d’informations sur la configuration avancée, consultez Configuration avancée de l’analyse du code.

Accès des mises à jour de Dependabot aux registres privés

Dependabot peut utiliser n’importe lequel des registres privés au niveau de l’organisation, ainsi que tous les registres privés définis dans le fichier dependabot.yml du dépôt.

Dependabot ne peut pas vérifier les mises à jour de sécurité ou de version pour du code stocké dans un registre privé s’il ne peut pas accéder au registre. Si vous ne configurez pas l’accès au registre privé, Dependabot ne pourra pas créer de demandes de tirage pour mettre à jour les dépendances stockées dans le registre.

Lorsque vous configurez l’accès à un ou plusieurs registres privés, Dependabot peut proposer des demandes de tirage pour mettre à niveau une dépendance vulnérable ou pour maintenir une dépendance. Consultez Configuration de l’accès aux registres privés pour Dependabot et Aide pour la configuration des registres privés pour Dependabot.