Argonalyst

Ataque à Cadeia de Suprimentos no Ecossistema NPM

Argonalyst
18 September 2025

Resumo Executivo

O ecossistema NPM enfrenta um grave ataque à cadeia de suprimentos. O pacote popular @ctrl/tinycolor, que recebe mais de 2 milhões de downloads semanais, foi comprometido, juntamente com mais de 40 outros pacotes de diversos mantenedores. Este ataque evidencia uma evolução preocupante nas ameaças à cadeia de suprimentos, pois o malware inclui um mecanismo de autorreplicação que infecta automaticamente pacotes subsequentes, criando uma cascata de compromissos em todo o ecossistema. As versões comprometidas foram removidas do npm.

Análise Técnica

O ataque se desenrola por meio de uma cadeia sofisticada de múltiplas etapas que utiliza o process.env do Node.js para acesso oportunista a credenciais e emprega módulos empacotados pelo Webpack para modularidade. Um arquivo minificado de cerca de 3,6 MB, bundle.js, é executado de forma assíncrona durante a instalação do npm, possivelmente acionado por um script postinstall sequestrado incorporado no pacote.json comprometido.

Mecanismo de Autorreplicação

O malware incorpora um mecanismo de autorreplicação através da função NpmModule.updatePackage, que consulta a API do registro NPM para buscar até 20 pacotes pertencentes ao mantenedor, forçando a publicação de patches para esses pacotes. Isso cria um efeito de compromisso em cascata, injetando recursivamente o pacote malicioso em ecossistemas dependentes em todo o registro NPM.

Análise da Comunidade

Para auxiliar a comunidade a responder a este incidente, a StepSecurity organizou um horário de atendimento comunitário no dia 16 de setembro às 13h PT. A gravação está disponível aqui: https://www.youtube.com/watch?v=D9jXoT1rtaQ

Coleta de Credenciais

O malware reutiliza ferramentas de código aberto, como TruffleHog, para escanear o sistema de arquivos em busca de segredos de alta entropia. Ele busca padrões, como chaves da AWS, utilizando expressões regulares como AKIA[0-9A-Z]{16}. Além disso, o malware despeja todo o process.env, capturando tokens transitórios como GITHUB_TOKEN e AWS_ACCESS_KEY_ID.

Persistência do Malware

O malware estabelece persistência injetando um arquivo de fluxo de trabalho do GitHub Actions (.github/workflows/shai-hulud-workflow.yml) via um script Bash codificado em base64. Este fluxo é acionado em eventos de push e exfiltra segredos do repositório usando a expressão ${{ toJSON(secrets) }} para um ponto de controle de comando. O malware cria ramos ao mesclar forçadamente do ramo padrão (refs/heads/shai-hulud) usando o endpoint /git/refs do GitHub.

Exfiltração de Dados

O malware agrega credenciais coletadas em um payload JSON, que é formatado para legibilidade. Em seguida, ele faz upload desses dados em um novo repositório público chamado Shai-Hulud via API do GitHub /user/repos. A natureza pública desses repositórios significa que qualquer atacante pode acessar e potencialmente abusar dessas credenciais, criando um risco secundário além do compromisso inicial.

Mecanismo de Ataque

O compromisso inicia com um pacote JavaScript minificado sofisticado injetado em pacotes afetados como @ctrl/tinycolor. Este não é um malware rudimentar, mas sim um motor modular sofisticado que utiliza pedaços do Webpack para organizar utilitários de SO, SDKs de nuvem e wrappers de API. A carga útil importa seis módulos principais, cada um servindo uma função específica na cadeia de ataque.

Indicadores de Compromisso

Os seguintes indicadores podem ajudar a identificar sistemas afetados por este ataque: busque por queries no GitHub para descobrir repositórios comprometidos, verifique arquivos de workflow maliciosos e identifique chamadas de API suspeitas. O arquivo bundle.js malicioso possui um hash SHA-256 de: 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09.

Ações Imediatas Requeridas

Se você usa algum dos pacotes afetados, tome as seguintes ações imediatamente: identifique e remova pacotes comprometidos, limpe repositórios infectados, remova fluxos de trabalho maliciosos e gire todas as credenciais. Revise a infraestrutura em nuvem para identificar acessos não autorizados.

Monitoramento de Exploração Ativa

Implemente controles de segurança e monitore logs de firewall para conexões com domínios suspeitos. É crucial revisar os logs de auditoria da AWS e do GCP para padrões de acesso a segredos que possam indicar compromissos.

Agradecimentos

A equipe de segurança do npm e os mantenedores dos pacotes por sua rápida resposta a este incidente, bem como os pesquisadores de segurança e membros da comunidade que continuam a colaborar na defesa contra ataques à cadeia de suprimentos.

Últimos vídeos

Confira os últimos vídeos publicados no canal

Argonalyst

BOLHA da IA ou NOVA era de crescimento EXPONENCIAL? O mercado está dividido

Argonalyst

Nova IA da OpenAI traduz em TEMPO REAL e pode mudar o mundo dos negócios

Argonalyst

Spec Driven Development (SDD): a habilidade que vai separar quem SOBREVIVE à IA

Argonalyst

DeepSeek V4: o Open Source que está AMEAÇANDO GPT 5.5 e Opus 4.7

Argonalyst

Prometeram Renda Universal… mas só veio desemprego?

Argonalyst

Mythos Preview: o começo da AGI ou só mais hype?

Argonalyst

Ele automatizou TUDO com IA… e pode virar bilionário sozinho

Argonalyst

Programadores foram só o começo… agora a IA quer o topo

Argonalyst

Multi-agentes, memória e IA eterna: o vazamento que mudou tudo

Argonalyst

VIBE CODING vai acabar… e o que vem agora é muito mais SINISTRO

Argonalyst

IA na Guerra: estamos criando algo mais PERIGOSO que a Bomba Atômica?

Argonalyst

O dinheiro vai desaparecer? A era da IA pode mudar tudo

Argonalyst

O Apocalipse do SaaS: Como a IA pode DESTRUIR o modelo bilionário do software

Argonalyst

Bitcoin é software… e o software está morrendo (isso explica a queda?)

Argonalyst

Google libera IA que CRIA MUNDOS 3D jogáveis (Projeto Genie)