Skip to main content

Protection des poussées pour les référentiels et les organisations

Avec la protection push pour les référentiels et les organisations, secret scanning empêche les contributeurs d’envoyer des secrets à un référentiel et génère une alerte chaque fois qu’un contributeur contourne le blocage.

Qui peut utiliser cette fonctionnalité ?

La protection push pour les référentiels et les organisations est disponible gratuitement sur tous les dépôts publics. Les organisations qui utilisent GitHub Enterprise Cloud avec une licence pour GitHub Advanced Security peuvent également la protection push sur leurs dépôts privés et internes.

À propos de la protection des poussées pour les référentiels et les organisations

Jusqu’à présent, l’secret scanning vérifie la présence de secrets après une poussée et avertit les utilisateurs des secrets exposés. Lorsque vous activez la protection push pour votre organisation ou votre référentiel, secret scanning vérifie également les envois (push) pour les secrets pris en charge. Secret scanning liste les secrets qu’elle détecte afin que l’auteur puisse passer en revue les secrets et les supprimer ou, si nécessaire, autoriser ces secrets à être poussés.

Si un contributeur contourne un bloc de protection de poussée pour un secret, GitHub :

  • Crée une alerte sous l’onglet Sécurité du dépôt.
  • Ajoute l’événement de contournement au journal d’audit.
  • Envoie une alerte par e-mail aux propriétaires de l’organisation ou de compte personnel, aux responsables de la sécurité et aux administrateurs de référentiels, qui regardent le référentiel, avec un lien vers le secret associé et la raison pour laquelle il a été autorisé.

Ce tableau montre le comportement des alertes pour chaque façon dont un utilisateur peut contourner un blocage de la protection push.

Motif du contournementComportement des alertes
Il est utilisé dans des testsGitHub crée une alerte fermée, résolue comme « utilisé dans des tests »
C'est un faux positifGitHub crée une alerte fermée, résolue comme « faux positif »
Je le corrigerai plus tardGitHub crée une alerte ouverte

Sur la page des alertes secret scanning d’un dépôt ou d’une organisation, vous pouvez appliquer le filtre bypassed:true pour voir facilement quelles alertes sont dues à un utilisateur ayant contourné la protection des poussées.

Vous pouvez surveiller les alertes de sécurité pour découvrir quand les utilisateurs contournent les protections de poussées et créent des alertes. Pour plus d’informations, consultez « Audit des alertes de sécurité ».

Pour plus d’informations sur les secrets et fournisseurs de services pris en charge pour la protection par émission de données, consultez « Modèles d'analyse des secrets ».

Remarque : l’éditeur web github.dev ne prend pas en charge la protection des poussées. Pour plus d’informations sur le rédacteur, consultez « Éditeur web github.dev ».

En outre, la protection push pour les utilisateurs vous protège automatiquement contre la validation accidentelle des secrets dans les dépôts publics, que l’option secret scanning soit activée ou non pour le référentiel lui-même. La protection push pour les utilisateurs est activée par défaut, mais vous pouvez désactiver la fonctionnalité à tout moment via vos paramètres de compte personnel. Pour plus d’informations, consultez « Protection par émission de données pour les utilisateurs ».

Activation de l’secret scanning en tant que protection des poussées

Pour que vous utilisiez secret scanning comme protection d’envoi dans les référentiels publics, l’entreprise l’organisation ou le référentiel doit avoir secret scanning activé. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d'analyse pour votre organisation », « Gestion des paramètres de sécurité et d’analyse pour votre dépôt » et « À propos de GitHub Advanced Security ».

Les propriétaires d’organisation, les gestionnaires de sécurité et les administrateurs de référentiels peuvent activer la protection de transmission de type push pour secret scanning via l’API. Pour plus d’informations, consultez « Points de terminaison d’API REST pour les référentiels » et développez la section « Propriétés de l’objet security_and_analysis ».

