Analysez les problèmes à l’aide du mode Demande de GitHub Copilot

Effectué

L’identification et la compréhension des problèmes de sécurité constituent la première étape pour les résoudre. Le mode Demander de GitHub Copilot offre un moyen interactif d’analyser le code, d’identifier les vulnérabilités et de planifier des stratégies de correction.

Qu’est-ce que le mode Demander ?

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 GitHub Copilot répond à l’aide du contexte que vous fournissez. Il fonctionne comme avoir un collègue compétent qui peut lire votre code et fournir des conseils axés sur la sécurité.

Le mode Demander est idéal pour :

  • Comprendre ce que fait le code spécifique.
  • Identification des vulnérabilités de sécurité potentielles.
  • Exploration d’autres approches d’implémentation.
  • Obtention d’explications sur les concepts de sécurité.
  • Planification des stratégies de correction avant d’apporter des modifications.

Le mode Demander de GitHub Copilot ne modifie pas vos fichiers de code. Il fournit des analyses, des explications et des suggestions que vous pouvez utiliser pour prendre des décisions éclairées sur la façon de procéder.

Analyser les problèmes de sécurité à l’aide du mode Demander

Vous pouvez utiliser le mode Demander de GitHub Copilot pour identifier et comprendre systématiquement les vulnérabilités de sécurité dans votre codebase. GitHub Copilot vous aide à comprendre la nature des problèmes de sécurité, leurs effets potentiels et les approches de correction appropriées.

Stratégies d’analyse des problèmes de sécurité

Voici des stratégies efficaces pour utiliser le mode Demander pour analyser les problèmes de sécurité :

  • Comprendre le code : Demandez à GitHub Copilot d’expliquer ce que fait le code vulnérable et comment il traite les données.

  • Identifier les vulnérabilités : Analyse des problèmes de sécurité potentiels dans des sections de code spécifiques.

  • Évaluer l’impact : explorez les conséquences potentielles des vulnérabilités si elles sont exploitées.

  • Rechercher des cas de périphérie : identifiez les scénarios où le code peut se comporter de manière inattendue ou non sécurisée.

  • Évaluer les solutions : Demandez plusieurs approches pour résoudre le problème et comprendre leurs compromis.

  • Vérifier la compréhension : confirmez votre interprétation du problème de sécurité avant d’implémenter des correctifs.

  • Planifier systématiquement : développez un plan de correction pas à pas qui traite tous les aspects de la vulnérabilité.

Requêtes du mode Demander pour l’analyse de sécurité

Les invites effectives sont spécifiques, fournissent un contexte et se concentrent sur des insights actionnables.

Compréhension et analyse

Ces invites vous aident à comprendre ce que fait le code et à identifier ses implications en matière de sécurité.

  • « Expliquez ce que fait la fonction d’authentification sélectionnée et identifiez les problèmes de sécurité. »
  • « Analysez le code sélectionné pour les vulnérabilités d’injection SQL et expliquez comment ils pourraient être exploités. »
  • « Passez en revue l’implémentation de stockage de mot de passe sélectionnée et expliquez pourquoi elle est non sécurisée . »
  • « Quels sont les risques de sécurité dans le code de gestion des fichiers sélectionné ? »

Évaluation des vulnérabilités

Utilisez ces éléments déclencheurs pour identifier et évaluer la gravité des exploits potentiels et des problèmes de sécurité.

  • « Identifiez toutes les façons dont un attaquant pourrait exploiter la validation d’entrée sélectionnée. »
  • « Quelles informations sensibles peuvent être exposées par le biais de la gestion des erreurs sélectionnée ? »
  • « Analyser l’implémentation de chiffrement sélectionnée pour connaître les faiblesses . »
  • « Le code sélectionné suit-il les 10 principales recommandations en matière de sécurité OWASP ? Expliquer les violations.

Exploration de solutions

Ces instructions vous aident à évaluer différentes approches pour aborder les problèmes de sécurité et comprendre leurs compromis.

  • « Quelles sont les approches recommandées pour résoudre l’injection SQL dans la requête sélectionnée ? »
  • « Montrez-moi des alternatives sécurisées à l’implémentation de hachage de mot de passe sélectionnée. »
  • « Comment dois-je implémenter la validation de chemin pour empêcher la traversée du répertoire ? »
  • « Quel est le moyen le plus sécurisé de journaliser les erreurs sans exposer d’informations sensibles ? »

Analyse des conséquences

Utilisez ces indications pour comprendre les conséquences potentielles des failles de sécurité si elles sont exploitées.

  • « Quel est l’impact potentiel si la vulnérabilité d’injection SQL sélectionnée est exploitée ? »
  • « Expliquer les conséquences du stockage des mots de passe en texte clair ».
  • « Quelles données peuvent être compromises par le biais de la vulnérabilité de traversée de chemin sélectionnée ? »
  • « Dans quelle mesure le problème de journalisation sélectionné est-il grave par rapport à d'autres vulnérabilités dans la base de code ? »

Vérification des meilleures pratiques

