La extensión Copilot Chat para Visual Studio Code ha avanzado considerablemente en los últimos meses, introduciendo una serie de nuevas funcionalidades que mejoran la experiencia de desarrollo. Entre las principales novedades se encuentra un modo de agente que permite la utilización de múltiples modelos de lenguaje y herramientas integradas, facilitando a los desarrolladores la escritura de código y la realización de solicitudes de confirmación de cambios. Esta flexibilidad otorga a los usuarios la posibilidad de personalizar las herramientas y servidores empleados, acelerando así el proceso de desarrollo.
Sin embargo, este progreso trae consigo importantes consideraciones de seguridad. Se han identificado riesgos asociados a la inclusión de datos externos en las sesiones de chat. Por ejemplo, un usuario podría consultar un problema específico en GitHub que incluya instrucciones maliciosas, lo que podría llevar al modelo a proporcionar respuestas incorrectas o, peor aún, a llevar a cabo acciones sensibles sin autorización.
Una reciente evaluación de seguridad de la extensión Copilot Chat reveló varias vulnerabilidades, especialmente en el modo de agente. Estas fallas habrían permitido a atacantes potencialmente filtrar tokens locales de GitHub, acceder a archivos sensibles o ejecutar código arbitrario sin necesidad de autorización del usuario. En respuesta, se han implementado correcciones en colaboración con el equipo de Visual Studio Code, y se están explorando patrones adicionales para aumentar la seguridad al interactuar con el código.
La funcionalidad del modo de agente permite que, al abrir el chat y realizar una consulta, VS Code no solo envíe la solicitud al modelo de lenguaje, sino que además compile información contextual del proyecto en uso, incluida la carga de archivos relevantes y definiciones de herramientas. Esta interacción crea un ciclo de retroalimentación que puede llevar a otras llamadas a herramientas.
No obstante, se ha observado que incluso los modelos de lenguaje avanzados pueden ser inducidos a emitir respuestas inapropiadas o a realizar acciones involuntarias. Se detectaron vulnerabilidades en herramientas como «fetch_webpage», que envía solicitudes HTTP, y cuyos mecanismos de confianza presentaban fallas que permitían la filtración de datos sensibles. Tras su detección, se implementaron cambios que requieren confirmaciones para acceder a URLs no confiables.
Otras herramientas como «Simple Browser» y «editFile» también mostraron riesgos similares, permitiendo potencialmente el envío de datos locales a servidores externos sin la debida confirmación. Aunque las acciones de edición eran notificadas a los usuarios, podían tener efectos inmediatos en el sistema, como la apertura de aplicaciones sin intervención del usuario.
Para mitigar estos riesgos, se han realizado mejoras de seguridad que permiten a los usuarios tener un mayor control sobre las herramientas disponibles, así como la implementación de confirmaciones en el acceso o modificación de archivos sensibles. Asimismo, se promueven buenas prácticas de seguridad, como el uso de entornos aislados mediante contenedores de desarrollo o la utilización de GitHub Codespaces.
El desafío más grande sigue siendo la capacidad de los modelos de lenguaje para distinguir entre instrucciones legítimas y maliciosas. Las actualizaciones recientes se enfocan en proporcionar una mayor transparencia a los usuarios sobre el funcionamiento interno de las herramientas. La seguridad es una responsabilidad compartida entre los desarrolladores de software y los usuarios, quienes deben mantenerse alerta sobre los riesgos al interactuar con estas tecnologías avanzadas.