Vous pouvez également activer la protection push pour tous vos dépôts publics via vos paramètres de compte personnel. Pour les nouveaux dépôts publics que vous créez, la protection push est activée par défaut. Pour plus d’informations, consultez « Configuration de l’analyse des secrets pour vos dépôts ».

Les administrateurs

Remarque : Lorsque vous dupliquez un dépôt avec secret scanning comme protection push activée, celle-ci n'est pas activée par défaut sur le dupliqué (fork). Vous pouvez l'activer sur le dupliqué (fork) de la même manière que vous l'activez sur un dépôt autonome.

Activation de l’secret scanning en tant que protection des poussées pour une organisation

Vous pouvez utiliser la page des paramètres d’une organisation pour « Sécurité et analyse du code » pour activer et désactiver secret scanning comme une protection de transmission de type push pour tous les référentiels existants dans une organisation.

  1. Sur GitHub.com, accédez à la page principale de l’organisation.

  2. Sous le nom de votre organisation, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran des onglets dans le profil d’une organisation. L’onglet « Paramètres » est présenté en orange foncé.

  3. Dans la section « Sécurité » de la barre latérale, cliquez sur Sécurité et analyse du code.

  4. Sous « Sécurité et analyse du code », recherchez « GitHub Advanced Security ».

  5. Sous « Secret scanning », sous « Protection des poussées », cliquez sur Activer tout.

  6. Cliquez éventuellement sur Activer automatiquement pour les référentiels ajoutés à secret scanning.

  7. Pour éventuellement inclure un lien personnalisé dans le message que les membres voient quand ils tentent d’envoyer (push) un secret, sélectionnez Ajouter un lien de ressource dans l’interface CLI et l’interface utilisateur web quand un commit est bloqué, puis tapez une URL et cliquez sur Enregistrer le lien.

    Capture d’écran de la section « Protection push » de la page « Sécurité et analyse du code ». La case à cocher « Ajouter un lien de ressource dans l’interface CLI et l’interface utilisateur web lorsqu’une validation est bloquée » et le champ de texte de lien personnalisé sont mis en évidence avec un contour orange foncé.

Pour plus d’informations sur l’activation de fonctionnalités de sécurité dans une organisation, consultez « Démarrage rapide pour la sécurisation de votre organisation ».

Activation de l’secret scanning en tant que protection des poussées pour un dépôt

  1. Dans GitHub.com, accédez à la page principale du dépôt.

  2. Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la section « Sécurité » de la barre latérale, cliquez sur Sécurité et analyse du code.

  4. Sous « Sécurité et analyse du code », recherchez « GitHub Advanced Security ».

  5. Sous « Secret scanning », accédez à « Protection des envois » et cliquez sur Activer. Capture d’écran montrant comment activer la protection des poussées pour l’secret scanning d’un dépôt.

Utilisation de l’analyse des secrets comme protection par émission de données à partir de la ligne de commande

Lorsque vous tentez d’envoyer un secret pris en charge vers un référentiel sécurisé par la protection push, GitHub bloque l’envoi. Vous pouvez supprimer le secret de votre branche ou suivre une URL fournie pour autoriser l’envoi (push).

Jusqu’à cinq secrets détectés s’affichent à la fois sur la ligne de commande. Si un secret particulier a déjà été détecté dans le dépôt et qu’une alerte existe déjà, GitHub ne bloque pas ce secret.

Les propriétaires d’organisation peuvent fournir un lien personnalisé qui s’affiche lorsqu’une poussée est bloquée. Ce lien personnalisé peut contenir des ressources et des conseils spécifiques à l’organisation, tels que des instructions sur l’utilisation d’un coffre de secrets recommandé ou qui contacter pour des questions relatives au secret bloqué.

Si vous confirmez qu’un secret est réel, vous devez supprimer le secret de votre branche, de toutes les validations dans lesquelles il apparaît, avant d’envoyer (push) à nouveau. Pour plus d’informations sur la correction des secrets bloqués, consultez « Envoi d’une branche bloquée par la protection par émission de données ».

