TravisCI Security
¿Qué es TravisCI
Travis CI es un servicio de integración continua alojado o en las instalaciones utilizado para construir y probar proyectos de software alojados en varias plataformas git diferentes.
pageBasic TravisCI InformationAtaques
Disparadores
Para lanzar un ataque primero necesitas saber cómo activar una compilación. Por defecto, TravisCI activará una compilación en empujes y solicitudes de extracción:
Trabajos Cron
Si tienes acceso a la aplicación web puedes programar trabajos cron para ejecutar la compilación, esto podría ser útil para persistencia o para activar una compilación:
Parece que no es posible programar trabajos cron dentro del archivo .travis.yml
según esto.
PR de Terceros
TravisCI por defecto deshabilita el intercambio de variables de entorno con PRs provenientes de terceros, pero alguien podría habilitarlo y luego podrías crear PRs al repositorio y extraer los secretos:
Extracción de Secretos
Como se explica en la página de información básica, hay 2 tipos de secretos. Los secretos de Variables de Entorno (que se enumeran en la página web) y secretos encriptados personalizados, que se almacenan dentro del archivo .travis.yml
como base64 (nota que ambos, almacenados encriptados, terminarán como variables de entorno en las máquinas finales).
Para enumerar secretos configurados como Variables de Entorno ve a la configuración del proyecto y verifica la lista. Sin embargo, ten en cuenta que todas las variables de entorno del proyecto configuradas aquí aparecerán al activar una compilación.
Para enumerar los secretos encriptados personalizados lo mejor que puedes hacer es verificar el archivo
.travis.yml
.Para enumerar archivos encriptados puedes buscar archivos
.enc
en el repositorio, líneas similares aopenssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
en el archivo de configuración, o iv y claves encriptadas en las Variables de Entorno como:
POR HACER:
Ejemplo de compilación con shell inverso ejecutándose en Windows/Mac/Linux
Ejemplo de compilación filtrando el env en base64 codificado en los registros
TravisCI Enterprise
Si un atacante termina en un entorno que utiliza TravisCI enterprise (más información sobre qué es esto en la información básica), podrá activar compilaciones en el Worker. Esto significa que un atacante podrá moverse lateralmente a ese servidor desde el cual podría ser capaz de:
¿escapar al host?
¿comprometer kubernetes?
¿comprometer otras máquinas que se ejecutan en la misma red?
¿comprometer nuevas credenciales en la nube?
Referencias
Última actualización