Skip to main content

Riscos e mitigações para o agente de nuvem do GitHub Copilot

Como as Agente de nuvem Copilotproteções de segurança internas reduzem os riscos conhecidos?

          Agente de nuvem Copilot é um agente autônomo que tem acesso ao seu código e pode enviar alterações por push para o repositório. Isso implica em certos riscos.

Sempre que possível, GitHub aplicou mitigações apropriadas. Isso fornece Agente de nuvem Copilot uma base forte de proteções de segurança internas que você pode complementar seguindo as diretrizes de práticas recomendadas.

Código não avaliado pode introduzir vulnerabilidades

          Por padrão, Agente de nuvem Copilot verifica se o código que gera apresenta problemas de segurança e obtém uma segunda opinião sobre o código com Revisão de código com Copilot. Ele tenta resolver problemas identificados antes de concluir a pull request. Isso melhora a qualidade do código e reduz a probabilidade de que o código gerado por Agente de nuvem Copilot provoque problemas como segredos embutidos, dependências inseguras e outras vulnerabilidades.
          Agente de nuvem CopilotA validação de segurança **não requer** uma GitHub Secret Protection, GitHub Code Security, or GitHub Advanced Security licença.

* ** CodeQL ** é usado para identificar problemas de segurança de código.

  • As dependências recém-introduzidas são verificadas em relação aos GitHub Advisory Database avisos de malware e a quaisquer vulnerabilidades altas ou críticas avaliadas pelo CVSS.
  •         **
            Secret scanning
            ** é usado para detectar informações confidenciais, como chaves de API, tokens e outros segredos.
    
  • Detalhes sobre a análise realizada e as ações tomadas por Agente de nuvem Copilot podem ser revisados no log de sessão. Consulte Acompanhamento das sessões do GitHub Copilot.

Opcionalmente, você pode desabilitar uma ou mais ferramentas de validação de segurança e qualidade de código usadas por Agente de nuvem Copilot. Consulte Definindo configurações para o agente de nuvem do GitHub Copilot.

          Agente de nuvem Copilot pode enviar alterações de código por push para o repositório

Para atenuar esse risco, GitHub:

  •         **Define quem pode ativar o agente.** Somente usuários com acesso de escrita ao repositório podem acionar Agente de nuvem Copilot para funcionar. Comentários de usuários sem acesso para gravação nunca são apresentados ao agente.
    
  •         **Limita o branch para o qual o agente pode fazer push.** 
            Agente de nuvem Copilot só pode fazer push para um único branch. Quando o agente é disparado ao mencionar `@copilot` em um pull request existente, Copilot tem acesso de gravação ao branch do pull request. Em outros casos, um novo `copilot/` branch é criado para Copilot, e o agente só pode realizar push para esse branch. O agente também está sujeito a quaisquer proteções de branch e verificações necessárias para o repositório de trabalho.
    
  •         **Limita as credenciais do agente.** 
            Agente de nuvem Copilot só pode executar operações de push simples. Ele não pode executar `git push` nem outros comandos Git diretamente.
    
  •         **Requer revisão humana antes da mesclagem.** As solicitações de pull de rascunho criadas por Agente de nuvem Copilot devem ser revisadas e mescladas por um humano. 
            Agente de nuvem Copilot não pode marcar suas solicitações de pull como "Pronto para revisão" e não pode aprovar ou mesclar uma solicitação de pull.
    
  •         **Restringe as execuções de fluxo de GitHub Actions trabalho.** Por padrão, os fluxos de trabalho não são disparados até que o código do Agente de nuvem Copilot seja revisado e um usuário com acesso de gravação ao repositório clique em **Aprovar e executar fluxos de trabalho**. Opcionalmente, você pode configurar Copilot para permitir que os fluxos de trabalho sejam executados automaticamente. Consulte [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs#managing-github-actions-workflow-runs).
    
  •         **Impede que o usuário que pediu Agente de nuvem Copilot para criar uma solicitação de pull aprove-a.** Isso mantém os controles esperados na regra "Aprovações necessárias" e na proteção de ramificações. Consulte [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets).
    

          Agente de nuvem Copilot tem acesso a informações confidenciais

          Agente de nuvem Copilot tem acesso ao código e a outras informações confidenciais e pode vazá-lo, acidentalmente ou devido à entrada mal-intencionada do usuário.

Para atenuar esse risco, GitHubrestringe Agente de nuvem Copiloto acesso à Internet. Consulte Personalizando ou desabilitando o firewall para o agente de nuvem do GitHub Copilot.

Os comandos de IA podem ser vulneráveis à injeção

Os usuários podem incluir mensagens ocultas em problemas atribuídos Agente de nuvem Copilot ou comentários deixados Agente de nuvem Copilot como uma forma de injeção de prompt.

Para atenuar esse risco, GitHubfiltra caracteres ocultos antes de passar a entrada do usuário para Agente de nuvem Copilot: Por exemplo, o texto inserido como um comentário HTML em um problema ou comentário de solicitação de pull não é passado para Agente de nuvem Copilot.

Os administradores podem perder de vista o trabalho dos agentes

Para atenuar esse risco, Agente de nuvem Copilot foi projetado para ser auditável e rastreável.

  • Os commits de Agente de nuvem Copilot são feitos por Copilot, com o desenvolvedor que atribuiu a tarefa ou solicitou a alteração no pull request marcado como co-autor. Isso facilita a identificação do código gerado por Agente de nuvem Copilot e quem iniciou a tarefa.
  • Os logs de sessão e os eventos de log de auditoria estão disponíveis para os administradores.
  • A mensagem de confirmação para cada confirmação criada pelo agente inclui um link para os logs de sessão do agente, para revisão e auditoria de código. Consulte Acompanhamento das sessões do GitHub Copilot.
  • Os commits de Agente de nuvem Copilot são assinados, então eles aparecem como "Verificado" em GitHub. Isso fornece confiança de que os commits foram feitos por Agente de nuvem Copilot e não foram alterados.