Le guide est inspiré par Playbook pour la réussite des systèmes d'ingénierie (ESSP) de GitHub, qui recommande des stratégies et des indicateurs pour améliorer les systèmes d'ingénierie.
Si vous démarrez un déploiement de Copilot, nous vous recommandons de définir vos objectifs, de planifier votre déploiement en conséquence et de communiquer clairement les objectifs au personnel. Consultez Atteindre les objectifs d’ingénierie de votre entreprise avec GitHub Copilot.
1. Identifier les obstacles au succès
La première étape recommandée par l’ESSP consiste à développer une compréhension claire des obstacles empêchant les améliorations de votre entreprise. En comprenant votre situation actuelle, vos objectifs futurs et les obstacles qui vous empêchent de progresser, vous pouvez garantir que les changements apportés seront ciblés et efficaces.
Les équipes de développement se concentrent souvent sur la vitesse et les fonctionnalités pour fournir de nouvelles fonctionnalités et maintenir l’exécution fluide des applications. Au fil du temps, de petits problèmes peuvent s’accumuler, tels que :
- Faiblesses de sécurité connues qui restent non corrigés
- Dépendance vis-à-vis des composants logiciels plus anciens avec des défauts potentiels
- Retards liés à la résolution des problèmes détectés
Cela crée une dette de sécurité, un backlog important de problèmes.
La dette de sécurité comporte des risques réels. Plus le problème reste non traité, plus il devient grand et coûteux. Une dette de sécurité importante laisse les systèmes vulnérables aux attaques, expose les données sensibles et érode la confiance des clients.
Le défi est d’équilibrer le développement rapide avec la maintenance d’un environnement logiciel sécurisé et stable.
2. Évaluez vos options
L’étape suivante consiste à évaluer et à accepter des solutions pour résoudre les obstacles que vous avez identifiés à l’étape 1. Dans ce guide, nous allons nous concentrer sur l’impact que GitHub Copilot peut avoir sur l’objectif que vous avez identifié. Les déploiements réussis d’un nouvel outil nécessitent également des modifications apportées à la culture et aux processus.
Exécuter des essais de nouveaux outils et processus avec des groupes pilotes pour recueillir des commentaires et mesurer la réussite. Pour connaître les ressources et les métriques d’apprentissage à utiliser pendant les essais, consultez 3. Implémentez les modifications et les métriques pour surveiller les sections.
<a href="https://github.com/enterprise/contact?ref_product=copilot&ref_type=engagement&ref_style=button" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline">
<span>Contacter les ventes</span><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-link-external" aria-label="link external icon" role="img"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a>
Comment Copilot peut aider
Copilot intègre des considérations de sécurité directement dans le cycle de vie du développement. Cela permet aux développeurs d’identifier et de résoudre de manière proactive les vulnérabilités potentielles tout en conservant les projets up-to-date.
Copilot réduit les vulnérabilités de sécurité tout au long du cycle de vie du développement logiciel.
Pendant le développement
Copilot passe en revue le code lorsque vous l’écrivez. Il utilise sa compréhension des failles de sécurité courantes pour marquer les zones susceptibles d’être vulnérables à l’exploitation. Cette analyse en temps réel présente des vulnérabilités masquées susceptibles d’être manquées pendant les révisions de sécurité initiales ou de développement standard.
Lorsque Copilot identifie des problèmes, il suggère des modifications de code pour corriger les vulnérabilités. Cela vous permet de résoudre les faiblesses précoces et d’empêcher l’accumulation de la dette de sécurité.
Maintenance continue
Copilot s’intègre aux GitHubfonctionnalités d’analyse du code pour sécuriser votre base de code existante. Lorsque l’analyse du code identifie une alerte de sécurité, Copilot correction automatique l’analyse et fournit des recommandations ciblées pour la résoudre.
Ces correctifs suggérés réduisent le temps que vous passez à rechercher des vulnérabilités et à déterminer comment les résoudre. Cela vous permet de résoudre plus efficacement les alertes de sécurité et d’empêcher la dette de sécurité en cours.
Considérations culturelles
En plus de votre déploiement de GitHub Copilot, résolvez tous les facteurs sociaux ou culturels qui pourraient vous empêcher d’atteindre vos objectifs.
Les exemples suivants sont tirés de la section « Anti-modèles » de l’ESSP.
- Les équipes peuvent ignorer ou différer la dette de sécurité. Cela permet aux systèmes inefficaces et vulnérables de persister. Cela pourrait être dû à une attention axée sur les échéances ou un manque d’éducation sur l’impact à long terme de la dette de sécurité.
- Les équipes peuvent créer des solutions trop complexes pour des problèmes simples. Cela rend le code plus difficile à gérer et à détecter les problèmes de sécurité. Cela peut être dû à un désir de pérennité non justifié ou à une pression pour ajouter de la valeur à travers la complexité.
3. Mettre en œuvre des changements
Lorsque vous avez identifié la bonne approche pour surmonter vos obstacles, mettez à l’échelle les solutions que vous avez identifiées. Pour un déploiement réussi d’un nouvel outil ou d’un processus, attribuez la propriété à chaque partie du déploiement, communiquez de manière transparente sur vos objectifs, fournissez une formation efficace et mesurez vos résultats.
Cette section fournit des exemples de scénarios, des bonnes pratiques et des ressources pour les développeurs. Utilisez cette section pour planifier des sessions de communication et de formation pour aider les employés à utiliser Copilot d’une manière qui s’aligne sur votre objectif.
- Analyser votre code pour y déceler des failles de sécurité
- Utiliser Copilot correction automatique pour code scanning les alertes
- Bonnes pratiques pour les développeurs
- Ressources pour les développeurs
Analyser votre code pour y déceler des failles de sécurité
Selon la taille de votre codebase, Copilot il se peut que vous ne puissiez pas analyser l’intégralité de votre projet pendant l’écriture de code. Cela est dû à des contraintes de contexte. Toutefois, vous pouvez lui demander d’analyser des fichiers spécifiques pour des pratiques de code non sécurisées.
-
Ouvrez les fichiers à analyser dans Visual Studio Code.
-
Dans Discussion avec Copilot, demandez :
Analyze this code for potential security vulnerabilities and suggest fixesUtilisez la variable de conversation pour inclure spécifiquement le
#filecontenu d’un fichier dans l’invite. Vous pouvez également recourir à des fichiers de prompt ainsi qu’à des instructions personnalisées pour orienter les réponses de Copilot. -
Discussion avec Copilot analyse le code, identifie les vulnérabilités de sécurité et suggère des correctifs. -
Passez en revue les modifications suggérées et appliquez-les selon les besoins.
Autres exemples de suggestions :
Are there any security vulnerabilities in my code? If so, can you explain them and suggest fixes?Does this code follow secure code best practices? If not, what specific improvements can I make?What are the potential security risks in this code if it were deployed to production? How can I mitigate them?
Utiliser Copilot correction automatique pour les alertes code scanning
Copilot correction automatique fait partie de GitHub Code Security ce qui suggère des correctifs potentiels aux code scanning alertes. Il est disponible dans les référentiels publics et les référentiels avec une licence pour GitHub Code Security.
Lorsque vous exécutez une analyse de code sur un référentiel, des problèmes potentiels sont déclenchés en tant qu’alertes code scanning . Résolvez les alertes en procédant comme suit :
- Ouvrez une alerte sur GitHub.
- Cliquez sur Générer un correctif. Cela s’affiche lorsque Copilot peut résoudre l’alerte.
-
Copilot correction automatique génère un correctif potentiel et vous montre les modifications de code dans l’alerte. Vous pouvez valider cette modification de code sur une nouvelle branche ou une branche existante. - Testez le code. Ouvrez une pull request pour déplacer les modifications vers la branche principale.
- Après avoir déplacé les modifications vers la branche principale et code scanning vérifié le correctif, l’alerte se ferme automatiquement.
Bonnes pratiques pour les développeurs
Les développeurs doivent :
- Utilisez Discussion avec Copilot régulièrement pour analyser les extraits de code pour les vulnérabilités. Prenez l’habitude de vérifier le code des problèmes de sécurité avant de valider les modifications.
- Utiliser Copilot correction automatique pour code scanning les alertes. Lorsque des alertes s’affichent, utilisez-les Copilot correction automatique en tant que première étape pour les traiter rapidement.
- Fournissez des invites claires et spécifiques à Discussion avec Copilot. Plus votre demande est détaillée, mieux il est possible Copilot d’analyser le code et de suggérer des correctifs pertinents. Par exemple, incluez le langage de programmation et des domaines de préoccupation spécifiques.
- Combinez-les Copilot avec les outils de sécurité existants. Utilisez Copilot comme couche supplémentaire d’analyse de sécurité, et non comme remplacement des scanneurs et pratiques de sécurité dédiés.
Les développeurs ne doivent pas :
- Acceptez Copilotautomatiquement les suggestions de sécurité. Passez toujours en revue et testez les modifications de code suggérées pour vous assurer qu’elles sont appropriées et efficaces.
- Comptez uniquement sur Copilot pour des audits de sécurité complets. Copilot est un outil utile, mais il ne doit pas remplacer les révisions de sécurité approfondies et les tests d’intrusion.
- Ignorer code scanning les alertes. Adressez rapidement toutes les alertes, même si elles semblent mineures, pour empêcher l’accumulation de dettes de sécurité.
- Utilisez-la Copilot comme excuse pour éviter d’apprendre des pratiques de codage sécurisées. Continuez à vous former et à votre équipe sur les meilleures pratiques en matière de sécurité.
- Supposons que Copilot toutes les vulnérabilités sont interceptes. La sécurité est un processus continu, et la vigilance est toujours nécessaire.
- Permet Copilot de contourner les stratégies de sécurité. Respectez les protocoles de sécurité de votre organisation. Utilisez-les Copilot en tant qu’outil pour les améliorer, sans les contourner.
Ressources pour les développeurs
- Copilot Chat dans GitHub
- Recherche de vulnérabilités existantes dans le code
- GitHub Skills - Prise en main GitHub Copilot
Mesures à surveiller
Pour évaluer les essais de nouveaux outils et vous assurer que vos déploiements complets offrent des améliorations cohérentes, surveillez les résultats et apportez des ajustements si nécessaire. Nous vous recommandons de prendre en compte les zones clés de la qualité, de la vélocité et du bonheur des développeurs, et la façon dont ces zones se réunissent pour contribuer aux résultats métier.
Voici quelques métriques permettant d’évaluer l'impact de Copilot sur cet objectif spécifique.
- Ratio des dettes de sécurité. Utilisez la vue d’ensemble de la sécurité pour voir si le nombre d’alertes tombe au fil du temps.
- Temps de correction des problèmes de sécurité. Utilisez la vue d’ensemble de la sécurité pour voir si le temps de correction des problèmes de sécurité tombe au fil du temps.