Skip to main content

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

Como as Copilot cloud agentproteções de segurança internas reduzem os riscos conhecidos?

Copilot cloud agent é 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 Copilot cloud agent 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, Copilot cloud agent verifica o código gerado para problemas de segurança e obtém uma segunda opinião sobre seu código com Copilot code review. Ele tenta resolver problemas identificados antes de concluir a pull request. Isso melhora a qualidade do código e reduz a probabilidade do código gerado pela Copilot cloud agent introdução de problemas como segredos codificados, dependências inseguras e outras vulnerabilidades. Copilot cloud agentA 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 Copilot cloud agent podem ser revisados no log de sessão. Consulte Gerenciar sessões de agente.

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

Copilot cloud agent 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 Copilot cloud agent para funcionar. Comentários de usuários sem acesso para gravação nunca são apresentados ao agente.
  • Limita a ramificação para o qual o agente pode fazer push. Copilot cloud agent só pode fazer push para uma única ramificação. Quando o agente é disparado ao mencionar @copilot em uma solicitação de pull existente, Copilot tem acesso de gravação à ramificação da solicitação de pull. Em outros casos, uma nova copilot/ ramificação é criada para Copilote o agente só pode realizar push para essa ramificação. O agente também está sujeito a quaisquer proteções de ramificações e verificações necessárias para o repositório de trabalho.
  • Limita as credenciais do agente. Copilot cloud agent 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 Copilot cloud agent devem ser revisadas e mescladas por um humano. Copilot cloud agent 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 Copilot cloud agent 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 Examinar a saída de Copilot.
  • Impede que o usuário que pediu Copilot cloud agent 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 Regras disponíveis para conjuntos de regras.
  • Requer uma aprovação adicional quando uma solicitação de pull não é atribuída a uma pessoa. Quando Copilot cloud agent abre um pull request com a identidade do próprio aplicativo, é necessária uma aprovação adicional para que ele possa ser mesclado, desde que o repositório já exija pelo menos uma aprovação. Esse recurso é habilitado por padrão em conjuntos de regras, onde os administradores podem desativá-lo, e se aplica sempre às regras de proteção de ramificação. Consulte Regras disponíveis para conjuntos de regras.

Copilot cloud agent tem acesso a informações confidenciais

Copilot cloud agent 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 Copilot cloud agento acesso à Internet. Consulte Personalizando ou desabilitando o firewall para GitHub Copilot.

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

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

Para atenuar esse risco, GitHubfiltra caracteres ocultos antes de passar a entrada do usuário para Copilot cloud agent: 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 Copilot cloud agent.

Os administradores podem perder de vista o trabalho dos agentes

Para atenuar esse risco, Copilot cloud agent foi projetado para ser auditável e rastreável.

  •           As confirmações de Copilot cloud agentsão feitas por Copilot, com o desenvolvedor que atribuiu a tarefa ou solicitou a alteração na solicitação de pull marcado como coautor. Isso facilita a identificação do código gerado por Copilot cloud agent e quem iniciou a tarefa.
    
  • Os commits de Copilot cloud agent são assinados, então eles aparecem como "Verificado" em GitHub. Isso fornece confiança de que os commits foram feitos por Copilot cloud agent e não foram alterados.
  • Os logs de sessão e os eventos de log de auditoria estão disponíveis para os administradores.
  • A mensagem de commit de cada commit criado pelo agente inclui um link para os registros da sessão do agente, para revisão de código e auditoria. Consulte Gerenciar sessões de agente.

Automações são executadas sem que uma pessoa inicie cada tarefa

Automations executar Copilot cloud agent automaticamente, em um agendamento ou em resposta a eventos, sem que uma pessoa inicie cada tarefa. Consulte Sobre automações de Copilot. Isso apresenta alguns riscos adicionais, o que GitHub atenua da seguinte maneira.

  • O trabalho é atribuído à pessoa que criou a automação. As solicitações de pull abertas e o código enviado por push automation são atribuídos ao usuário que criou o automation. Assim como quando esse usuário cria um pull request por conta própria, ele não pode aprová-lo, o que preserva os controles esperados de "aprovações necessárias".
  • Você controla quais ferramentas uma automação pode usar. Quando um automation é ativado por um evento, a entrada de usuários não confiáveis pode se tornar parte do prompt. Para limitar o impacto da injeção de prompt, você escolhe exatamente quais ferramentas um automation pode usar, para que ela só possa executar as ações necessárias pela tarefa.
  • Eventos de usuários não confiáveis são ignorados por padrão. Automations ignora eventos disparados por usuários sem acesso de gravação ao repositório por padrão, com uma configuração para aceitar.
  • Os fluxos de trabalho ainda exigem aprovação humana. Um problema ou uma solicitação de pull aberta por um automation pode disparar outro automation. Assim como ocorre com todo o trabalho Copilot cloud agent, os fluxos de trabalho de GitHub Actions não serão executados em uma solicitação de pull até que um usuário com acesso de escrita os aprove, o que impede que sejam executados automaticamente como parte dessa cadeia.