Copilot cloud agent es un agente autónomo que tiene acceso al código y puede insertar cambios en el repositorio. Esto conlleva ciertos riesgos.
Siempre que sea posible, GitHub ha aplicado las mitigaciones adecuadas. Esto proporciona Copilot cloud agent una base sólida de protecciones de seguridad integradas que puede complementar siguiendo las instrucciones de procedimientos recomendados.
El código no validado puede introducir vulnerabilidades
De forma predeterminada, Copilot cloud agent comprueba el código que genera para problemas de seguridad y obtiene una segunda opinión sobre su código con Copilot code review. Intenta resolver los problemas identificados antes de completar la solicitud de incorporación de cambios. Esto mejora la calidad del código y reduce la probabilidad del código generado al Copilot cloud agent introducir problemas como secretos codificados de forma rígida, dependencias no seguras y otras vulnerabilidades. Copilot cloud agentLa validación de seguridad no requiere una GitHub Secret Protection, GitHub Code Security, or GitHub Advanced Security licencia.
- CodeQL se usa para identificar problemas de seguridad de código.
- Las dependencias recién introducidas se comprueban comparándolas con el GitHub Advisory Database para detectar avisos de malware y cualquier vulnerabilidad clasificada como alta o crítica de CVSS.
- Secret scanning se usa para detectar información confidencial, como claves de API, tokens y otros secretos.
- Los detalles sobre el análisis realizado y las acciones realizadas por Copilot cloud agent se pueden revisar en el registro de sesión. Consulte Gestión de sesiones del agente.
Opcionalmente, puede deshabilitar una o varias de las herramientas de calidad de código y validación de seguridad usadas por Copilot cloud agent. Consulte Configuración de las opciones de GitHub Copilot en la nube.
Copilot cloud agent puede insertar cambios de código en el repositorio.
Para mitigar este riesgo, GitHub:
- Limita quién puede desencadenar el agente. Solo los usuarios con acceso de escritura al repositorio pueden desencadenar Copilot cloud agent para trabajar. Los comentarios de los usuarios sin acceso de escritura nunca son presentados al agente.
- Limita la rama a la que el agente puede empujar.
Copilot cloud agent solo tiene la capacidad de empujar a una sola rama. Cuando se activa el agente mencionando
@copiloten una solicitud de incorporación de cambios existente, Copilot tiene acceso de escritura a la rama de la solicitud de incorporación de cambios. En otros casos, se crea una nueva ramacopilot/para Copilot,y el agente solo puede empujar a esa rama. El agente también está sujeto a las protecciones de las ramas y a las comprobaciones obligatorias del repositorio de trabajo. - Limita las credenciales del agente.
Copilot cloud agent solo puede realizar operaciones de push sencillas. No puede ejecutar
git pushdirectamente ni otros comandos de Git. - Requiere revisión humana antes de la combinación. Una persona debe revisar y fusionar las solicitudes de pull de borrador creadas por Copilot cloud agent. Copilot cloud agent no puede marcar sus solicitudes de incorporación de cambios como "Listo para revisión" y no puede aprobar ni combinar una solicitud de incorporación de cambios.
- Restringe las ejecuciones GitHub Actions de flujo de trabajo. De forma predeterminada, los flujos de trabajo no se desencadenan hasta Copilot cloud agentque se revisa el código y un usuario con acceso de escritura al repositorio hace clic en el botón Aprobar y ejecutar flujos de trabajo . Opcionalmente, puede configurar Copilot para permitir que los flujos de trabajo se ejecuten automáticamente. Consulte Revisar la salida de Copilot.
- Impide que el usuario que solicitó Copilot cloud agent crear una solicitud de incorporación de cambios la apruebe. Esto mantiene los controles esperados en la regla "Aprobaciones necesarias" y la protección de rama. Consulte Reglas disponibles para conjuntos de reglas.
- Requiere una aprobación adicional cuando una solicitud de incorporación de cambios no se atribuye a una persona. Cuando Copilot cloud agent abre una solicitud de extracción con su propia identidad de aplicación, se requiere una aprobación adicional antes de poder fusionarla, siempre y cuando el repositorio ya requiera al menos una aprobación. Esto se habilita de forma predeterminada en los conjuntos de reglas, donde los administradores pueden desactivarlo y siempre se aplican a las reglas de protección de ramas. Consulte Reglas disponibles para conjuntos de reglas.
Copilot cloud agent tiene acceso a información confidencial
Copilot cloud agent tiene acceso al código y a otra información confidencial, y podría filtrarla accidentalmente o debido a la entrada de usuario malintencionada.
Para mitigar este riesgo, GitHubrestringe Copilot cloud agentel acceso de Internet. Consulte Personalización o deshabilitación del firewall para GitHub Copilot.
Las indicaciones de IA pueden ser vulnerables a la inyección
Los usuarios pueden incluir mensajes ocultos en problemas asignados a Copilot cloud agent o comentarios que dejan para Copilot cloud agent como una forma de inyección de instrucciones.
Para mitigar este riesgo, GitHubfiltra los caracteres ocultos antes de pasar la entrada del usuario a Copilot cloud agent: Por ejemplo, el texto escrito como comentario HTML en un problema o comentario de solicitud de incorporación de cambios no se pasa a Copilot cloud agent.
Los administradores pueden perder la vista del trabajo de los agentes
Para mitigar este riesgo, Copilot cloud agent está diseñado para ser auditable y rastreable.
-
Las confirmaciones de Copilot cloud agent son creados por Copilot, con el desarrollador que asignó el problema o solicitó el cambio a la solicitud pull request marcado como coautor. Esto facilita la identificación del código generado por Copilot cloud agent y quién inició la tarea. - Copilot cloud agent tiene sus confirmaciones firmadas, por lo que aparecen como "Verified" en GitHub. Esto proporciona confianza en que las confirmaciones fueron hechas por Copilot cloud agent y no se han modificado.
- Los registros de sesión y los eventos de registro de auditoría están disponibles para los administradores.
- El mensaje de confirmación de cada confirmación realizado por un agente incluye un vínculo a los registros de sesión del agente, para la revisión y auditoría de código. Consulte Gestión de sesiones del agente.
Las automatizaciones se ejecutan sin que una persona inicie cada tarea
Automations se ejecuta Copilot cloud agent automáticamente, según una programación o en respuesta a eventos, sin que una persona inicie cada tarea. Consulte automatizaciones de Copilot. Esto presenta algunos riesgos adicionales, lo que GitHub mitiga como se indica a continuación.
- El trabajo se atribuye claramente.
- Las acciones realizadas en GitHub por un automation compartido se atribuyen a Copilot. Si se requieren revisiones de solicitudes de incorporación de cambios en el repositorio, se requerirá una revisión adicional para las solicitudes de incorporación de cambios creadas por una automation compartida.
- Las acciones realizadas por un usuario personal automation se atribuyen al usuario que creó el automation. Al igual que con las solicitudes de incorporación de cambios que crea el usuario, no pueden aprobar esas solicitudes de incorporación de cambios, lo que conserva los controles de revisión esperados.
- Puede controlar qué herramientas puede usar una automatización. Cuando un automation se activa por un evento, la entrada de usuarios no confiables podría pasar a formar parte del prompt. Para limitar el impacto de la inyección de mensajes, elija exactamente qué herramientas automation puede usar, por lo que solo puede realizar las acciones que requiere la tarea.
- Puede controlar qué recursos pueden ser actualizados por la automatización. Para las automatizaciones desencadenadas por un evento en GitHub, por ejemplo, cuando se abre una incidencia o una solicitud de extracción se marca como lista para su revisión, la opción Las herramientas configuradas pueden cambiar permite decidir a qué acceso tiene el agente, además de establecer las herramientas. La opción Cualquier elemento de este repositorio permitirá que las herramientas configuradas de automation tengan acceso completo para crear y actualizar registros en el repositorio. Elija la otra opción (por ejemplo Solo este problema) para limitar el acceso de escritura de automation a solo el problema o la solicitud de incorporación de cambios que desencadenó la ejecución de automatización.
- Los eventos de usuarios que no son de confianza se omiten de forma predeterminada. Automations ignorar de forma predeterminada los eventos generados por usuarios sin acceso de escritura al repositorio, con una opción de configuración para activarla.
- Los flujos de trabajo siguen necesitando aprobación humana. Una incidencia o una pull request abierta por un automation podría desencadenar otra automation. Al igual que con cualquier trabajo de Copilot cloud agent, los flujos de trabajo de GitHub Actions no se ejecutan en una solicitud de extracción hasta que un usuario con permiso de escritura los aprueba, lo que impide que se ejecuten automáticamente como parte de esa cadena.