Si vous confirmez qu’un secret est réel et que vous avez l’intention de le corriger ultérieurement, vous devez veiller à effectuer la correction dès que possible. Par exemple, vous pouvez révoquer le secret et le supprimer de l’historique des commits du dépôt. Les secrets réels exposés doivent être révoqués pour éviter tout accès non autorisé. Vous pouvez commencer par faire pivoter le secret avant de le révoquer. Pour plus d’informations, consultez « Suppression de données sensibles dans un dépôt ».

Remarques:

  • Si votre configuration Git prend en charge les envois vers plusieurs branches, et non uniquement vers la branche par défaut, votre envoi peut être bloqué en raison de l’envoi (push) de références supplémentaires et involontaires. Pour plus d’informations, consultez les options push.default dans la documentation Git.
  • Si l’secret scanning à l’occasion de l’expiration d’un envoi (push), GitHub exécute toujours une analyse après l’envoi (push).

Autorisation de la poussée d’un secret bloqué

Si GitHub bloque un secret alors que selon vous sa poussée ne pose pas de problème, vous pouvez autoriser le secret et spécifier la raison pour laquelle il doit être autorisé.

Lorsque vous autorisez un secret à être poussé, une alerte est créée sous l’onglet Sécurité. GitHub ferme l’alerte et n’envoie pas de notification si vous spécifiez que le secret est un faux positif ou qu’il est utilisé uniquement dans les tests. Si vous spécifiez que le secret est bien réel et que vous le corrigerez plus tard, GitHub garde l’alerte de sécurité ouverte et envoie des notifications à l’auteur du commit, ainsi qu’aux administrateurs du dépôt. Pour plus d’informations, consultez « Gestion des alertes à partir de l’analyse des secrets ».

Quand un contributeur contourne un bloc de protection push pour un secret, GitHub envoie également une alerte par e-mail aux propriétaires de l’organisation, responsables de la sécurité et administrateurs de dépôt qui ont opté pour les notifications par e-mail.

  1. Visitez l’URL qu’a retournée GitHub quand votre poussée a été bloquée.

  2. Choisissez l’option qui décrit le mieux la raison pour laquelle vous devez être en mesure de pousser le secret.

    • Si le secret est utilisé uniquement dans des tests et ne représente aucune menace, cliquez sur Il est utilisé dans des tests.
    • Si la chaîne détectée n’est pas un secret, cliquez sur Il s’agit d’un faux positif.
    • Si le secret est réel, mais que vous avez l’intention de le corriger plus tard, cliquez sur Je le corrigerai plus tard.

    Remarque : Vous devez spécifier une raison de contourner la protection push si l’analyse des secrets est activée dans le référentiel.

    Lors d’une poussée vers un dépôt public pour lequel l’analyse des secrets n’est pas activée, vous êtes toujours protégé contre l’envoi (push) accidentel de secrets grâce à la protection push pour les utilisateurs, qui est activée par défaut pour votre compte d’utilisateur.

    Avec la protection push pour les utilisateurs, GitHub bloque automatiquement les envois (push) vers les dépôts publics si ces envois contiennent des secrets pris en charge, mais vous n’avez pas besoin de spécifier une raison d’autoriser le secret, et GitHub ne génère pas d’alerte. Pour plus d’informations, consultez « Protection par émission de données pour les utilisateurs ».

  3. Cliquez sur M’autoriser à pousser ce secret.

  4. Retentez la poussée sur la ligne de commande dans un délai de trois heures. Si vous n’effectuez pas la poussée dans les trois heures, vous devrez répéter ce processus.

Utilisation de l’analyse des secrets comme protection des poussées à partir de l’interface utilisateur web

Lorsque vous utilisez l’interface Web pour tenter de valider un secret pris en charge dans un référentiel sécurisé par la protection push, GitHub bloque la validation.

Vous verrez une boîte de dialogue avec des informations sur l’emplacement du secret, ainsi que des options vous permettant d’envoyer (push) le secret. Le secret sera également souligné dans le fichier afin que vous puissiez le trouver facilement.

