Trivy sob ataque a cadeia de fornecimento expõe credenciais em pipelines

Publicada 6 min de lectura 130 leituras

Há apenas alguns dias, a comunidade de desenvolvedores e equipamentos de segurança recebeu uma notícia inquietante: o popular scanner de segurança Trivy foi usado como vetor em um ataque da cadeia de abastecimento. Pesquisadores e o próprio projeto confirmaram que uma versão oficial do software e várias ações do GitHub relacionadas foram cortadas para incluir um malware projetado para roubar credenciais e persistir em sistemas comprometidos.

A descoberta inicial chegou da mão do pesquisador Paul McCarty, que alertou sobre uma versão backdoor de Trivy (v0.69.4). Análises técnicas posteriores de grupos especializados, entre eles Socket e Wiz, detalharam como os atacantes não só publicaram um binário troceado na release, mas também comprometeram o processo de build no GitHub Actions e alteraram as etiquetas do repositório aquasecurity/trivy- action, redigindo quase todas as etiquetas de versão a commits maliciosos.

Trivy sob ataque a cadeia de fornecimento expõe credenciais em pipelines
Imagem gerada com IA.

Segundo os pesquisadores, o ator responsável (vinculado a um grupo conhecido como TeamPCP, também rastreado como DeadCatx3 ou PCPcat) explodiu credenciais que haviam sido exfiltradas em um incidente anterior em março. Com o acesso de escrita ao repositório, os atacantes forçaram actualizações de tags: em particular, foi relatado que 75 de 76 marcas do repositório trivy-action foram reescritas, de modo que fluxos externos que referenciavam essas marcas executaram código malicioso antes de serem realizadas as análises legítimas de Trivy.

A amostra apresentada atuava como um infostealer centrado em localizar segredos. Em ambientes de CI/CD, o programa malicioso rastreia informações de reconhecimento do runner e digitalizava regiões de memória do processo GitHub Actions Runner.Worker buscando cadeias JSON que definissem segredos (patrones do tipo que contêm "isSecret":true). Em máquinas de desenvolvedor, o binário troceado coletava variáveis de ambiente, examinava arquivos locais em busca de credenciais e enumerava interfaces de rede. As análises mostram que o malware buscava chaves SSH, arquivos de configuração do Git, tokens de serviços cloud (AWS, GCP, Azure), arquivos .env, credenciais de bases de dados, configurações de CI/CD como Jenkins ou Terraform, chaves TLS, históriais de shell e até carteiras de criptomoedas.

Os dados coletados eram empacotados e criptografados num ficheiro chamado tpcp.tar.gz para tentar a sua ex-filtração para um servidor de comando e controle com um domínio intencionalmente tipeado (typosquat)scan.aquasecurtiy[.]org. Se a ex-filtração direta falhar, o malware usava uma rota de escape engenhosa: criava um repositório público na conta do GitHub da vítima chamado tpcp-docs e subia ali os dados roubados. Para alcançar persistência local também deixava um payload em~/. config/systemd/user/sysmon.pye o registrava como serviço de systemd que consultava remotos para baixar cargas adicionais.

Uma faixa direta no próprio código permitiu às equipes de análise ligar a campanha para TeamPCP: um dos payloads Python continha um comentário final que se auto-identificava como “TeamPCP Cloud stealer”, e as táticas que aproveitam infraestruturas mal configuradas ou tokens roubados encaixam com atividades já documentadas para esse ator, segundo os pesquisadores de Socket. As equipes de Aqua Security corroboraram publicamente que a intrusão foi possível devido à contenção do incidente anterior foi incompleta e que, embora se rotaram segredos, o processo não garantiu que os tokens renovados não tivessem sido interceptados. Você pode consultar a declaração da organização em seu tópico oficial no GitHub: Aqua Security - discussão.