Ces indications vous aident à garantir que votre code soit conforme aux normes du secteur et aux directives de sécurité.

  • « Le code sélectionné suit-il les instructions de sécurité de Microsoft pour .NET ? »
  • « L’implémentation de chiffrement sélectionnée utilise-t-elle les meilleures pratiques actuelles ? »
  • « Quelles améliorations de sécurité recommanderiez-vous pour le flux d’authentification sélectionné ? »
  • « Comment le code sélectionné est-il comparé aux normes du secteur pour le stockage de mot de passe sécurisé ? »

Établir un contexte de conversation efficace

La qualité d’analyse de GitHub Copilot dépend du contexte que vous fournissez. Suivez ces pratiques pour vous assurer que Copilot dispose d’informations suffisantes :

Ajouter des fichiers et du code pertinents

Fournir un contexte complet aide GitHub Copilot à fournir une analyse de sécurité plus précise et pertinente.

  • Utilisez le bouton Ajouter un contexte dans l’interface de conversation pour inclure des fichiers pertinents.
  • Sélectionnez des sections de code spécifiques avant de poser des questions pour concentrer l’analyse.
  • Incluez les fichiers associés qui fournissent un contexte (tels que des fichiers de configuration, des classes d’assistance ou des modèles de données).
  • Référencez plusieurs fichiers lorsque le problème s’étend sur eux.

Fournir des descriptions claires des problèmes

Le contexte clair aide GitHub Copilot à comprendre votre situation spécifique et à fournir des conseils de sécurité plus ciblés.

  • Décrivez ce que vous essayez d’accomplir.
  • Mentionnez les contraintes ou exigences (considérations relatives aux performances, besoins en matière de conformité).
  • Spécifiez explicitement vos problèmes de sécurité.
  • Notez les normes de codage ou recommandations pertinentes que votre équipe suit.

Flux de travail en mode requête pour l’analyse de la sécurité

Suivez ce flux de travail systématique pour analyser les problèmes de sécurité à l’aide du mode Ask :

Étape 1 : Ouvrir et sélectionner le code problématique

La première étape de l’analyse d’un problème de sécurité consiste à fournir à GitHub Copilot le code spécifique que vous souhaitez analyser.

Accédez au fichier contenant le problème de sécurité et sélectionnez la section de code appropriée. La sélection d’un fichier ou d’une section de code concentre l’analyse de GitHub Copilot sur la zone de préoccupation spécifique.

Étape 2 : Demander une explication

Commencez votre analyse en comprenant ce que fait le code et en confirmant qu’une vulnérabilité existe.

Commencez par une question de compréhension générale pour confirmer la vulnérabilité et comprendre comment elle pourrait être exploitée.

Exemple d’invite : « Expliquer ce que fait cette fonction de recherche et identifier les problèmes de sécurité ».

GitHub Copilot décrit le fonctionnement du code, identifiez le type de vulnérabilité et expliquez les méthodes d’exploitation potentielles.

Étape 3 : Poser des questions ciblées sur la vulnérabilité

Une fois que vous avez compris la vulnérabilité de base, approfondissez la compréhension de tous les vecteurs d’attaque possibles.

Explorez plus en détail les aspects spécifiques du problème de sécurité.

Exemple d’invite : « Quelles sont les différentes façons dont un attaquant pourrait exploiter cette vulnérabilité d’injection SQL ? »

Les questions ciblées vous aident à comprendre l’étendue complète du risque, notamment le contournement de l’authentification, l’extraction de données, la modification des données et les possibilités de déni de service.

Étape 4 : Explorer les options de correction

La compréhension de plusieurs approches de solution vous aide à choisir le correctif le plus approprié pour votre contexte spécifique.

Demandez des stratégies de solution avec des avantages et des inconvénients.

Exemple d’invite : « Quelles sont les approches recommandées pour résoudre cette vulnérabilité d’injection SQL ? Incluez les avantages et inconvénients de chaque approche.

GitHub Copilot peut suggérer plusieurs solutions telles que des requêtes paramétrables, des infrastructures ORM (Mappage des Object-Relational) ou des procédures stockées, ce qui vous aide à choisir le correctif le plus approprié pour votre situation.

Étape 5 : Vérifier les cas de périphérie et les exigences

Avant d’implémenter un correctif, vérifiez que vous comprenez tous les scénarios et les cas spéciaux qui doivent être gérés.

Assurez-vous que la solution fonctionne dans tous les scénarios en vous renseignant sur les considérations spéciales.

Exemple d’invite : « Existe-t-il des cas de périphérie ou des considérations spéciales que je dois gérer lors de l’implémentation de requêtes paramétrables pour cette fonction de recherche ? »

GitHub Copilot peut identifier les exigences de validation d’entrée, les considérations relatives aux performances et les problèmes de logique métier que vous devez résoudre.

Étape 6 : Planifier l’implémentation

La dernière étape avant le codage consiste à créer un plan complet qui guide le processus d’implémentation.

Demandez un plan d’implémentation complet qui inclut les exigences de test.

