Entre los días 3 y 10 de septiembre, los repositorios públicos de código abierto que hicieron uso de la herramienta Travis CI estuvieron exponiendo sus contraseñas, credenciales y tokens a un posible robo. Felix Lange, desarrollador de Ethereum, descubrió la vulnerabilidad el día 7 y dio la voz de alarma a los responsables de la plataforma.
Y, si bien ésta ya ha quedado parcheada, el equipo de Ethereum afirma ahora que tuvieron que presionar a los responsables de Travis CI para que tomaran medidas, y que —tras hacerlo— no se explicó debidamente la situación al resto de usuarios afectados. Según afirmaron en Twitter,
"tras tres días siendo presionados por múltiples proyectos, @travisci parcheó silenciosamente el problema el día 10. [No se ha llevado a cabo] ningún análisis, ningún informe de seguridad, ninguna autopsia, ninguna advertencia a ninguno de sus usuarios de que sus secretos podrían haber sido robados".
Finalmente, Travis CI ha admitido públicamente la vulnerabilidad (clasificada como CVE-2021-41077), si bien ha minimizado su importancia:
"Según la información recibida, un repositorio público bifurcado a partir de otro podría presentar una solicitud de extracción y, al hacerlo, obtener acceso no autorizado a los datos secretos del repositorio original. En este escenario, dichos datos siguen cifrados en la base de datos de Travis CI. El problema sólo se aplica a repositorios públicos, no a repositorios privados".
El boletín de seguridad de Travis CI aprovecha para recordarnos que "cambiar cada cierto tiempo sus claves es algo que todos los usuarios deberían hacer".
Szilágyi, líder de Ethereum, señala en sendas declaraciones para The Register y Ars Technica que, por mucho que las claves secretas permanezcan encriptadas mientras permanecen en el disco en Travis,
"una vez da comienzo de compilación, Travis las desencripta y las inyecta en las compilaciones en forma de variables de entorno".
"[Pero] en el código externo, dichas las variables no deberían insertarse, ya que el mantenedor no tiene control sobre el código que envían las personas ajenas al proyecto. El problema fue que estropearon algo y terminaron inyectando las claves secretas en compilaciones que no eran fiables".
Szilágyi, decepcionado con la actitud de la plataforma, ya ha recomendado a los desarrolladores que consideren la opción de buscar una alternativa a Travis CI, para que "transfieran sus proyectos lejos de Travis de forma inmediata e indefinida".
Travis CI es una plataforma distribuida de generación e integración continua, lo que significa que nos permite conectarnos con nuestro repositorio Git (alojado en Github o Bitbucket) y clonarlo para llevar a cabo pruebas en nuevos entornos virtuales, con diferentes configuraciones, tras cada 'push' realizado, regenerando el proyecto.
Si ninguna de las pruebas realizadas a través de Travis CI falla, se considera una compilación exitosa y queda lista para su implementación en el correspondiente host o servidor web.
Gran parte de la popularidad de Travis CI (desde 2019 ha sido usada por más de 600.000 usuarios para poner a prueba casi un millón de proyectos de código abierto) deriva del hecho de soportar más de una veintena de lenguajes de programación, desde los más populares como C/C++, Java, Python, Javascript y PHP hasta Clojure, D, Scala, Swift o F#.
Fuente: Genbeta
¿Quieres adentrarte en el universo del Bitcoin? En EducaciónIT realizamos el Curso de Bitcoins y Criptomonedas, con el cual conocerás la tecnología Blockchain, manejar diferentes tipos de wallets existentes, transferir y recibir criptomonedas, y más.