Analyser les alertes de sécurité GitHub à l’aide du mode Demander de GitHub Copilot
Comprendre pourquoi une alerte d’analyse secrète a été déclenchée et comment la corriger nécessite une analyse minutieuse. Le mode Demander de GitHub Copilot offre un moyen interactif d’analyser les informations d’identification exposées, de comprendre leurs implications en matière de sécurité et de planifier les stratégies de correction appropriées.
Qu’est-ce que le mode Demander de GitHub Copilot ?
Le mode Ask de GitHub Copilot est une interface de conversation conversationnelle intégrée à Visual Studio Code. Vous posez des questions sur votre code et Copilot répond à l’aide du contexte que vous fournissez. Pour les alertes d’analyse des secrets, le mode Demander fonctionne en tant que consultant en sécurité qui peut expliquer pourquoi des informations d’identification sont exposées, évaluer les risques et suggérer des approches de correction.
Le mode Demander est idéal pour :
- Comprendre pourquoi des alertes d’analyse des secrets ont été déclenchées par un code spécifique.
- Analyse des implications de sécurité des informations d’identification exposées.
- Exploration des alternatives sécurisées pour la gestion des secrets.
- Planification des stratégies de correction avant d’apporter des modifications de code.
- Apprendre les meilleures pratiques en matière de sécurité dans le contexte.
Note
Le mode Demander ne modifie pas vos fichiers de code. Il fournit des analyses, des explications et des suggestions qui informent vos décisions de correction.
Stratégies d’invite efficaces
L’analyse réussie avec le mode Ask dépend d’invites claires et spécifiques qui fournissent un contexte et se concentrent sur des insights actionnables. GitHub recommande d’utiliser le langage naturel qui référence des sélections de code spécifiques et inclut un contexte pertinent sur votre environnement.
Comprendre l’exposition
Commencez par confirmer ce qui a été détecté et pourquoi il est problématique. Sélectionnez le code contenant le secret et posez des questions directes.
Pour clarifier la nature de l'exposition, les instructions suivantes facilitent la compréhension :
- « Expliquer pourquoi le code sélectionné a déclenché une alerte de détection des secrets. »
- « Quel type d'identifiants est utilisé dans le code sélectionné et à quel service accède-t-on ? »
- « Analysez la chaîne de connexion de base de données sélectionnée et identifiez toutes les informations d’identification exposées . »
- « La sélection contient-elle une clé API réelle ou peut-elle être un faux positif ? »
GitHub Copilot analyse le code sélectionné et explique :
- Modèle spécifique qui a déclenché l’alerte (par exemple, « correspond au format de clé API de Stripe commençant par « sk_live_ »).
- Type d’identifiants et ses caractéristiques (par exemple, « chaîne littérale codée en dur » ou « correspond au modèle de service connu »).
- Service ou système auquel les informations d’identification accèdent.
- Visibilité de l’exposition (qui peut la voir).
Cette confirmation vous aide à comprendre si vous traitez d’un véritable secret ou d’un faux positif.
Évaluation du risque
Il est important de comprendre l’impact potentiel et comment hiérarchiser la correction. Fournissez le contexte sur l’environnement et la visibilité de votre référentiel.
Les indications suivantes aident à évaluer la gravité de l’exposition :
- « Qu’est-ce qu’un attaquant peut faire avec la clé API exposée sélectionnée ? »
- « Quel est le niveau de risque d’exposition de cette chaîne de connexion de base de données dans un référentiel public ? »
- « Quelles données ou systèmes sensibles sont à risque en raison de ce secret ? »
- « Quelle est la gravité de cette exposition par rapport à d’autres types d’informations d’identification ? »
GitHub Copilot analyse le type d’informations d’identification et explique :
- Actions spécifiques qu’un attaquant peut effectuer (transactions financières, accès aux données, modifications système).
- Catégories de risques (impact financier, violations de données, interruptions d’activité, violations de conformité).
- Niveau d’urgence basé sur le type d’informations d’identification et la visibilité du référentiel.
- Actions immédiates requises (révoquer les informations d'identification, examiner les journaux d'activité, changer les secrets).
- Implications potentielles en matière de conformité, telles que la norme PCI DSS (Payment Card Industry Data Security Standard).
Cette évaluation des risques vous aide à hiérarchiser la correction et à communiquer l’urgence aux parties prenantes.
Présentation du contexte
Analysez la façon dont le secret est utilisé pour veiller à ce que la correction préserve les fonctionnalités. Permet #codebase de rechercher dans les fichiers.
Les instructions suivantes vous aident à explorer le contexte d’utilisation.
- « Comment la clé API sélectionnée est-elle utilisée dans l’application ? »
- « Quelles fonctions ou classes dépendent de la chaîne de connexion de base de données sélectionnée ? »
- «
#codebaseRecherchez tous les chemins de code qui référencent ces informations d’identification. » - « Que se passe-t-il si je supprime ce secret codé en dur ? »
GitHub Copilot analyse l’espace de travail et identifie :
- Tous les fichiers et emplacements où le secret est référencé.
- Méthodes, classes ou services qui dépendent des identifiants.
- La manière dont les informations d'identification sont initialisées et utilisées.
- Fonctionnalités critiques qui s’appuient sur le secret.
- Dépendances entre les composants qui utilisent les informations d’identification.
- Recommandations pour mettre à jour tous les points d’utilisation pendant la correction.
Cette analyse garantit que votre plan de correction traite toutes les dépendances et gère les fonctionnalités de l’application.
Planification de la correction
Développez une stratégie de correctif complète. Soyez précis dans votre description de votre pile technologique et de votre environnement.
Les instructions suivantes vous aident à élaborer un plan de correction complet :
- « Quelle est la méthode recommandée pour stocker en toute sécurité cette clé API dans une application .NET ? »
- « Créez un plan pas à pas pour corriger ces informations d’identification de base de données exposées . »
- « Comment migrer des secrets codés en dur vers Azure Key Vault ? »
- « Montrez-moi la meilleure pratique pour gérer ce type d'identifiants en production. »
GitHub Copilot recommande des solutions de stockage sécurisées et explique :
- Approches de gestion des secrets appropriées pour votre stack technologique (Azure Key Vault, Secrets utilisateur, variables d’environnement).
- Classement prioritaire des options (environnements de production et de développement).
- Conseils d’implémentation pas à pas.
- Exemples de code montrant des modèles d’accès de configuration sécurisés.
- Détails d’intégration spécifiques à la plateforme (injection de dépendances, générateurs de configuration).
- Considérations relatives aux tests avant le déploiement.
Cette aide fournit une feuille de route claire pour l’implémentation de la gestion sécurisée des secrets.
Recherche de problèmes connexes
Identifiez des problèmes similaires ailleurs à l’aide d’une analyse à l’échelle de l’espace de travail.
Les instructions suivantes vous aident à identifier des problèmes semblables ailleurs dans l’espace de travail.
- «
#codebaseRecherchez d’autres clés API codées en dur ou chaînes de connexion. » - « Existe-t-il d’autres informations d’identification dans les fichiers de configuration nécessitant une correction ? »
- «
#codebaseRechercher des fichiers qui contiennent des modèles similaires au secret sélectionné. » - « Quelles autres préoccupations de sécurité existent dans les fichiers qui gèrent l’intégration de service externe ? »
GitHub Copilot recherche l’espace de travail et identifie :
- Autres fichiers contenant des modèles d’informations d’identification similaires.
- Fichiers de configuration qui peuvent contenir des secrets codés en dur.
- Problèmes de sécurité connexes dans le code d’authentification ou d’intégration.
- Modèles cohérents suggérant des problèmes systématiques.
- Recommandations pour la correction à l’échelle de l’espace de travail.
Cette analyse complète vous permet de résoudre toutes les instances du problème, pas seulement celle qui a déclenché l’alerte.
Fournir un contexte efficace
La qualité de l’analyse de GitHub Copilot dépend du contexte que vous fournissez.
Ajouter des fichiers et du code pertinents
Fournir un contexte complet aide Copilot à fournir une analyse plus précise :
- Sélectionnez le code spécifique contenant le secret exposé avant de poser des questions.
-
Utilisez le bouton Ajouter un contexte dans l’interface de conversation pour inclure :
- Fichier contenant le secret.
- Fichiers de configuration (appsettings.json, .env.example).
- Fichiers qui utilisent le secret (classes de service, contrôleurs).
- Référencez les détails de l’alerte à partir de l’onglet Sécurité de GitHub (type de secret, chemin de fichier, numéro de ligne).
Écrire des descriptions claires des problèmes
Lorsque vous demandez une alerte d’analyse des secrets, incluez les détails clés de l’alerte GitHub pour fournir un contexte complet.
Vous pouvez utiliser la structure suivante comme modèle pour vos invites :
I have a GitHub secret scanning alert for a [SECRET TYPE] in [FILE PATH] line [NUMBER].
This is a [public/private] repository. I need to understand:
1. [Specific question about access/impact]
2. [Specific question about rotation]
3. [Specific question about secure storage]
Voici un exemple qui utilise le modèle :
I have a GitHub secret scanning alert for a Stripe API key in src/PaymentProcessor.cs line 15.
This is a public repository. I need to understand:
1. What access this key provides
2. How to safely rotate it
3. How to implement secure storage without breaking payment processing
L’écriture de descriptions claires des problèmes avec des détails spécifiques aide GitHub Copilot à :
- Comprendre le type et l’emplacement exacts des identifiants.
- Évaluez les risques en fonction de la visibilité du référentiel.
- Fournissez des conseils de correction ciblés pour votre scénario spécifique.
- Résolvez plusieurs problèmes dans une réponse unique et complète.
Cette approche structurée suit la recommandation de GitHub de fournir un contexte dès le début plutôt que de passer par plusieurs échanges de va-et-vient.
Flux de travail d’analyse itérative
Le mode Demander de GitHub Copilot est le plus efficace lorsque des requêtes prennent en charge une approche itérative pour analyser les problèmes et formuler une stratégie de correction.
Suivez cette approche systématique lorsque vous analysez des alertes d’analyse des secrets :
- Passez en revue l’alerte dans l’onglet Sécurité de GitHub et notez le type de secret, le chemin d’accès au fichier et le numéro de ligne.
- Ouvrez le référentiel dans Visual Studio Code et accédez au fichier identifié.
- Sélectionnez le code contenant le secret exposé et le contexte environnant.
- Appliquez les stratégies de requête des sections précédentes dans la séquence suivante : compréhension de l’exposition, évaluation du risque, compréhension du contexte, planification de la remédiation et recherche des problèmes associés.
- Documentez vos résultats et votre plan de correction au fur et à mesure que vous travaillez dans l’analyse.
Meilleures pratiques pour le mode Demander de GitHub Copilot
Les recommandations recommandées peuvent vous aider à optimiser l’efficacité de vos sessions d’analyse.
Démarrez large, puis concentrez-vous
Commencez par des questions générales, puis explorez progressivement les spécificités.
Envisagez un scénario qui implique l’analyse d’une clé API exposée dans un extrait de code sélectionné :
- « Que fait le code sélectionné et pourquoi est-il un problème ? »
- « Quels sont les risques spécifiques associés au code sélectionné ? »
- « Comment la clé API est-elle utilisée dans l’application ? »
- « Pouvez-vous décrire un plan de correction ? »
- « Existe-t-il des problèmes connexes dans la base de code ? »
Documenter vos résultats
Lorsque vous analysez, documentez les points clés :
- Type et objectif des informations d’identification.
- Services ou données auxquels il accède.
- Emplacements d’utilisation dans la base de code.
- Étapes du plan de correction.
- Problèmes connexes détectés.
Poser des questions de suivi
N’hésitez pas à demander des précisions :
- « Pouvez-vous expliquer cela plus en détail ? »
- « Quels sont les avantages et inconvénients de cette approche ? »
- « Quels tests dois-je faire après l’implémentation de cette modification ? »
Affinez votre compréhension
Si une réponse n’est pas claire, réhrasez votre question ou fournissez plus de contexte :
- Ajoutez d’autres fichiers au contexte de conversation.
- Soyez plus précis sur votre environnement.
- Décomposez les questions complexes en requêtes plus petites.
Considérations relatives aux différents types de secrets
Différents secrets nécessitent des approches d’analyse spécifiques :
Clés et jetons d’API
Lors de l’analyse des expositions de clés d’API :
- Identifiez le fournisseur de services et l’étendue d’accès.
- Déterminez s’il s’agit d’un environnement de production ou de test.
- Vérifiez si le fournisseur de services a été averti (validation du partenaire).
- Comprendre les autorisations accordées par la clé.
Chaînes de connexion de base de données
Pour les expositions d’une chaîne de connexion :
- Identifiez toutes les informations d’identification dans la chaîne (nom d’utilisateur, mot de passe, serveur).
- Déterminez la production et la base de données de développement.
- Évaluez les données que contient la base de données.
- Vérifiez si la base de données est accessible publiquement.
Clés privées et certificats
Pour les révélations de clés privées :
- Déterminer l’utilisation (chiffrement, signature, SSH).
- Identifiez les systèmes ou les données protégés par la clé.
- Évaluer l’impact de la rotation.
- Comprendre les exigences de remplacement.
Informations d’identification OAuth
Pour les divulgations de secrets OAuth :
- Identifiez quelles données utilisateur sont accessibles par les informations d’identification.
- Déterminer la durée de vie des jetons (durée de vie longue ou courte durée).
- Vérifiez l'accès au jeton d’actualisation.
- Évaluer l’étendue des autorisations accordées.
La compréhension de ces différences vous aide à poser des questions d’analyse plus ciblées et à développer des stratégies de correction appropriées.