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 opciones para GitHub Copilot agente 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 [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets#additional-approval-for-unattributed-copilot-pull-requests).
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 Acerca de las automatizaciones de Copilot. Esto presenta algunos riesgos adicionales, lo que GitHub mitiga como se indica a continuación.
- El trabajo se atribuye a la persona que creó la automatización. Las solicitudes de extracción abiertas y el código enviado por un automation se atribuyen al usuario que creó la automation. Al igual que cuando ese mismo usuario crea una solicitud de incorporación de cambios, no puede aprobarlo, lo que mantiene los controles esperados de "Aprobaciones requeridas".
- 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.
- 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.