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
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/github-copilot/purchase?ref_product=copilot&ref_type=trial&ref_style=button&ref_plan=enterprise" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline"> <span>Inscrivez-vous à Copilot</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 vous aider
Copilot intègre les 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 les 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 capacités d’analyse de code de l’GitHub afin de garantir la sécurité de 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é](#analyze-your-code-for-security-vulnerabilities) -
[Utiliser la Copilot correction automatique pour les alertes d’code scanning](#use-copilot-autofix-for-code-scanning-alerts) -
[Bonnes pratiques pour les développeurs](#best-practices-for-developers) -
[Ressources pour les développeurs](#resources-for-developers)
Analyser votre code pour y déceler des failles de sécurité
En fonction de la taille de votre base de code, Copilot peut ne pas être en mesure d’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 le Tchat 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 utiliser des fichiers de prompt et des instructions personnalisées pour guider les réponses de Copilot. -
Tchat 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 la Copilot correction automatique pour les alertes d’code scanning
Copilot correction automatique fait partie de GitHub Code Security, qui suggère des correctifs potentiels pour les alertes d’code scanning. Il est disponible dans les dépôts publics et les dépôts sous 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 sous la forme d’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 affiche les modifications du 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 apportées à la branche principale et code scanning vérifie le correctif, l’alerte se ferme automatiquement.
Bonnes pratiques pour les développeurs
Les développeurs doivent :
-
**Utilisez Tchat 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. -
**Utilisez la Copilot correction automatique pour les alertes d’code scanning**. Lorsque des alertes s’affichent, utilisez Copilot correction automatique comme première étape pour les traiter rapidement. -
**Fournissez des invites claires et spécifiques à Tchat Copilot**. Plus votre demande est détaillée, mieux Copilot peut analyser le code et suggérer des correctifs pertinents. Par exemple, incluez le langage de programmation et des domaines de préoccupation spécifiques. -
**Combinez 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 automatiquement les suggestions de sécurité de Copilot**. Passez toujours en revue et testez les modifications de code suggérées pour vous assurer qu’elles sont appropriées et efficaces. -
**Reposez 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. -
**Ignorez les alertes code scanning**. Adressez rapidement toutes les alertes, même si elles semblent mineures, pour empêcher l’accumulation de dettes de sécurité. -
**Utilisez 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 intercepte chaque vulnérabilité**. La sécurité est un processus continu, et la vigilance est toujours nécessaire. -
**Utilisez Copilot pour contourner les stratégies de sécurité**. Respectez les protocoles de sécurité de votre organisation. Utilisez Copilot en tant qu’outil pour les améliorer, sans les contourner.
Ressources pour les développeurs
-
[Chat de Copilot sur GitHub](/copilot/using-github-copilot/copilot-chat/asking-github-copilot-questions-in-github) -
[AUTOTITLE](/copilot/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code) -
[GitHub Skills : prise en main de GitHub Copilot](https://github.com/skills/getting-started-with-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.