Lograron extraer alrededor de 73 mil tokens y contraseñas de proyectos abiertos en los registros públicos de Travis CI
Hace poco, Aqua Security dio a conocer la publicación de los resultados de un estudio sobre la presencia de datos confidenciales en los registros de compilación que están disponibles públicamente en el sistema de integración continua de Travis CI.
Los investigadores han encontrado una manera de extraer 770 millones de registros de varios proyectos. Durante una carga de prueba de 8 millones de registros, se identificaron en los datos recibidos alrededor de 73 000 tokens, credenciales y claves de acceso asociadas con varios servicios populares, incluidos GitHub, AWS y Docker Hub. La información revelada permite comprometer la infraestructura de muchos proyectos abiertos, por ejemplo, una fuga similar condujo recientemente a un ataque a la infraestructura del proyecto NPM.
Travis CI es un servicio de integración continua alojado que se utiliza para crear y probar proyectos de software alojados en GitHub y Bitbucket. Travis CI fue el primer servicio de CI que brindó servicios a proyectos de código abierto de forma gratuita y continúa.
La fuente es software técnicamente libre y está disponible por partes en GitHub bajo licencias permisivas. Sin embargo, la compañía señala que la gran cantidad de tareas que un usuario necesita monitorear y realizar puede dificultar que algunos usuarios integren con éxito la versión Enterprise con su propia infraestructura.
La fuga está relacionada con la capacidad de acceder a los registros de los usuarios del servicio gratuito Travis CI a través de la API normal. Para determinar el rango de posibles ID de registro, se usó otra API («https://api.travis-ci.org/logs/6976822»), que brinda redirección para descargar el registro por número de serie. Durante la investigación, fue posible identificar alrededor de 770 millones de registros creados desde 2013 hasta mayo de 2022 durante el montaje de proyectos que se enmarcan en el plan de tarifa libre sin autenticación.
En nuestra última investigación, en Team Nautilus descubrimos que decenas de miles de tokens de usuario están expuestos a través de la API de Travis CI, que permite que cualquier persona acceda a registros históricos de texto sin cifrar. Hay disponibles más de 770 millones de registros de usuarios de nivel gratuito, de los cuales puede extraer fácilmente tokens, secretos y otras credenciales asociadas con proveedores de servicios en la nube populares, como GitHub, AWS y Docker Hub. Los atacantes pueden usar estos datos confidenciales para lanzar ciberataques masivos y moverse lateralmente en la nube.
Divulgamos nuestros hallazgos a Travis, quien respondió que este problema es «por diseño», por lo que todos los secretos están disponibles actualmente. Todos los usuarios del nivel gratuito de Travis CI están potencialmente expuestos, por lo que recomendamos rotar sus claves de inmediato.
Un análisis de la muestra de prueba mostró que, en muchos casos, el registro refleja claramente los parámetros de acceso a los repositorios, las API y los almacenamientos, suficientes para acceder a los repositorios privados, realizar cambios en el código o conectarse a los entornos de nube utilizados en la infraestructura.
Por ejemplo, en los registros se encontraron tokens para conectarse a repositorios en GitHub, contraseñas para alojar ensamblajes en Docker Hub, claves para acceder a entornos de Amazon Web Services (AWS), parámetros de conexión para MySQL y PostgreSQL DBMS.
Es de destacar que los investigadores registraron filtraciones similares a través de la API en 2015 y 2019. Después de incidentes anteriores, Travis agregó ciertas restricciones para dificultar la carga masiva de datos y reducir el acceso a la API, pero estas restricciones se superaron. Además, Travis intentó limpiar los datos confidenciales de los registros, pero los datos solo se borraron parcialmente.
Este problema se informó a Travis CI en el pasado y se publicó en los medios de comunicación en 2015 y 2019, pero nunca se solucionó por completo. En 2015, Travis CI publicó una notificación sobre un informe de incidente que decía:
“Actualmente estamos experimentando un ataque distribuido en nuestra API pública que creemos que tiene como objetivo revelar los tokens de autenticación de GitHub. Las contramedidas se mantienen y actualizaremos en consecuencia”.
La filtración afectó principalmente a los usuarios de proyectos de código abierto, a quienes Travis brinda acceso gratuito a su servicio de integración continua.
En el transcurso de una verificación realizada por algunos proveedores de servicios, se confirmó que aproximadamente la mitad de los tokens y claves extraídos de los registros siguen funcionando. Se recomienda a todos los usuarios de la versión gratuita del servicio Travis CI que cambien urgentemente las claves de acceso, así como que configuren la eliminación de los registros de compilación y verifiquen que los datos confidenciales no se envíen al registro.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.