En los últimos meses, la extensión Copilot Chat para Visual Studio Code ha experimentado una notable evolución, incorporando una serie de funcionalidades innovadoras. Entre estas, destaca el modo de agente, que permite el uso de múltiples modelos de lenguaje y herramientas integradas, además de servidores MCP para escribir código y realizar solicitudes de cambios. Esta nueva flexibilidad facilita a los usuarios personalizar sus herramientas y servidores, acelerando significativamente el proceso de desarrollo.
No obstante, desde la perspectiva de la seguridad, surgen preocupaciones importantes relacionadas con la inclusión de datos externos en las interacciones mediante chat. Un caso particular es la consulta sobre problemas específicos en GitHub, las cuales podrían contener instrucciones maliciosas. En tales situaciones, el modelo no solo podría ofrecer respuestas incorrectas, sino también ejecutar acciones comprometedoras de manera inadvertida.
Recientemente, una evaluación de seguridad identificó varias vulnerabilidades en la extensión, especialmente en su modo de agente. Estas fallas potencialmente permitían a atacantes filtrar tokens de GitHub locales, acceder a archivos sensibles e incluso ejecutar código arbitrario sin necesitar la confirmación del usuario. A raíz de este descubrimiento, el equipo de VS Code trabajó en conjunto para implementar las correcciones necesarias. También se planea explorar patrones adicionales para mejorar la seguridad en la edición y lectura de código.
El modo de agente representa una de las innovaciones más destacadas. Cuando un usuario realiza una consulta, VS Code no solo envía la solicitud a un modelo de lenguaje específico, sino que también proporciona información contextual del proyecto en uso, como archivos relevantes y definiciones de herramientas. Esto crea un circuito de retroalimentación que puede desencadenar más llamadas a herramientas.
Sin embargo, incluso los modelos avanzados pueden ser inducidos a dar respuestas inapropiadas o realizar acciones no deseadas. La herramienta «fetch_webpage», diseñada para enviar solicitudes HTTP, demostró ser vulnerable debido a un mecanismo de confianza defectuoso que podría exponer datos sensibles. Tras identificar esta vulnerabilidad, se adoptaron medidas para requerir confirmaciones previas antes de acceder a URLs no verificadas.
Otras herramientas, como «Simple Browser» y «editFile», presentaron riesgos similares, con la posibilidad de enviar datos locales a servidores externos sin confirmación adecuada. Aunque las acciones de edición informan a los usuarios, estas pueden impactar inmediatamente en el sistema, por ejemplo, al abrir aplicaciones sin intervención del usuario.
Para mitigar estos riesgos, se han desarrollado mejoras de seguridad que otorgan a los usuarios un mayor control sobre las herramientas disponibles para el modelo, así como la implementación de confirmaciones al acceder o modificar archivos sensibles. Se promueven igualmente buenas prácticas de seguridad, como el uso de entornos aislados a través de contenedores o GitHub Codespaces.
La capacidad de los modelos de lenguaje para diferenciar entre instrucciones legítimas y maliciosas sigue siendo un reto. Las actualizaciones recientes se centran en proporcionar transparencia sobre el funcionamiento de las herramientas, delegando la responsabilidad de la seguridad tanto en los desarrolladores de software como en los usuarios, quienes deben ser conscientes de los riesgos al utilizar estas tecnologías avanzadas.