Copilot, el asistente de inteligencia artificial de Microsoft, ha estado exponiendo más de 20.000 repositorios privados de gigantes como Google, Intel y, sí, incluso Microsoft. 🤦🏻♂️
Los problemas comenzaron cuando repositorios que originalmente estaban disponibles al público fueron cambiados a privados, generalmente porque los desarrolladores se dieron cuenta de que contenían credenciales de autenticación o datos confidenciales. Sin embargo, aunque los hicieron privados, Copilot siguió accediendo a ellos como si nada hubiera pasado.
La firma de seguridad en IA, Lasso, detectó este comportamiento a finales de 2024. Tras un descubrimiento inicial en enero, donde se dieron cuenta de que Copilot almacenaba y hacía accesibles repositorios que ya no deberían ser públicos, decidieron investigar a fondo la magnitud del problema.
Repositorios zombies que no descansan
Los investigadores de Lasso, Ophir Dror y Bar Lanyado, compartieron su inquietud en una publicación, afirmando: “Nos sorprendió ver cuán fácil era acceder a información que debería estar protegida”. Para entender la magnitud del problema, se propusieron automatizar la identificación de estos repositorios zombies (aquellos que fueron públicos y luego se volvieron privados).
Lo más alarmante fue cuando descubrieron que uno de sus propios repositorios privados estaba a la vista de todos. Tras rastrear el origen del problema, se dieron cuenta de que el mecanismo de caché de Bing había indexado las páginas cuando eran públicas y no las había eliminado al cambiar su estado a privado. Como Copilot utiliza Bing como su motor de búsqueda principal, la información privada seguía siendo accesible a través de este asistente de IA.
Después de que Lasso informara de la situación en noviembre, Microsoft implementó cambios para solucionarlo. Aunque se confirmó que los datos privados ya no estaban disponibles a través de la caché de Bing, los investigadores hicieron un descubrimiento inquietante: Copilot seguía teniendo acceso a un repositorio privado que había sido eliminado tras una demanda de Microsoft. Esta demanda alegaba que el repositorio contenía herramientas para eludir los mecanismos de seguridad de los servicios de IA generativa de la compañía. ¡Un verdadero escándalo!
A pesar de los esfuerzos de Microsoft, el problema persistía. Aunque se cerró el acceso a una interfaz de usuario especial de Bing, la caché no se borró completamente, lo que significa que la información sensible seguía estando al alcance de Copilot. Los investigadores afirmaron que, aunque se había bloqueado el acceso para los usuarios, el asistente de IA aún podía acceder a esos datos.
Y como si esto no fuera suficiente, el post de Lasso ofreció pasos sencillos para que cualquier persona pudiera encontrar y ver ese vasto tesoro de repositorios privados que habían sido identificados.
El dilema de la seguridad: ¿se puede volver atrás?
A pesar de que las mejores prácticas de seguridad advierten sobre no incluir tokens de seguridad o claves de cifrado directamente en el código, esta es una trampa que muchos desarrolladores siguen cayendo. El daño se multiplica cuando este código se sube a repositorios públicos, algo que ha sido un problema recurrente durante más de una década.
Cuando se producen estos errores, la reacción habitual de los desarrolladores es cambiar rápidamente el repositorio a privado para contener el daño. Sin embargo, las conclusiones de Lasso revelan que simplemente hacer el código privado no es suficiente. Una vez expuestos, las credenciales quedan comprometidas de manera irreversible, y la única solución es rotar todos los datos sensibles.
Esto no aborda el problema de los datos sensibles que se incluyeron en repositorios que se cambiaron de público a privado. Microsoft tuvo que incurrir en gastos legales para eliminar herramientas de GitHub después de alegar que violaban varias leyes, pero a pesar de sus esfuerzos, Copilot sigue poniendo en riesgo este trabajo al hacer que las herramientas sean accesibles nuevamente.
En un comunicado enviado tras la publicación de este artículo, Microsoft explicó: “Es un hecho conocido que los modelos de lenguaje grandes a menudo se entrenan con información disponible públicamente en la web. Si los usuarios prefieren evitar que su contenido esté disponible públicamente para entrenar estos modelos, se les recomienda mantener sus repositorios privados en todo momento”.