imágenes falsas

Una falla de seguridad en Travis CI potencialmente expuso los secretos de miles de proyectos de código abierto que dependen del servicio de integración continua alojado. Travis CI es una solución de prueba de software utilizada por más de 900.000 proyectos de código abierto y 600.000 usuarios. Una vulnerabilidad en la herramienta hizo posible que las variables de entorno seguras (claves de firma, credenciales de acceso y tokens de API de todos los proyectos públicos de código abierto) fueran exfiltradas.

Peor aún, la comunidad de desarrolladores está molesta por el mal manejo del proceso de divulgación de vulnerabilidades y el breve «boletín de seguridad» que tuvo que sacar de Travis.

Variables de entorno inyectadas en compilaciones de solicitudes de extracción

Travis CI es una popular herramienta de prueba de software debido a su perfecta integración con GitHub y Bitbucket. Como creadores de la herramienta explicar:

Cuando ejecuta una compilación, Travis CI clona su repositorio de GitHub en un entorno virtual completamente nuevo y lleva a cabo una serie de tareas para compilar y probar su código. Si una o más de esas tareas fallan, la compilación se considera rota. Si ninguna de las tareas falla, la compilación se considera aprobada y Travis CI puede implementar su código en un servidor web o un host de aplicación.

Pero este mes, el investigador Felix Lange encontró una vulnerabilidad de seguridad que hizo que Travis CI incluyera variables de entorno seguro de todos repositorios públicos de código abierto que utilizan Travis CI en compilaciones de solicitudes de extracción. Las variables de entorno pueden incluir secretos confidenciales como claves de firma, credenciales de acceso y tokens de API. Si se exponen estas variables, los atacantes pueden abusar de los secretos para obtener un movimiento lateral en las redes de miles de organizaciones.

Una simple búsqueda en GitHub demuestra que Travis se usa ampliamente en una gran cantidad de proyectos:

Resultados de búsqueda de GitHub para
Agrandar / Resultados de búsqueda de GitHub para «travis.yml».

Rastreado como CVE-2021-41077, el error está presente en el proceso de activación de Travis CI e impacta en ciertas compilaciones creadas entre el 3 y el 10 de septiembre. Como parte de este proceso de activación, se supone que los desarrolladores deben agregar un archivo «.travis.yml» a su repositorio de proyectos de código abierto. Este archivo le dice a Travis CI qué hacer y puede contener secretos encriptados. Pero estos secretos no están destinados a ser expuestos. De hecho, los documentos de Travis CI siempre han dicho: «Las variables de entorno cifradas no están disponibles para extraer solicitudes de bifurcaciones debido al riesgo de seguridad de exponer dicha información a un código desconocido».

Idealmente, para un archivo «travis.yml» proporcionado por el cliente presente en un repositorio de Git, se espera que Travis se ejecute de una manera que evite el acceso público a cualquier variable de entorno secreta especificada en el archivo YML. En pocas palabras, cuando se bifurca (copia) un proyecto público, el archivo «.travis.yml», junto con estos secretos, se incluye en la bifurcación. Eso no se supone que suceda. Pero esta vulnerabilidad hizo que este tipo de secretos se expongan inesperadamente a casi cualquier persona que bifurque un repositorio público e imprima archivos durante un proceso de compilación.

Afortunadamente, el problema no duró demasiado, alrededor de ocho días, gracias a Lange y otros investigadores que notificaron a la compañía sobre el error el 7 de septiembre. Pero por precaución, se recomienda a todos los proyectos que dependen de Travis CI rotar sus secretos.

Si bien no es exactamente de naturaleza similar, la vulnerabilidad tiene ecos de la Ataque a la cadena de suministro de Codecov en el que los actores de amenazas habían exfiltrado secretos y variables de entorno sensibles de muchos clientes de Codecov de sus entornos de CI / CD, lo que provocó más filtraciones de datos en empresas destacadas.

«Según un informe recibido, un repositorio público bifurcado de otro podría presentar una solicitud de extracción (funcionalidad estándar, por ejemplo, en GitHub, BitBucket, Assembla) y mientras lo hace, obtener acceso no autorizado a secretos del repositorio público original con una condición de imprimir algunas de las moscas durante el proceso de construcción «, explicó Montana Mendy de Travis CI en un boletín de seguridad. «En este escenario, los secretos todavía están encriptados en la base de datos de Travis CI».

Mendy dice que el problema solo se aplica a los repositorios públicos y no a los privados, ya que los propietarios de estos últimos tienen control total sobre quién puede bifurcar sus repositorios.

Comunidad furiosa por el endeble «boletín de seguridad»

Dejando a un lado la presencia y la reparación relativamente rápida de la falla, el conciso boletín de seguridad de Travis CI y el manejo general del proceso de divulgación coordinado ha enfurecido a la comunidad de desarrolladores.

En un largo hilo de Twitter, el líder del proyecto de criptomonedas Ethereum, Péter Szilágyi, detalla el arduo proceso que soportó su compañía mientras esperaba que Travis CI tomara medidas y lanzara un breve boletín de seguridad en una página web desconocida.

«Después de tres días de presión por varios proyectos, [Travis CI] silenciosamente reparó el problema el día 10. Sin análisis, sin informe de seguridad, sin autopsia, sin advertir a ninguno de sus usuarios que sus secretos podrían haber sido robados «, tuiteó Szilágyi.

Después de que Szilágyi y Lange le pidieran a GitHub que prohibiera Travis CI por su mala postura de seguridad y sus procesos de divulgación de vulnerabilidades, apareció un aviso. «Finalmente, después de múltiples ultimátums de múltiples proyectos, [they] publicó esta publicación tonta escondida en lo profundo donde nadie la leerá … Ni siquiera un solo ‘gracias’. [No] reconocimiento de divulgación responsable. Ni siquiera admitir la gravedad de todo «, dijo Szilágyi, mientras se refería al boletín de seguridad, y especialmente a su versión abreviada, que apenas incluía detalles.

Sí, es un boletín de seguridad legítimo.
Agrandar / Sí, es un boletín de seguridad legítimo.

Varios miembros de la comunidad se unieron a Szilágyi para criticar el boletín. Desarrollador web con sede en Boston Jake Jarvis llamado la divulgación un «boletín de seguridad increíblemente vergonzoso».

Pero Travis CI cree que la rotación de secretos es algo que los desarrolladores deberían hacer de todos modos. «Travis CI implementó una serie de parches de seguridad a partir del 3 de septiembre que resuelven este problema», concluyó Mendy en nombre del equipo de Travis CI. «Como recordatorio, todos los usuarios deben hacer un ciclo de sus secretos con regularidad. Si no está seguro de cómo hacerlo, comuníquese con Soporte».

Ars se ha comunicado con Travis CI y Szilágyi para obtener más comentarios y estamos esperando sus respuestas.

Author

Write A Comment