Sécurité, risques et limitations de l’agent de codage Copilot

Effectué

L’agent de codage Copilot de GitHub est conçu depuis les bases, avec la sécurité et la gouvernance intégrées dès la conception. Bien qu’il déverrouille de nouvelles façons de déléguer le travail à un agent autonome, il opère à l’intérieur des garde-fous existants de votre organisation et ajoute ses propres protections. Cette unité explique comment l’agent applique vos stratégies de sécurité, met en évidence les risques et les atténuations dont vous devez être conscient et définit les attentes relatives à ses limitations actuelles.

À la fin de cette unité, vous pourrez :

  • Décrire le modèle de sécurité et les protections intégrées de l’agent de codage Copilot.
  • Identifiez les principaux risques associés à l’utilisation de l’agent et les mesures d'atténuation appliquées par GitHub.
  • Reconnaissez les limitations connues du flux de travail et de la compatibilité de l’agent pour planifier votre utilisation en conséquence.

Modèle de sécurité et protections intégrées

La sécurité est fondamentale pour l’agent de codage Copilot. Il respecte vos contrôles existants et applique ses propres garde-fous pour assurer la sécurité de vos flux de travail :

  • Sous réserve de gouvernance : les paramètres de l’organisation et de l’entreprise régissent la disponibilité ; toutes vos stratégies de sécurité continuent à s’appliquer à l’agent.
  • Environnement restreint : l’agent s’exécute à l’intérieur d’un bac à sable sur GitHub Actions avec accès Internet pare-feu et accès en lecture seule à votre référentiel.
  • Limites de branche : il peut uniquement créer et envoyer (push) aux branches à partir de copilot/, et toutes les protections de branche et les vérifications requises s’appliquent toujours.
  • Prise en compte des autorisations : l’agent répond uniquement aux utilisateurs disposant d’une autorisation d’écriture. Les commentaires d’autres utilisateurs sont ignorés.
  • Règles de collaborateur externe : les demandes de tirage brouillon de l’agent nécessitent l’approbation d’un utilisateur disposant d’une autorisation d’écriture avant l’exécution d’Actions. La personne qui a demandé la demande de tirage ne peut pas l’approuver.
  • Conformité et attribution - Toutes les validations sont coécrites avec le développeur qui a attribué la tâche ou demandé le PR, donc l'attribution est claire. Les règles « approbations requises » existantes restent intactes.

Risques et atténuations

Bien que l’agent de codage Copilot soit conçu avec une sécurité à l’esprit, il existe toujours des risques que vous devez planifier. GitHub applique des atténuations pour les réduire :

  • Risque : l’agent envoie (push) du code

    Atténuation: Seuls les utilisateurs disposant d’un accès en écriture peuvent déclencher le travail de l’agent. Les envois (push) sont limités à copilot/branches (et non main/master). Les informations d’identification de l’agent autorisent l’envoi (push) simple uniquement (pas direct git push). Les flux de travail GitHub Actions ne s’exécutent pas tant qu’un utilisateur d’autorisation d’écriture clique sur « Approuver et exécuter des flux de travail ». Le demandeur ne peut pas approuver la demande de tirage de l’agent, en conservant les approbations requises.

  • Risque : accès aux informations sensibles

    Atténuation : L’accès Internet de l’agent est restreint par le pare-feu par défaut ; vous pouvez personnaliser ou désactiver le pare-feu selon les politiques.

  • Risque : injection d’invite

    Atténuation: Les caractères masqués (tels que les commentaires HTML) sont filtrés avant de transmettre l’entrée utilisateur à l’agent. Cela réduit le risque d’instructions dangereuses masquées dans les commentaires ou les problèmes.

Ces contrôles vous donnent une base de référence sécurisée pour l’utilisation de l’agent, mais vous devez toujours examiner attentivement les résultats, comme vous le feriez pour du code écrit par un membre de l'équipe.

Limitations connues

Limitations du flux de travail

  • Ne peut apporter des modifications que dans le même référentiel que le problème ou la demande de tirage attribué.
  • L’étendue de contexte est limitée au référentiel affecté par défaut (peut être élargie via MCP).
  • Ouvre exactement une pull request par tâche.
  • Ne peut pas modifier une demande de tirage existante qu’il n’a pas créée (ajoutez-le en tant que réviseur si vous avez besoin de commentaires à la place en tirant parti de la révision du code GitHub Copilot).

Limitations de compatibilité

  • Ne signe pas les validations. Si vous avez besoin de validations signées, vous devez réécrire l’historique des validations avant de fusionner.
  • Nécessite des exécuteurs Ubuntu x64 hébergés par GitHub. Les exécuteurs auto-hébergés ne sont pas pris en charge.
  • Non disponible pour les référentiels personnels appartenant à des comptes d’utilisateur gérés (exécuteurs indisponibles).
  • Ne respecte pas les exclusions de contenu ; l’agent peut voir et mettre à jour les fichiers exclus.
  • La stratégie « Suggestions correspondant au code public » n’est pas appliquée par l’agent ; les références peuvent ne pas être fournies.
  • Fonctionne uniquement avec les dépôts hébergés par GitHub.
  • Vous ne pouvez pas modifier le modèle IA utilisé par l’agent ; il est sélectionné par GitHub.

Avec des garde-fous et des limites claires, vous êtes prêt à commencer à déléguer le travail, à suivre la progression et à itérer sur les résultats à l’aide de votre flux de travail de demande de tirage standard.