L'importance de l'accès aux registres privés
Lorsqu'un référentiel utilise du code stocké dans un registre privé, certains dispositifs de sécurité doivent avoir accès au registre pour fonctionner efficacement. Sans accès à toutes les dépendances d'un référentiel, code scanning la configuration par défaut et Dependabot sont limités.
Code scanning configuration par défaut de l'accès aux registres privés
La configuration par défaut Code scanning analyse le code C# et Java sans le construire. Si vous ne définissez pas l'accès aux registres privés utilisés par votre organisation, code scanning ne recueillera que les données nécessaires à partir des dépendances disponibles dans les registres publics. La plupart du temps, cela suffit à faire apparaître la plupart des vulnérabilités. Cependant, dans certains cas, le manque d'accès peut conduire à des résultats faussement négatifs, c'est-à-dire que code scanning n'est pas en mesure de détecter une vulnérabilité dans le code parce qu'il ne dispose pas de 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 parce que les étapes sont définies dans des dépendances qui ne sont pas accessibles et que 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 dont il a besoin et est beaucoup moins susceptible de manquer une vulnérabilité.
Tip
Vous pouvez définir un registre Maven privé et un flux NuGet privé pour chaque organisation. Si les bases de code de votre organisation utilisent plusieurs registres ou flux, vous devez définir l'accès au registre le plus important pour les bases de code de cette organisation.
Définir l'accès au registre pour code scanning la configuration par défaut
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 le propriétaire ou l'autorisation de {read,write}_org_private_registries
.
- Dans l'onglet Paramètres de l'organisation, descendez jusqu'à la section « Sécurité » et sélectionnez Secrets et variables.
- Dans la liste développée des secrets et des variables, sélectionnez Registres privés pour afficher la page « Registres privés ».
- Sélectionnez Nouveau registre privé pour ajouter des détails d’accès pour un registre privé.
- 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 est le type de registre.
- URL est l’emplacement où vous accédez au registre privé. Par exemple, pour utiliser le registre GitHub Packages pour NuGet :
- Sélectionnez Jeton ou nom d’utilisateur et mot de passe, en fonction de la méthode d’authentification, puis entrez des données dans les champs appropriés.
- Définissez les référentiels de l'organisation qui peuvent accéder au registre privé en utilisant ces détails : tous, privé et interne, ou référentiels sélectionnés uniquement.
- Une fois que vous avez terminé de définir le registre privé, sélectionnez Ajouter un registre pour enregistrer les informations du Registre.
Tip
Lorsque vous ajoutez un registre privé à une organisation, le jeton ou le mot de passe est stocké sous la forme d'un secret crypté. Une fois le registre créé, le jeton ou le mot de passe ne peut plus être consulté.
Activation de code scanning la configuration par défaut pour utiliser une définition de registre
Lorsque vous activez la configuration par défaut de code scanning pour un référentiel ou un groupe de référentiels, GitHub vérifie si les référentiels ont accès à des registres privés existants. Si un référentiel dispose de registres privés, code scanning utilisera les définitions correspondantes lors de l'analyse.
Lorsque vous configurez des registres privés pour la première fois, vous devez désactiver et réactiver code scanning la configuration par défaut pour tous les référentiels que vous souhaitez utiliser avec la nouvelle définition. Les configurations nouvelles ou modifiées seront automatiquement reprises lors des exécutions suivantes.
Vous pouvez confirmer que les registres privés ont été utilisés avec succès par l’analyse code scanning en consultant les fichiers journaux des actions, consultez Déterminer si la configuration par défaut de l’analyse de code a utilisé des registres privés.
Code scanning configuration avancée accès aux registres privés
Code scanning La configuration avancée utilise tous les registres privés disponibles pour le flux de travail qui exécute l'analyse à l'aide de codeql-action
. Il 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 compilation du code. Vous pouvez modifier votre flux de travail de build existant pour exécuter également l' codeql-action
ou créer un flux de travail qui génère la version de production du code et exécute également la codeql-action
.
Tous les registres privés utilisés par la compilation doivent également être accessibles au flux de travail qui exécute le codeql-action
. Pour plus d’informations sur la configuration avancée, consultez « Configuration de la configuration par défaut pour l’analyse du code ».
Dependabot met à jour l'accès aux registres privés
Dependabot utilise tous les registres privés définis dans le fichier dependabot.yml
. Il n'a pas accès aux registres privés au niveau de l'organisation utilisés par code scanning la configuration par défaut.
Dependabot ne peut pas vérifier les mises à jour de sécurité ou de version 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 peut pas faire de demande de mise à jour des dépendances stockées dans le registre.
Lorsque vous configurez l'accès à un ou plusieurs registres privés, Dependabot peut proposer des demandes d'extraction pour mettre à niveau une dépendance vulnérable ou pour maintenir une dépendance, voir Configuration de l’accès aux registres privés pour Dependabot et Aide pour la configuration des registres privés pour Dependabot.