GitHub n’affiche qu’un secret détecté à la fois dans l’interface utilisateur web. Si un secret particulier a déjà été détecté dans le dépôt et qu’une alerte existe déjà, GitHub ne bloque pas ce secret.

Les propriétaires d’organisation peuvent fournir un lien personnalisé qui s’affiche lorsqu’une poussée est bloquée. Ce lien personnalisé peut contenir des ressources et des conseils spécifiques à votre organisation. Par exemple, le lien personnalisé peut pointer vers un fichier README avec des informations sur le coffre de secrets de l’organisation, les équipes et les individus auxquels remonter les questions, ou la stratégie approuvée de l’organisation pour travailler avec des secrets et réécrire l’historique des commits.

Vous pouvez supprimer le secret du fichier à l’aide de l’interface utilisateur web. Une fois que vous avez supprimé le secret, vous pourrez valider vos modifications.

Contournement de la protection des poussées pour un secret

Si vous confirmez qu’un secret est réel, vous devez supprimer le secret de votre branche, de toutes les validations dans lesquelles il apparaît, avant d’envoyer (push) à nouveau. Pour plus d’informations sur la correction des secrets bloqués, consultez « Envoi d’une branche bloquée par la protection par émission de données ».

Si vous confirmez qu’un secret est réel et que vous avez l’intention de le corriger ultérieurement, vous devez veiller à effectuer la correction dès que possible. Pour plus d’informations, consultez « Suppression de données sensibles dans un dépôt ».

Si GitHub bloque un secret alors que selon vous sa poussée ne pose pas de problème, vous pouvez autoriser le secret et spécifier la raison pour laquelle il doit être autorisé.

Lorsque vous autorisez un secret à être poussé, une alerte est créée sous l’onglet Sécurité. GitHub ferme l’alerte et n’envoie pas de notification si vous spécifiez que le secret est un faux positif ou qu’il est utilisé uniquement dans les tests. Si vous spécifiez que le secret est bien réel et que vous le corrigerez plus tard, GitHub garde l’alerte de sécurité ouverte et envoie des notifications à l’auteur du commit, ainsi qu’aux administrateurs du dépôt. Pour plus d’informations, consultez « Gestion des alertes à partir de l’analyse des secrets ».

Quand un contributeur contourne un bloc de protection push pour un secret, GitHub envoie également une alerte par e-mail aux propriétaires de l’organisation, responsables de la sécurité et administrateurs de dépôt qui ont opté pour les notifications par e-mail.

  1. Dans la boîte de dialogue qui s’est affichée lorsque GitHub a bloqué votre validation, consultez le nom et l’emplacement du secret.

  2. Choisissez l’option qui décrit le mieux la raison pour laquelle vous devez être en mesure de pousser le secret.

    • Si le secret est utilisé uniquement dans des tests et ne représente aucune menace, cliquez sur Il est utilisé dans des tests.
    • Si la chaîne détectée n’est pas un secret, cliquez sur Il s’agit d’un faux positif.
    • Si le secret est réel, mais que vous avez l’intention de le corriger plus tard, cliquez sur Je le corrigerai plus tard.

    Remarque : Vous devez spécifier une raison de contourner la protection push si l’analyse des secrets est activée dans le référentiel.

    Lors d’une poussée vers un dépôt public pour lequel l’analyse des secrets n’est pas activée, vous êtes toujours protégé contre l’envoi (push) accidentel de secrets grâce à la protection push pour les utilisateurs, qui est activée par défaut pour votre compte d’utilisateur.

    Avec la protection push pour les utilisateurs, GitHub bloque automatiquement les envois (push) vers les dépôts publics si ces envois contiennent des secrets pris en charge, mais vous n’avez pas besoin de spécifier une raison d’autoriser le secret, et GitHub ne génère pas d’alerte. Pour plus d’informations, consultez « Protection par émission de données pour les utilisateurs ».

  3. Cliquez sur Autoriser le secret.