Exemple d’invite : « En fonction de notre discussion, créez un plan pas à pas pour résoudre cette vulnérabilité d’injection SQL, y compris les exigences de test ».

GitHub Copilot peut fournir un plan structuré couvrant la préparation, l’implémentation, le test (unité, sécurité et régression), le déploiement et les phases de documentation.

Approche d’analyse itérative

L’analyse de la sécurité nécessite souvent plusieurs séries de questions. Les étapes suivantes sont recommandées pour une approche itérative :

  • Posez des questions de suivi pour obtenir des précisions.
  • Exemples de code de requête pour les solutions suggérées.
  • Explorez d’autres approches.
  • Assurez-vous d’une compréhension complète du problème et du processus de résolution.

Considérez la série d’invites suivante dans une approche d’analyse itérative. Ce scénario suppose que vous avez ouvert un fichier contenant une fonction de recherche vulnérable à l’injection SQL et sélectionné le code :

  1. Établissez une compréhension générale du code et du problème : « Expliquer ce que fait la fonction de recherche sélectionnée et identifier les problèmes de sécurité ».

  2. Explorez les risques spécifiques : « Quelles sont les différentes façons dont un attaquant pourrait exploiter cette vulnérabilité d’injection SQL ? »

  3. Explorez les options de solution : « Quelles sont les approches recommandées pour résoudre cette vulnérabilité d’injection SQL ? Incluez les avantages et inconvénients de chaque approche.

  4. Améliorez votre compréhension de l’approche recommandée : « Pourquoi une requête paramétrable est-elle préférable à l’échappement de l’entrée avec une fonction d’assainissement ? »

  5. Assurez-vous d’une compréhension complète et complète : « Existe-t-il des cas de périphérie ou des considérations spéciales que je dois gérer lors de l’implémentation de requêtes paramétrables pour cette fonction de recherche ? »

  6. Planifiez l’implémentation : « En fonction de notre discussion, créez un plan pas à pas pour résoudre cette vulnérabilité d’injection SQL, y compris les exigences de test ».

Cette approche itérative génère une compréhension complète et garantit que vous disposez d’une stratégie de correction complète avant de modifier le code.

Gestion des réponses de GitHub Copilot

Bien que GitHub Copilot soit bien informé, traitez ses réponses comme des conseils éclairés plutôt que la vérité absolue.

Vérifier les décisions de sécurité critiques

Validez toujours les recommandations de sécurité sur les sources faisant autorité et vos exigences spécifiques.

  • Comparez les conseils donnés par GitHub Copilot avec la documentation officielle.
  • Consultez les instructions OWASP pour connaître les meilleures pratiques de sécurité.
  • Passez en revue les recommandations de sécurité de Microsoft pour .NET.
  • Tenez compte de vos exigences de conformité spécifiques.

Reconnaître les limitations de GitHub Copilot

Comprendre ce que GitHub Copilot peut et ne peut pas faire pour vous aider à l’utiliser efficacement tout en conservant une supervision appropriée.

GitHub Copilot est un outil puissant, mais il a des limitations dont vous avez besoin pour être conscient.

Tenez compte des limitations suivantes :

  • GitHub Copilot analyse le code statique, mais n’a pas de contexte d’exécution.
  • GitHub Copilot peut ne pas connaître votre infrastructure ou architecture spécifique.
  • GitHub Copilot ne peut pas accéder aux stratégies de sécurité propriétaires.
  • GitHub Copilot peut manquer des vulnérabilités subtiles qui nécessitent une expertise de domaine.

Fournir un contexte de clarification

La qualité des réponses de GitHub Copilot s’améliore considérablement lorsque vous fournissez plus de contexte et de détails.

La précision de GitHub Copilot s’améliore avec un meilleur contexte. Si les réponses semblent hors cible :

  • Ajoutez un contexte supplémentaire à votre environnement.
  • Incluez les fichiers de code associés dans la conversation.
  • Spécifiez explicitement des contraintes ou des exigences.
  • Reformulez votre question avec plus de détails.

Principaux avantages du mode Demander pour l’analyse de la sécurité

L’utilisation du mode Demander pour l’analyse de sécurité offre plusieurs avantages :

  • Évaluation rapide : obtenez une analyse immédiate sans rechercher de documentation.
  • Perspective complète : GitHub Copilot considère les modèles provenant de millions de codebases.
  • Éducation : Découvrez les principes de sécurité par le biais d’explications.
  • Aide à la planification : développez des stratégies d’implémentation avant d’écrire du code.
  • Exploration sans risque : examinez plusieurs approches sans modifier de code.

Résumé

Le mode Demander de GitHub Copilot est un outil puissant permettant d’analyser systématiquement les problèmes de sécurité. Posez des questions ciblées et fournissez un contexte approprié pour obtenir les meilleurs résultats. Suivez un flux de travail itératif pour bien comprendre les vulnérabilités et explorer les options de correction. Utilisez le mode Demander pour développer des plans d’implémentation complets avant d’écrire du code. Cette approche vous aide à résoudre les problèmes de sécurité en toute confiance tout en apprenant les principes de sécurité qui améliorent votre code futur.