TravisCI Security
O que é o TravisCI
Travis CI é um serviço de integração contínua hospedado ou local usado para construir e testar projetos de software hospedados em várias plataformas git diferentes.
pageBasic TravisCI InformationAtaques
Gatilhos
Para lançar um ataque, primeiro você precisa saber como acionar uma compilação. Por padrão, o TravisCI irá acionar uma compilação em pushs e pull requests:
Cron Jobs
Se você tiver acesso à aplicação web, você pode configurar cron jobs para executar a compilação, isso pode ser útil para persistência ou para acionar uma compilação:
Parece que não é possível configurar cron jobs dentro do arquivo .travis.yml
de acordo com este.
PR de Terceiros
O TravisCI, por padrão, desabilita o compartilhamento de variáveis de ambiente com PRs vindos de terceiros, mas alguém pode habilitar e então você poderia criar PRs para o repositório e extrair os segredos:
Vazamento de Segredos
Como explicado na página de informações básicas, existem 2 tipos de segredos. Segredos de Variáveis de Ambiente (que estão listados na página web) e segredos personalizados criptografados, que são armazenados dentro do arquivo .travis.yml
como base64 (observe que ambos, quando armazenados criptografados, se tornarão variáveis de ambiente nas máquinas finais).
Para enumerar segredos configurados como Variáveis de Ambiente, vá para as configurações do projeto e verifique a lista. No entanto, observe que todas as variáveis de ambiente do projeto definidas aqui aparecerão ao acionar uma compilação.
Para enumerar os segredos criptografados personalizados, o melhor que você pode fazer é verificar o arquivo
.travis.yml
.Para enumerar arquivos criptografados, você pode verificar por arquivos
.enc
no repositório, por linhas semelhantes aopenssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
no arquivo de configuração, ou por iv e chaves criptografadas nas Variáveis de Ambiente como:
A FAZER:
Exemplo de compilação com shell reverso sendo executado no Windows/Mac/Linux
Exemplo de compilação vazando o env codificado em base64 nos logs
TravisCI Enterprise
Se um atacante terminar em um ambiente que usa TravisCI enterprise (mais informações sobre o que é isso em informações básicas), ele será capaz de acionar compilações no Worker. Isso significa que um atacante será capaz de se mover lateralmente para esse servidor, a partir do qual ele poderia ser capaz de:
escapar para o host?
comprometer o kubernetes?
comprometer outras máquinas em execução na mesma rede?
comprometer novas credenciais de nuvem?
Referências
Última actualización