Quanto às janelas temporárias, a release maliciosa de Trivy (v0.69.4) esteve disponível publicamente durante aproximadamente três horas, enquanto as etiquetas comprometidas do GitHub Actions permaneceram ativas até doze horas em alguns casos, tempo suficiente para que muitas pipelines executassem o código troceado inadvertidamente. Diante disso, as recomendações dos equipamentos forenses foram contundentes: as organizações que utilizaram as versões afetadas durante o período do incidente deveriam ser consideradas totalmente comprometida, rodar imediatamente todas as chaves, tokens e senhas, e realizar análises abrangentes dos sistemas para detectar movimentos laterais ou presença persistente.

O alcance do problema não se limitou a Trivy. Pesquisadores de Aikido vincularam o mesmo ator com uma campanha secundária baseada em um verme autorreplicante chamado CanisterWorm que ataca o ecossistema npm. Esse malware rouba tokens de npm e automatiza a publicação de atualizações maliciosas em pacotes de usuários comprometidos, espalhando-se com extrema rapidez: em testes observou-se como retomava projetos e publicava cargas em dezenas de pacotes em menos de um minuto. Para a distribuição de cargas adicionais usa um mecanismo de dead-drop baseado em canisters da Internet Computer (ICP), o que torna a infraestrutura de comando e controle mais resistente às interrupções, pois esses canisters só podem ser eliminados pelo seu controlador através de um processo de governança da própria rede. Mais detalhes técnicos sobre este vetor estão disponíveis na análise de Aikido e no painel de canisters de ICP: Internet Computer – canisters.

A campanha combina duas tendências perigosas que vimos observando nos últimos anos: a vítima preferida são ferramentas que são executadas com frequência em pipelines e ambientes de desenvolvimento - isto é, pontos com acesso a segredos sensíveis - e o uso de infra-estruturas descentralizadas ou pouco convencionais para esconder e quebrar a operacional do atacante. O resultado é um ataque que pode permanecer invisível durante a fase de execução (porque o binário troceado é executado como parte do workflow legítimo) e que pode escalar rapidamente outros repositórios ou pacotes uma vez que consegue tokens válidos.

Trivy sob ataque a cadeia de fornecimento expõe credenciais em pipelines
Imagem gerada com IA.

Se você gerencia pipelines, repositórios ou ambientes cloud, você precisa tomar várias ações imediatamente. Verifique se a sua organização executou Trivy v0.69.4 ou referências a marcas comprometidas do repositório trivy- action durante as janelas indicadas. Revoca e volta a emitir credenciais e tokens, não só nos serviços cloud, mas também em gestores de pacotes e em contas do GitHub. Audita os runners e as máquinas de desenvolvimento em busca de persistência (por exemplo~/. config/systemd/user/sysmon.pyou outros serviços desconhecidos), busca repositórios públicos chamados similaridades a tpcp-docs em contas próprias ou de colaboradores, e analisa logs para identificar exfiltrações ou acessos incomuns. Para se orientar na mitigação e obter informações técnicas adicionais, os relatórios das análises podem ser consultados: o relatório Socket, o blog Wiz e discussão de Aqua Security.

Este incidente sublinha que as ferramentas de segurança também são alvos valiosos para os atacantes: sua presença em pipelines e sua capacidade para acessar artefatos ou segredos as convertem em vetores privilegiados se forem comprometidas. Manter processos atómicos e verificáveis para rotação de chaves, aplicar assinatura de artefatos e reprodutibilidade em builds, isolar runners e minimizar o uso de credenciais de amplo alcance em pipelines são medidas que reduzem o risco, mas não eliminam a necessidade de resposta rápida e a suposição prudente de compromisso quando ocorrem lacunas deste tipo.

Para quem quiser aprofundar as análises originais, aqui estão as fontes técnicas citadas nesta reportagem: o aviso inicial de Paul McCarty no LinkedIn ( Ligação), análise de Socket ( Ligação), o relatório de Wiz ( Ligação), a discussão oficial do Aqua Security no GitHub ( Ligação) e a análise sobre CanisterWorm de Aikido ( Ligação).

Cobertura

Relacionadas

Mas notícias do mesmo assunto.