
Campanha de comprometimento de repositórios e publicações de pacotes explora credenciais vazadas de desenvolvedores para roubar segredos em pipelines de CI/CD e estáções de trabalho locais.
| Componente | Pacotes npm (LeoPlatform, RStreams), módulo Go (Verana Blockchain) e Actions do GitHub (codfish/semantic-release-action) |
| Vetor | Credenciais vazadas de mantenedores de registro, abuso de arquivos binding.gyp para execução em tempo de instalação e redirecionamento de tags em repositórios |
| Impacto | Roubo de credenciais de publicação de pacotes, exfiltração de tokens OIDC de CI/CD, acesso não autorizado a repositórios e infecção cruzada de ambientes de desenvolvimento |
| Prioridade | Revogar tokens de acesso pessoal, auditar esteiras de CI/CD em busca de fluxos de trabalho não autorizados e verificar dependências em repositórios locais e na nuvem |
A família de malware associada aos grupos Mini Shai-Hulud, Miasma e Hades demonstrou uma nova e significativa evolução em suas campanhas de ataque à cadeia de suprimentos de software. Pesquisadores de cibersegurança identificaram atividade maliciosa recorrente que agora afeta diretamente o ecossistema npm, por meio de pacotes comprometidos, e se expandiu com sucesso para o ecossistema Go através da manipulação de repositórios de código-fonte. O objetivo central deste集群 operacional permanece focado na coleta sistemática de credenciais de desenvolvedores e mantenedores para posterior utilização na propagação transversal por registros de pacotes, repositórios de código e fluxos de trabalho confidenciais de desenvolvimento.
Os alvos recentes desta campanha incluem as bibliotecas LeoPlatform e RStreams, amplamente utilizadas em arquiteturas nativas de nuvem e fluxos de trabalho serverless. Investigações de segurança indicaram que contas diretas associadas a esses projetos foram invadidas através de credenciais vazadas. Esse acesso inicial permitiu que agentes maliciosos injetassem versões trojanizadas dos pacotes usando tokens de autenticação válidos pertencentes aos desenvolvedores originais. A janela de publicação maliciosa foi extremamente rápida, ocorrendo em uma janela de seis segundos para limitar a detecção automatizada e a resposta de defesa.
Além dos registros de pacotes tradicionais, a campanha demonstrou capacidades de infecção cruzada ao corromper o módulo Verana Blockchain no ecossistema Go. Este movimento prova que ameaças de cadeia de suprimentos estão transcendendo os limites de gerenciadores de pacotes específicos de linguagem e mirando em fluxos de trabalho inteiros de desenvolvimento. A inserção do payload não depende de resoluções nativas do ecossistema Go, mas sim da execução remota disparada quando um desenvolvedor clona, abre ou interage com o repositório comprometido em um ambiente de desenvolvimento integrado ou assistente de inteligência artificial.
Um dos vetores de entrega mais notáveis nesta recente onda de infecção envolve o abuso direto de fluxos de trabalho do GitHub Actions. Ocorreu um comprometimento documentado no qual um atacante forçou o envio de um commit malicioso para o repositório da Action codfish/semantic-release-action, redirecionando várias tags de versão para apontarem para o código malicioso. Como resultado, qualquer pipeline de CI/CD que consumiu estas tags.infecionadas executou o payload do atacante diretamente dentro do runner provisionado em nuvem do GitHub.
A tática empregada pelos pacotes npm comprometidos desvia das abordagens mais tradicionais que injetam ganchos maliciosos de ciclo de vida diretamente no arquivo package.json. Em vez disso, a modificação analisada inclui a inserção de um arquivo binding.gyp projetado para forçar a execução arbitrária de código no momento exato da instalação do pacote. Está abordagem aciona de forma silenciosa um carregador em JavaScript que avalia o ambiente e baixa o runtime Bun caso ele ainda não esteja presente na máquina da vítima. Uma vez que o ambiente de execução está configurado, a cadeia de infecção inicializa o payload principal, desenhado especificamente para operar como um ladrão de segredos, credenciais e tokens de acesso.
Para contornar barreiras de segurança e análises automatizadas, o malware incorpora mecanismos de evasão baseados em auditoria de ambiente e localidade. O payload possui um killswitch que interrompe sua execução caso detecte a localidade do sistema operacional configurada como russo, além de verificar a presença ativa de softwares de proteção de endpoints. Quando o ambiente é considerado seguro para o atacante, o sistema operacional do agente malicioso implanta um fluxo de trabalho designado Run Copilot focado em capturar variáveis de ambiente e segredos contidos na memória de processos das esteiras de CI/CD.
A exfiltração dos dados coletados ocorre através de infraestruturas de depósito morto hospedadas em repositórios públicos do GitHub. O malware realiza o upload de credenciais e tokens roubados para repositórios criados com descrições específicas, como Alright Lets See If This Works. O ataque também faz uso de resolvedores embutidos no GitHub para coordenar o roubo e a validação de tokens em tempo real, alterando marcadores textuais para evadir assinaturas estáticas de tráfego de rede, utilizando a string de identificação RevokeAndItGoesKaboom.
A fase de roubo de credenciais nos runners de CI/CD é altamente agressiva e utiliza criptografia forte para ocultar o tráfego de saída. O payload captura de forma dinâmica tokens OIDC do GitHub, correlaciona e coleta tokens de acesso pessoal que correspondem a padrões estruturais conhecidos e embaralha todo o material coletado utilizando criptografia AES-128-GCM. Além disso, o malware implementa rotinas defensáveis que fazem polling no GitHub em intervalos regulares de uma hora, buscando por commits que correspondam à assinatura firedalazer para baixar e executar a variante Hades da família maliciosa.
O escopo do comprometimento estabelece um risco técnico e operacional severo para equipes de engenharia de software, administradores de nuvem e analistas de segurança ofensiva e defensiva. Ambientes de desenvolvimento que importam pacotes de registros públicos sem validação criptográfica ou utilizam Actions de repositórios de terceiros no fluxo de entrega contínua ficam diretamente expostos ao roubo estrutural de credenciais de acesso aos provedores de infraestrutura em nuvem.
- Estáções de trabalho de desenvolvedores que instalaram ou executaram pacotes npm comprometidos das famílias LeoPlatform e RStreams.
- Máquinas locais infectadas pela interação com módulos Go maliciosos, como os arquivos do Verana Blockchain, acionados via assistentes de IA ou IDE世锦赛s configurados para execução automática de scripts.
- Pipelines de entrega contínua que absorveram as Actions do GitHub maliciosas, expondo diretamente segredos no ambiente de computação efêmero.
- Contas de mantenedores de projetos de código aberto, que correm o risco de acesso não autorizado e alteração forçada no histórico de commits do repositório.
- Aplicações em infraestruturas serverless e serviços radicados em provedores de computação em nuvem cujos pipelines de compilação consumiram as bibliotecas infectadas na fase de build.
A detecção desta campanha evasiva depende fortemente da busca ativa por anomalias comportamentais em logs de controle de versão, monitoramento de processos em endpoints de desenvolvedores e análise de integridade de scripts de build. A caça às ameaças deve focar na identificação de processos de origem duvidosa realizando chamadas de rede não padronizadas para repositórios públicos de código, bem como execução de runtimes não sancionados durante builds automatizados.
- Monitorar logs de pipelines de CI/CD em busca da criação não assistida de arquivos ou tarefas designadas como Run Copilot.
- Realizar varreduras nos sistemas de controle de versão para identificar a existência de repositórios públicos inicializados com as descriçõesexactas Alright Lets See If This Works.
- Buscar em sistemas EDR por processos de instalação de pacotes acionando instâncias não documentadas do runtime Bun a partir do diretório de trabalho do desenvolvedor.
- Avaliar o histórico de auditoria do GitHub em busca de interações outside bounds de horário comercial utilizando force-push e alteração rápida de tags, especialmente para dependências focadas em automação de semantic release.
- Inspecionar tráfego de saída dos runners de CI/CD buscando por requisições de rede anommalhas associadas com strings de controle defangadas, como RevokeAndItGoesKaboom ou firedalazer.
A contenção eficaz desta campanha requer uma postura de resposta ágil focada na quebra da cadeia de confiança do ciclo de desenvolvimento de software. Está abordagem exige a limitação estrita de permissões de tokens, isolamento de dependências em ambientes de compilação restritos e a revogação imediata de qualquer credencial que tenha passado por esteiras de CI/CD potencialmente comprometidas.
- Revogar imediatamente todas as credenciais de облака, chaves de API e PATs acessíveis a runners efêmeros ou instaladas no ambiente de desenvolvimento local.
- Revisar manualmente as dependências de Actions do GitHub corporativos, garantindo que as tags de versão apontem para os commits imutáveis criptograficamente assinados.
- Restringir severamente permissões de tokens OIDC no bootstrapping do pipeline de CI/CD, garantindo o princípio do menor privilégio.
- Implementar bloqueio de publicação de pacotes baseados em janelas temporais estritas e autenticação multifator robusta para todos os mantenedores de projetos hospedados em registros abertos.
- Sanitizar as variáveis de ambiente e os fluxos de trabalho de desenvolvimento, impedindo a execução automática de scripts arbitrários no momento da importação de bibliotecas ou abertura de workspaces.
0 Comentários