Pesquisadores descobriram que vários projetos de código aberto de alto nível, incluindo os do Google, Microsoft, AWS e Red Hat, vazavam tokens de autenticação do GitHub por meio de artefatos do GitHub Actions em fluxos de trabalho de CI/CD.
Vazamento de tokens de autenticação GitHub
Invasores que roubam esses tokens podem obter acesso não autorizado a repositórios privados, roubar código-fonte ou injetar código malicioso em projetos.
A descoberta desse vazamento vem da Unit 42 da Palo Alto Networks que motivou ações de proprietários de repositórios populares onde segredos foram vazados por meio de artefatos do GitHub Actions.
No entanto, os problemas subjacentes permanecem sem solução, pois o GitHub decidiu não abordar o risco, colocando a responsabilidade sobre os usuários de proteger seus artefatos. Dada a situação, os usuários do GitHub precisam entender os riscos, avaliar sua exposição e tomar medidas para evitar vazamentos no futuro.
O vazamento
O relatório da Unit 42 destaca uma combinação de fatores, incluindo configurações padrão inseguras, configuração incorreta do usuário e verificações de segurança insuficientes, que podem levar ao vazamento de tokens do GitHub no que eles chamam de ataque “ArtiPACKED”.
O primeiro ponto de risco é a ação ‘actions/checkout’, comumente usada em fluxos de trabalho do GitHub para clonar o código do repositório para que ele fique disponível durante a execução do fluxo de trabalho. Por padrão, esta ação persiste o token do GitHub no diretório local .git (oculto), conforme necessário para operações autenticadas dentro do fluxo de trabalho.
Se um usuário fizer upload por engano de todo o diretório de checkout como parte de um artefato, o token do GitHub dentro da pasta git agora será exposto. Outras informações confidenciais que podem estar contidas nessa pasta incluem chaves de API, tokens de acesso a serviços de nuvem e diversas credenciais de conta.
Uma exposição semelhante por uploads de artefatos errôneos pode ocorrer por artefatos gerados durante o processo de CI/CD, como saídas de compilação e resultados de testes, que são armazenados e acessíveis por até três meses.
Outro ponto de falha são os pipelines de CI/CD que usam variáveis de ambiente para armazenar tokens do GitHub. Se ações ou scripts dentro do fluxo de trabalho registrarem essas variáveis, seja propositalmente ou por engano, os logs serão carregados como artefatos.
A Unit 42 observa que a ação ‘super-linter’ pode criar logs detalhados que incluem variantes de ambiente quando a propriedade ‘CREATE_LOG_FILE’ está definida como ‘True’.
Mitigação
É recomendado que os usuários do GitHub evitem incluir diretórios inteiros em artefatos enviados, limpem os logs e revisem regularmente as configurações do pipeline de CI/CD.
As configurações padrão para ações perigosas como ‘actions/checkout’ devem ser ajustadas para que as credenciais não persistam. Além disso, as permissões de token usadas em fluxos de trabalho devem ser definidas para o menor privilégio necessário para limitar os danos caso sejam expostas.
Via: Bleeping Computer