Agente de programación Copilot es un agente autónomo que tiene acceso al código y puede realizar cambios en el repositorio. Esto conlleva ciertos riesgos.
Siempre que sea posible, GitHub ha aplicado las mitigaciones adecuadas. Esto proporciona a Agente de programación Copilot una base sólida de protecciones de seguridad ya integradas que se puede complementar siguiendo las mejores prácticas.
El código no validado puede introducir vulnerabilidades
De forma predeterminada, Agente de programación Copilot comprueba el código que genera para problemas de seguridad y obtiene una segunda opinión sobre su código con revisión de código Copilot. 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 de que el código generado por Agente de programación Copilot introduzca problemas como secretos codificados de forma rígida, dependencias no seguras y otras vulnerabilidades. Agente de programación Copilot la validación de seguridad no requiere una licencia GitHub Secret Protection, GitHub Code Security, or GitHub Advanced Security.
-
**CodeQL** se usa para identificar problemas de seguridad de código. - Las dependencias recién introducidas se verifican contra la base de datos de informes de seguridad de malware y vulnerabilidades calificadas como altas o críticas según CVSS en GitHub Advisory Database.
-
**Secret scanning** se utiliza 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 Agente de programación Copilot se pueden revisar en el registro de sesión. Consulte Seguimiento de las sesiones de GitHub Copilot.
Opcionalmente, puede deshabilitar una o varias de las herramientas de validación de calidad y seguridad de código usadas por Agente de programación Copilot. Consulte Configuración de opciones para el agente de codificación de GitHub Copilot.
Agente de programación Copilot puede empujar cambios de código a tu repositorio
Para mitigar este riesgo, GitHub:
-
**Limita quién puede desencadenar el agente.** Solo los usuarios con acceso de escritura al repositorio pueden activar Agente de programación Copilot para que funcione. Los comentarios de los usuarios sin acceso de escritura nunca son presentados al agente. -
**Limita la rama a la que el agente puede empujar.** Agente de programación Copilot solo tiene la posibilidad de hacer push a una sola rama. Cuando el agente se desencadena mencionando `@copilot` en un pull request existente, Copilot tiene acceso de escritura a la rama del pull request. En otros casos, se crea una nueva `copilot/` rama para Copilot, y el agente solo puede empujar a esa rama. El agente es sujeto a cualquiera de las protecciones de rama y las comprobaciones necesarias para el repositorio en uso. -
**Limita las credenciales del agente.** Agente de programación Copilot solo puede realizar operaciones de empuje sencillas. No puede ejecutar `git push` directamente ni otros comandos de Git. -
**Requiere revisión humana antes de la combinación.** Los borradores de solicitudes de incorporación de cambios por el Agente de programación Copilot los debe revisar y combinar una persona. Agente de programación Copilot no pueden marcar sus solicitudes de incorporación de cambios como "Listos para la revisión" y no pueden aprobar ni combinar una solicitud de incorporación de cambios. -
**Restringe las ejecuciones de flujos de trabajo de GitHub Actions.** De forma predeterminada, los flujos de trabajo no se desencadenan hasta que el código de Agente de programación Copilot es revisado 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 [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs#managing-github-actions-workflow-runs). -
**Impide que el usuario que solicitó a Agente de programación Copilot 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 [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets).
Agente de programación Copilot tiene acceso a información sensible
Agente de programación Copilot tiene acceso a código y otra información confidencial, y podría filtrarla, ya sea accidentalmente o debido a una entrada de usuario malintencionada.
Para mitigar este riesgo, GitHub restringe Agente de programación Copilotel acceso a Internet. Consulte Personalización o deshabilitación del firewall para el agente de codificación de GitHub Copilot.
Las indicaciones de IA pueden ser vulnerables a la inyección
Los usuarios pueden incluir mensajes ocultos en problemas asignados a Agente de programación Copilot o comentarios que quedan para Agente de programación Copilot como forma de inyección de mensajes.
Para mitigar este riesgo, GitHub filtra los caracteres ocultos antes de pasar la entrada del usuario a Agente de programación Copilot: por ejemplo, el texto escrito como comentario HTML en un comentario de problema o solicitud de incorporación de cambios no se pasa a Agente de programación Copilot.
Los administradores pueden perder la vista del trabajo de los agentes
Para mitigar este riesgo, Agente de programación Copilot está diseñado para ser auditable y rastreable.
- Agente de programación Copilot realiza las confirmaciones autoradas por Copilot, con el desarrollador que asignó el problema o solicitó el cambio en el pull request marcado como el coautor. Esto facilita la identificación del código generado por Agente de programación Copilot y quién inició la tarea.
- Los registros de sesión y los eventos de registro de auditoría están disponibles para los administradores.
- El mensaje de commit de cada commit 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 Seguimiento de las sesiones de GitHub Copilot.