Détection des secrets
Cette compétence fournit un guide procédural pour configurer la détection des secrets GitHub — détecter les identifiants compromis, empêcher les envois de secrets, définir des motifs personnalisés et gérer les alertes.
Quand utiliser cette compétence
Utilisez cette compétence lorsque la demande implique :
- L'activation ou la configuration de la détection des secrets pour un dépôt ou une organisation
- La mise en place de la protection contre les envois pour bloquer les secrets avant qu'ils n'atteignent le dépôt
- La définition de motifs de secrets personnalisés avec des expressions régulières
- La résolution d'un envoi bloqué depuis la ligne de commande
- Le triage, le rejet ou la correction des alertes de détection des secrets
- La configuration du contournement délégué pour la protection contre les envois
- L'exclusion de répertoires de la détection des secrets via
secret_scanning.yml - La compréhension des types d'alertes (utilisateur, partenaire, protection contre les envois)
- L'activation de vérifications de validité ou de vérifications de métadonnées étendues
- L'analyse des changements de code locaux pour les secrets avant la validation (via MCP / agent de codage IA) — voir la section Analyse pré-commit via les agents de codage IA ci-dessous pour le plugin recommandé
Fonctionnement de la détection des secrets
La détection des secrets détecte automatiquement les identifiants exposés dans :
- L'historique Git complet sur toutes les branches
- Les descriptions, commentaires et titres des issues (ouverts et fermés)
- Les titres, descriptions et commentaires des demandes de tirage
- Les titres, descriptions et commentaires des Discussions GitHub
- Les wikis et les gists secrets
Disponibilité
| Type de dépôt | Disponibilité |
|---|---|
| Dépôts publics | Automatique, gratuit |
| Privés/internes (appartenant à une organisation) | Nécessite GitHub Secret Protection sur Team/Enterprise Cloud |
| Appartenant à un utilisateur | Enterprise Cloud avec Enterprise Managed Users |
Flux de travail principal — Activer la détection des secrets
Étape 1 : Activer la protection des secrets
- Accédez à Paramètres du dépôt → Advanced Security
- Cliquez sur Enable à côté de « Secret Protection »
- Confirmez en cliquant sur Enable Secret Protection
Pour les organisations, utilisez les configurations de sécurité pour activer à grande échelle :
- Paramètres → Advanced Security → Global settings → Security configurations
Étape 2 : Activer la protection contre les envois
La protection contre les envois bloque les secrets pendant le processus d'envoi — avant qu'ils n'atteignent le dépôt.
- Accédez à Paramètres du dépôt → Advanced Security
- Activez « Push protection » sous Secret Protection
La protection contre les envois bloque les secrets dans :
- Les envois depuis la ligne de commande
- Les validations via l'interface GitHub
- Les téléchargements de fichiers
- Les requêtes REST API
- Les points de terminaison de création de contenu REST API
Étape 3 : Configurer les exclusions (Optionnel)
Créez .github/secret_scanning.yml pour fermer automatiquement les alertes pour des répertoires spécifiques :
paths-ignore:
- "docs/**"
- "test/fixtures/**"
- "**/*.example"
Limites :
- Maximum 1 000 entrées dans
paths-ignore - Le fichier doit faire moins de 1 MB
- Les chemins exclus ignorent également les vérifications de protection contre les envois
Bonnes pratiques :
- Soyez aussi spécifique que possible avec les chemins d'exclusion
- Ajoutez des commentaires expliquant pourquoi chaque chemin est exclu
- Examinez les exclusions périodiquement — supprimez les entrées obsolètes
- Informez l'équipe de sécurité des exclusions
Étape 4 : Activer les fonctionnalités supplémentaires (Optionnel)
Motifs non-fournisseur — détecter les clés privées, les chaînes de connexion, les clés API génériques :
- Paramètres → Advanced Security → activer « Scan for non-provider patterns »
Détection générique des secrets alimentée par l'IA — utilise Copilot pour détecter les secrets non structurés comme les mots de passe :
- Paramètres → Advanced Security → activer « Use AI detection »
Vérifications de validité — vérifier si les secrets détectés sont toujours actifs :
- Paramètres → Advanced Security → activer « Validity checks »
- GitHub teste périodiquement les identifiants détectés par rapport aux API des fournisseurs
- Statut affiché dans l'alerte :
active,inactiveouunknown
Vérifications de métadonnées étendues — contexte supplémentaire sur qui possède un secret :
- Nécessite d'abord l'activation des vérifications de validité
- Aide à prioriser la correction et à identifier les équipes responsables
Flux de travail principal — Résoudre les envois bloqués
Lorsque la protection contre les envois bloque un envoi depuis la ligne de commande :
Option A : Supprimer le secret
Si le secret se trouve dans la dernière validation :
# Supprimer le secret du fichier
# Puis amender la validation
git commit --amend --all
git push
Si le secret se trouve dans une validation antérieure :
# Trouvez la première validation contenant le secret
git log
# Commencez un rebase interactif avant cette validation
git rebase -i <COMMIT-ID>~1
# Changez 'pick' en 'edit' pour la validation incriminée
# Supprimez le secret, puis :
git add .
git commit --amend
git rebase --continue
git push
Option B : Contourner la protection contre les envois
- Visitez l'URL retournée dans le message d'erreur d'envoi (en tant que l'utilisateur)
- Sélectionnez une raison de contournement :
- C'est utilisé dans les tests — alerte créée et auto-fermée
- C'est un faux positif — alerte créée et auto-fermée
- Je la corrigerai plus tard — alerte ouverte créée
- Cliquez sur Allow me to push this secret
- Renvoyez dans les 3 heures
Option C : Demander des privilèges de contournement
Si le contournement délégué est activé et vous n'avez pas de privilèges de contournement :
- Visitez l'URL du message d'erreur d'envoi
- Ajoutez un commentaire expliquant pourquoi le secret est sûr
- Cliquez sur Submit request
- Attendez la notification par email d'approbation/refus
- Si approuvé, poussez la validation ; si refusé, supprimez le secret
Pour les flux de travail de contournement et contournement délégué détaillés, recherchez
references/push-protection.md.
Motifs personnalisés
Définissez des motifs de secrets spécifiques à l'organisation à l'aide d'expressions régulières.
Configuration rapide
- Paramètres → Advanced Security → Custom patterns → New pattern
- Entrez le nom du motif et la regex pour le format du secret
- Ajoutez une chaîne de test exemple
- Cliquez sur Save and dry run pour tester (jusqu'à 1 000 résultats)
- Examinez les résultats pour les faux positifs
- Cliquez sur Publish pattern
- Activez optionnellement la protection contre les envois pour le motif
Portées
Les motifs personnalisés peuvent être définis à :
- Niveau du dépôt — s'applique à ce dépôt uniquement
- Niveau de l'organisation — s'applique à tous les dépôts avec détection des secrets activée
- Niveau Enterprise — s'applique à toutes les organisations
Génération de motifs assistée par Copilot
Utilisez la détection de secrets Copilot pour générer une regex à partir d'une description textuelle du type de secret, incluant des chaînes d'exemple optionnelles.
Pour la configuration détaillée des motifs personnalisés, recherchez
references/custom-patterns.md.
Gestion des alertes
Types d'alertes
| Type | Description | Visibilité |
|---|---|---|
| Alertes utilisateur | Secrets trouvés dans le dépôt | Onglet Sécurité |
| Alertes de protection contre les envois | Secrets envoyés via contournement | Onglet Sécurité (filtre : bypassed: true) |
| Alertes partenaires | Secrets signalés au fournisseur | Non affichées dans le dépôt (fournisseur uniquement) |
Listes d'alertes
- Alertes par défaut — motifs de fournisseurs pris en charge et motifs personnalisés
- Alertes génériques — motifs non-fournisseur et secrets détectés par l'IA (limités à 5 000 par dépôt)
Priorité de correction
- Rotation de l'identifiant immédiatement — c'est l'action critique
- Examinez l'alerte pour le contexte (localisation, commit, auteur)
- Vérifiez le statut de validité :
active(urgent),inactive(priorité inférieure),unknown - Supprimez de l'historique Git si nécessaire (intensif en temps, souvent inutile après la rotation)
Rejection des alertes
Rejet avec une raison documentée :
- Faux positif — la chaîne détectée n'est pas un vrai secret
- Révoqué — l'identifiant a déjà été révoqué
- Utilisé dans les tests — le secret est uniquement dans le code de test
Pour les types d'alertes détaillés, les vérifications de validité et la REST API, recherchez
references/alerts-and-remediation.md.
Analyse pré-commit via les agents de codage IA
Pour analyser les changements de code pour les secrets à l'intérieur d'un agent de codage IA avant la validation, installez le plugin Advanced Security qui fournit l'outil MCP run_secret_scanning et une compétence de scan dédiée.
GitHub Copilot CLI :
/plugin install advanced-security@copilot-plugins
Visual Studio Code :
- Dans Copilot Chat, ouvrez Chat: Plugins (ou utilisez
@agentPlugins) et installez le pluginadvanced-security - Puis exécutez
/secret-scanningdans Copilot Chat
Voir : Advanced Security Plugin — Secret Scanning Skill
Annoncé dans Secret scanning in AI coding agents via the GitHub MCP Server (Mars 2026)
Fichiers de référence
Pour la documentation détaillée, chargez les fichiers de référence suivants selon les besoins :
references/push-protection.md— Mécanique de la protection contre les envois, flux de contournement, contournement délégué, protection contre les envois utilisateur- Motifs de recherche :
bypass,delegated,bypass request,command line,REST API,user push protection
- Motifs de recherche :
references/custom-patterns.md— Création de motifs personnalisés, syntaxe regex, exécutions sèches, génération de regex Copilot, portées- Motifs de recherche :
custom pattern,regex,dry run,publish,organization,enterprise,Copilot
- Motifs de recherche :
references/alerts-and-remediation.md— Types d'alertes, vérifications de validité, métadonnées étendues, alertes génériques, suppression de secrets, REST API- Motifs de recherche :
user alert,partner alert,validity,metadata,generic,remediation,git history,REST API
- Motifs de recherche :